HTTP API アクセスログのカスタマイズ - Amazon API Gateway

HTTP API アクセスログのカスタマイズ

次の変数を使用して、HTTP API のアクセスログをカスタマイズできます。HTTP API のアクセスログの詳細については、「HTTP API のログ記録の設定」を参照してください。

パラメータ 説明
$context.accountId

API 所有者の AWS アカウント ID。

$context.apiId

API Gateway が API に割り当てる識別子。

$context.authorizer.claims.property

メソッドの呼び出し側が認証に成功した後に JSON ウェブトークン (JWT) から返されるクレームのプロパティ。詳細については、「JWT オーソライザーを使用した HTTP API へのアクセスの制御」を参照してください。

注記

$context.authorizer.claims を呼び出すと NULL が返されます。

$context.authorizer.error オーソライザーから返されたエラーメッセージ。
$context.authorizer.principalId

Lambda オーソライザーから返されたプリンシパルユーザー ID。

$context.authorizer.property

API Gateway Lambda オーソライザー関数から返された context マップの指定されたキー/値ペアの値。たとえば、オーソライザーが次の context マップを返すとします。

"context" : { "key": "value", "numKey": 1, "boolKey": true }

$context.authorizer.key を呼び出すと "value" 文字列が返され、$context.authorizer.numKey を呼び出すと 1 が返され、$context.authorizer.boolKey を呼び出すと true が返されます。

$context.awsEndpointRequestId

x-amz-request-id または x-amzn-requestId ヘッダーからの AWS エンドポイントのリクエスト ID。

$context.awsEndpointRequestId2

x-amz-id-2 ヘッダーからの AWS エンドポイントのリクエスト ID。

$context.customDomain.basePathMatched

受信リクエストが一致した API マッピングのパス。クライアントがカスタムドメイン名を使用して API にアクセスする場合に適用されます。たとえば、クライアントがリクエストを https://api.example.com/v1/orders/1234 に送信し、リクエストがパス v1/orders を持つ API マッピングと一致する場合 、値が v1/ordersになります。詳細については、「HTTP API の API マッピングの使用」を参照してください。

$context.dataProcessed 処理されたデータの量 (バイト単位)。
$context.domainName

API の呼び出しに使用された完全ドメイン名。これは、受信 Host ヘッダーと同じである必要があります。

$context.domainPrefix

$context.domainName の 1 つ目のラベル。多くの場合、これは発信者/顧客識別子として使用されます。

$context.error.message

API Gateway エラーメッセージを含む文字列。

$context.error.messageString $context.error.message を引用符で囲んだ値、つまり "$context.error.message"
$context.error.responseType

GatewayResponse のタイプ。詳細については、「CloudWatch メトリクスを使用した WebSocket API の実行のモニタリング」および「エラーレスポンスをカスタマイズするためのゲートウェイレスポンスのセットアップ」を参照してください。

$context.extendedRequestId API Gateway が API リクエストに割り当てる拡張 ID。デバッグ/トラブルシューティングに役立つ情報が含まれています。
$context.httpMethod

使用される HTTP メソッドです。有効な値には、DELETEGETHEADOPTIONSPATCHPOST および PUT があります。

$context.identity.accountId

リクエストに関連付けられた AWS アカウント ID です。IAM 認証を使用するルートでサポートされています。

$context.identity.caller

リクエストに署名した発信者のプリンシパル ID。IAM 認証を使用するルートでサポートされています。

$context.identity.cognitoAuthenticationProvider

リクエストを行う発信者が使用する Amazon Cognito 認証プロバイダーのカンマ区切りのリスト。リクエストが Amazon Cognito 認証情報で署名されている場合にのみ使用できます。

たとえば、Amazon Cognito ユーザープールのアイデンティティの場合、cognito-idp. region.amazonaws.com/user_pool_id,cognito-idp.region.amazonaws.com/user_pool_id:CognitoSignIn:token subject claim

詳しくは、Amazon Cognito デベロッパーガイドの「ID プール (フェデレーテッドアイデンティティ) を使用する」を参照してください。

$context.identity.cognitoAuthenticationType

リクエストを行う発信者の Amazon Cognito 認証タイプ。リクエストが Amazon Cognito 認証情報で署名されている場合にのみ使用できます。有効な値は、認証されたアイデンティティauthenticatedおよび認証されていないアイデンティティunauthenticatedです。

$context.identity.cognitoIdentityId

リクエストを行う発信者の Amazon Cognito ID。リクエストが Amazon Cognito 認証情報で署名されている場合にのみ使用できます。

$context.identity.cognitoIdentityPoolId

リクエストを行う発信者の Amazon Cognito ID プール ID。リクエストが Amazon Cognito 認証情報で署名されている場合にのみ使用できます。

$context.identity.principalOrgId

AWS Organizations ID。IAM 認証を使用するルートでサポートされています。

$context.identity.clientCert.clientCertPem

クライアントが相互 TLS 認証中に提示した PEM エンコードされたクライアント証明書。相互 TLS が有効になっているカスタムドメイン名を使用してクライアントが API にアクセスするときに表示されます。

$context.identity.clientCert.subjectDN

クライアントが提示する証明書のサブジェクトの識別名。相互 TLS が有効になっているカスタムドメイン名を使用してクライアントが API にアクセスするときに表示されます。

$context.identity.clientCert.issuerDN

クライアントが提示する証明書の発行者の識別名。相互 TLS が有効になっているカスタムドメイン名を使用してクライアントが API にアクセスするときに表示されます。

$context.identity.clientCert.serialNumber

証明書のシリアル番号。相互 TLS が有効になっているカスタムドメイン名を使用してクライアントが API にアクセスするときに表示されます。

$context.identity.clientCert.validity.notBefore

証明書が無効になる前の日付。相互 TLS が有効になっているカスタムドメイン名を使用してクライアントが API にアクセスするときに表示されます。

$context.identity.clientCert.validity.notAfter

証明書が無効になった日付。相互 TLS が有効になっているカスタムドメイン名を使用してクライアントが API にアクセスするときに表示されます。

$context.identity.sourceIp

API Gateway エンドポイントへのリクエストを実行する即時 TCP 接続のソース IP アドレス。

$context.identity.user

リソースアクセスに対して許可されるユーザーのプリンシパル識別子。IAM 認証を使用するルートでサポートされています。

$context.identity.userAgent

API 発信者の User-Agent ヘッダー。

$context.identity.userArn

認証後に識別された有効ユーザーの Amazon リソースネーム (ARN) です。IAM 認証を使用するルートでサポートされています。詳細については、「https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html」を参照してください。

$context.integration.error 統合から返されたエラーメッセージ。これは $context.integrationErrorMessage と同等です。
$context.integration.integrationStatus Lambda プロキシ統合の場合、バックエンドの Lambda 関数コードからではなく、AWS Lambda から返されるステータスコード。
$context.integration.latency 統合レイテンシー (ミリ秒)。これは $context.integrationLatency と同等です。
$context.integration.requestId AWS エンドポイントのリクエスト ID。これは $context.awsEndpointRequestId と同等です。
$context.integration.status 統合から返されたステータスコード。Lambda プロキシ統合では、これは Lambda 関数コードから返されたステータスコードです。これは $context.integrationStatus と同等です。
$context.integrationErrorMessage

統合エラーメッセージを含む文字列。

$context.integrationLatency 統合レイテンシー (ミリ秒)。
$context.integrationStatus Lambda プロキシ統合の場合、このパラメータはバックエンド Lambda 関数からではなく、AWS Lambda から返されるステータスコードを表します。
$context.path リクエストパス。たとえば、/{stage}/root/child と指定します。
$context.protocol HTTP/1.1 などのリクエストプロトコル。
$context.requestId

API Gateway が API リクエストに割り当てる ID。

$context.requestTime CLF 形式の要求時間 (dd/MMM/yyyy:HH:mm:ss +-hhmm)。
$context.requestTimeEpoch エポック形式のリクエスト時間。
$context.responseLatency レスポンスレイテンシー (ミリ秒)。
$context.responseLength レスポンスペイロードの長さ。
$context.routeKey

API リクエストのルートキー (例:/pets)。

$context.stage

API リクエストのデプロイステージ (betaprod など)。

$context.status メソッドレスポンスのステータス。