まとめ
この記事では、空の応答を返す API のトラブルシューティングと、Azure API Managementでの復元要求の転送方法について説明します。
これは、Azure API Management トラブルシューティング シリーズ ラボの最初のシナリオです。 API Management トラブルシューティング シリーズのラボ手順に記載されているとおりに、ラボのセットアップ手順に従ってください。
元の製品バージョン: API Management サービス
元の KB 番号: 4464936
症状
空の 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"
}
}
Troubleshooting
この問題をトラブルシューティングするには、 API Management インスペクター トレースを収集して、API Management パイプライン内の要求処理を検査することをお勧めします。
forward-request ポリシーが見つからないことに注意してください。
forward-request ポリシーは、要求forward-requestに指定されたバックエンド サービスに要求を転送します。 このポリシーを削除すると、要求がバックエンド サービスに転送されなくなります。 送信セクションのポリシーは、受信セクションのポリシーが正常に完了するとすぐに評価されます。
Blank-API の GetHeaders 操作の <backend> セクションを確認します。
forward-request ポリシーが削除されていることに注意してください。
バックエンド セクションにforward-request ポリシーを追加するか、親レベル (API レベル) からforward-request ポリシーを継承するように<base />要素を追加します。 この変更により、問題が解決されます。
詳細については、 転送要求 ポリシーを参照してください。