Amazon API Gateway の拡張リクエスト ID を収集したいと考えています。
解決策
拡張要求 ID を収集するには、アクセスログレコード、実行ログレコード、または HTTP 応答ヘッダーを確認します。
ロギングの設定
API のログ記録を設定していない場合は、「API Gateway での HTTP API のログ記録を設定する」および「API Gateway で REST API の CloudWatch ログ記録を設定する」を参照してください。
**注:**拡張リクエスト ID をキャプチャするには、アクセスログを有効にする必要があります。アクセスログは、実行ログに到達しないリクエストをキャプチャすることがあります。
アクセスログ記録の確認
アクセスログレコードを確認すると、API に誰がどのようにアクセスしたかを確認できます。アクセスログ内のリクエスト ID を取得するには、ログのコンテンツをカスタマイズするときに context.extendedRequestId コンテキスト変数を含めてください。
実行ログレコードの確認
拡張リクエスト ID は、API Gateway が管理する実行ログで確認できます。
拡張リクエスト ID は次のいずれかの形式で表示されます。
- ロググループ形式: API-Gateway-Execution-Logs_{rest-api-id}/{stage_name}
- 拡張リクエスト ID フォーマット: "XxxXXXxx="
HTTP レスポンスヘッダの確認
拡張リクエスト ID は API レスポンスヘッダーにあります。
たとえば、冗長フラグ (-v) を指定して次の curl コマンドを実行します。
curl -v GET https://your-api-id.execute-api.region.amazonaws.com/stage/resource
レスポンスには以下のヘッダーが表示されます。
x-amz-apigw-id: XxxXXXxx=