

# HTTP API アクセスログをカスタマイズする
<a name="http-api-logging-variables"></a>

次の変数を使用して、HTTP API のアクセスログをカスタマイズできます。HTTP API のアクセスログの詳細については、「[API Gateway で HTTP API のログ記録を設定する](http-api-logging.md)」を参照してください。


| パラメータ | 説明 | 
| --- | --- | 
| $context.accountId | API 所有者の AWS アカウント ID。 | 
| $context.apiId | API Gateway が API に割り当てる識別子。 | 
| $context.authorizer.claims.{{property}} | メソッドの呼び出し元が正常に認証された後で JSON ウェブトークン (JWT) から返されるクレームのプロパティ (`$context.authorizer.claims.username` など)。詳細については、「[API Gateway の JWT オーソライザーを使用して HTTP API へのアクセスを制御する](http-api-jwt-authorizer.md)」を参照してください。 `$context.authorizer.claims` を呼び出すと NULL が返されます。  | 
| $context.authorizer.error | オーソライザーから返されたエラーメッセージ。 | 
| $context.authorizer.{{property}} | API Gateway Lambda オーソライザー関数から返された `context` マップの指定されたキー/値ペアの値。たとえば、オーソライザーが次の `context` マップを返すとします。<pre>"context" : {<br />  "key": "value",<br />  "numKey": 1,<br />  "boolKey": true<br />}</pre><br />`$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` になります。詳細については、「[API ステージを HTTP API のカスタムドメイン名にマッピングする](http-api-mappings.md)」を参照してください。 | 
| $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 の実行をモニタリングする](apigateway-websocket-api-logging.md)」および「[エラーレスポンスをカスタマイズするためのゲートウェイレスポンスのセットアップ](api-gateway-gatewayResponse-definition.md#customize-gateway-responses)」を参照してください。 | 
| $context.extendedRequestId | $context.requestId と同等です。 | 
| $context.httpMethod | 使用される HTTP メソッドです。有効な値には、`DELETE`、`GET`、`HEAD`、`OPTIONS`、`PATCH`、`POST` および `PUT` があります。 | 
| $context.identity.accountId | リクエストに関連付けられた AWS アカウント ID です。IAM 認可を使用するルートでサポートされています。 | 
| $context.identity.caller | リクエストに署名した発信者のプリンシパル ID。IAM 認可を使用するルートでサポートされています。 | 
| $context.identity.cognitoAuthenticationProvider | リクエスト元の発信者が使用するすべての Amazon Cognito 認証プロバイダーのカンマ区切りのリスト。リクエストが Amazon Cognito 認証情報で署名されている場合にのみ使用できます。<br />たとえば、Amazon Cognito ユーザープールのアイデンティティの場合、`cognito-idp. {{region}}.amazonaws.com/{{user_pool_id}},cognito-idp.{{region}}.amazonaws.com/{{user_pool_id}}:CognitoSignIn:{{token subject claim}}`<br />利用可能な Amazon Cognito 認証プロバイダーについては、「Amazon Cognito 開発者ガイド」の「[フェデレーティッド ID の使用](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html)」を参照してください。** | 
| $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 組織 ID](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html)。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 発信者の [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent) ヘッダー。 | 
| $context.identity.userArn | 認証後に識別された有効ユーザーの Amazon リソースネーム (ARN) です。IAM 認可を使用するルートでサポートされています。詳細については、「[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html](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.integrationErrorMessage | 統合エラーメッセージを含む文字列。 | 
| $context.integrationLatency | 統合レイテンシー (ミリ秒)。 | 
| $context.integrationStatus | Lambda プロキシ統合の場合、このパラメータはバックエンド Lambda 関数からではなく、AWS Lambda から返されたステータスコードを表します。 | 
| $context.path | リクエストパス。例えば、/{stage}/root/child。 | 
| $context.protocol | HTTP/1.1 などのリクエストプロトコル。 API Gateway API は HTTP/2 リクエストを受け入れることができますが、API Gateway は HTTP/1.1 を使用してバックエンド統合にリクエストを送信します。その結果、クライアントが HTTP/2 を使用するリクエストを送信した場合でも、リクエストプロトコルは HTTP/1.1 として記録されます。   | 
| $context.requestId | API Gateway が API リクエストに割り当てる ID。 | 
| $context.requestTime | [CLF](https://httpd.apache.org/docs/current/logs.html#common) 形式の要求時間 (dd/MMM/yyyy:HH:mm:ss \+-hhmm)。 | 
| $context.requestTimeEpoch | [エポック](https://en.wikipedia.org/wiki/Unix_time)形式のリクエスト時間。 | 
| $context.responseLatency | レスポンスレイテンシー (ミリ秒)。 | 
| $context.responseLength | レスポンスペイロードの長さ (バイト単位)。 | 
| $context.routeKey | API リクエストのルートキー (例:`/pets`)。 | 
| $context.stage | API リクエストのデプロイステージ (`beta`、`prod` など)。 | 
| $context.status | メソッドレスポンスのステータス。 | 