

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 自訂 HTTP API 存取日誌
<a name="http-api-logging-variables"></a>

您可以使用下列變數來自訂 HTTP API 存取日誌。要進一步了解 HTTP API 的存取日誌，請參閱[在 API Gateway 中設定 HTTP API 的日誌](http-api-logging.md)。


| 參數 | Description | 
| --- | --- | 
| $context.accountId | API 擁有者 AWS 的帳戶 ID。 | 
| $context.apiId | API Gateway 指派給您 API 的識別碼。 | 
| $context.authorizer.claims.{{property}} | 成功驗證方法發起人 (例如 `$context.authorizer.claims.username`) 之後，從 JSON Web Token (JWT) 傳回之宣告的屬性。如需詳細資訊，請參閱[使用 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` 傳送請求，並且請求讓 API 映射與路徑 `v1/orders` 相符，則該值為 `v1/orders`。如需進一步了解，請參閱[將 API 階段映射至 HTTP API 的自訂網域名稱](http-api-mappings.md)。 | 
| $context.dataProcessed | 處理的資料量 (以位元組為單位)。 | 
| $context.domainName | 用來叫用 API 的完整網域名稱。這應該與傳入的 `Host` 標頭相同。 | 
| $context.domainPrefix | `$context.domainName` 的第一個標籤。 | 
| $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 | 已簽署請求之發起人的主體識別符。支援使用 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 開發人員指南](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。僅在使用 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 Resource Name (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 代理整合，從 傳回的狀態碼 AWS Lambda，而不是從後端 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 代理整合，此參數代表從 傳回的狀態碼 AWS Lambda，而不是從後端 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 | [Epoch](https://en.wikipedia.org/wiki/Unix_time) 格式化請求時間。 | 
| $context.responseLatency | 回應延遲 (以毫秒為單位)。 | 
| $context.responseLength | 回應承載長度 (以位元組為單位)。 | 
| $context.routeKey | API 請求的路由金鑰，例如 `/pets`。 | 
| $context.stage | API 請求的部署階段 (例如，`beta` 或 `prod`)。 | 
| $context.status | 方法回應狀態。 | 