Azure API から空の応答が返される
Azure API Management トラブルシューティング シリーズに関する記事を参照して、これはラボの最初のシナリオです。 問題を再現するには、このに従ってラボのセットアップ手順に従っていることを確認します。
元の製品バージョン: API Management サービス
元の KB 番号: 4464936
現象
API Blank API は、GetHeaders と GetMyIp 2 つの操作で構成されます。 GetMyIp は X-FORWARDED-FOR ヘッダー値の値を返し、 GetHeaders はすべての要求ヘッダー値を返します。 GetMyIp は予想される出力を返しますが、突然、 GetHeaders は空の応答 (応答本文なし) を返し始めました。
GetHeaders API の出力は次のようになります。
{
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "en-US,en;q=0.5",
"Connection": "close",
"Cookie": "_gauges_unique_day=1; _gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1",
"Host": "eu.httpbin.org",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
}
}
トラブルシューティングの手順
この種の問題をデバッグするには、APIM インスペクター トレース 収集 APIM パイプライン内の要求処理を検査することをお勧めします。
- トレースを調べた場合は、前方要求ポリシーが見つからないことがわかります。
- 転送要求ポリシーは、要求 context で指定されたバックエンド サービスに受信要求を転送します。
- このポリシーを削除すると、要求はバックエンド サービスに転送されず、inbound セクションのポリシーが正常に完了した時点で outbound セクションのポリシーが即座に評価されます。
- そのため、Blank-API で GetHeaders 操作の <backend> セクションを確認すると転送要求ポリシーが削除されていることがわかります。
- バックエンド セクションに転送要求ポリシーを追加するか、親レベル (つまり API レベル) から転送要求ポリシーを継承するように、 <base /> 要素を追加します。これは問題を解決する必要があります。
詳細については、 forward-request ポリシーに関する記事を参照してください。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。