自訂HTTPAPI存取記錄 - Amazon API Gateway

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

自訂HTTPAPI存取記錄

您可以使用下列變數來自訂HTTPAPI存取記錄。若要進一步瞭解的存取記錄 HTTPAPIs,請參閱在 API Gateway 中設定 HTTP API 的記錄

參數 描述
$context.accountId

擁API有者的 AWS 帳號 ID。

$context.apiId

API閘道指派給您的識別碼API。

$context.authorizer.claims.property

方法呼叫者成功驗證後,從 JSON Web Token (JWT) 傳回的宣告屬性,例如$context.authorizer.claims.username。如需詳細資訊,請參閱 透過閘道中HTTPAPIsAPI的JWT授權者控制存取

注意

呼叫 $context.authorizer.claims 會傳回 null。

$context.authorizer.error 從授權方傳回的錯誤訊息。
$context.authorizer.principalId

Lambda 授權方傳回的主要使用者識別。

$context.authorizer.property

從API閘道 Lambda 授權器函數傳回之對context映之指定索引鍵值組的值。例如,如果授權方傳回下列 context 映射:

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

呼叫 $context.authorizer.key 會傳回 "value" 字串,呼叫 $context.authorizer.numKey 會傳回 1,而呼叫 $context.authorizer.boolKey 會傳回 true

$context.awsEndpointRequestId

AWS 端點來自x-amz-request-idx-amzn-requestId標頭的要求識別碼。

$context.awsEndpointRequestId2

AWS 端點來自x-amz-id-2標頭的請求 ID。

$context.customDomain.basePathMatched

傳入請求匹配的API映射路徑。適用於用戶端使用自訂網域名稱存取API. 例如,如果客戶端向其發送請求https://api.example.com/v1/orders/1234,並且請求與路徑的API映射匹配v1/orders,則該值為v1/orders。如需進一步了解,請參閱將API階段映射至 的自訂網域名稱 HTTP APIs

$context.dataProcessed 處理的資料量 (以位元組為單位)。
$context.domainName

用來叫用的完整網域名稱API。這應該與傳入的 Host 標頭相同。

$context.domainPrefix

$context.domainName 的第一個標籤。

$context.error.message

包含API閘道錯誤訊息的字串。

$context.error.messageString $context.error.message 的引用值,即 "$context.error.message"
$context.error.responseType

一種 GatewayResponse 的類型。如需詳細資訊,請參閱 使用 CloudWatch 指標監控 WebSocket API執行設定閘道回應以自訂錯誤回應

$context.extendedRequestId 等同於 $context.requestId
$context.httpMethod

使用的HTTP方法。有效值包含:DELETEGETHEADOPTIONSPATCHPOSTPUT

$context.identity.accountId

與請求相關聯的 AWS 帳戶 ID。支援使用IAM授權的路由。

$context.identity.caller

已簽署請求之發起人的主體識別符。支援使用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 身分驗證提供者的相關資訊,請參閱 Amazon Cognito發人員指南中的使用聯合身分

$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。支援使用IAM授權的路由。

$context.identity.clientCert.clientCertPem

用戶端在相互TLS驗證期間所呈現的已PEM編碼用戶端憑證。當用戶端使用已啟用API相互TLS啟用的自訂網域名稱存取時顯示。

$context.identity.clientCert.subjectDN

用戶端提供之憑證主體的辨別名稱。當用戶端使用已啟用API相互TLS啟用的自訂網域名稱存取時顯示。

$context.identity.clientCert.issuerDN

用戶端提供之憑證發行者的辨別名稱。當用戶端使用已啟用API相互TLS啟用的自訂網域名稱存取時顯示。

$context.identity.clientCert.serialNumber

憑證的序號。當用戶端使用已啟用API相互TLS啟用的自訂網域名稱存取時顯示。

$context.identity.clientCert.validity.notBefore

憑證無效之前的日期。當用戶端使用已啟用API相互TLS啟用的自訂網域名稱存取時顯示。

$context.identity.clientCert.validity.notAfter

憑證無效之後的日期。當用戶端使用已啟用API相互TLS啟用的自訂網域名稱存取時顯示。

$context.identity.sourceIp

向API閘道端點發出要求之立即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,而不是從後端 Lambda 函數
$context.integration.latency 整合延遲 (以毫秒為單位)。等同於 $context.integrationLatency
$context.integration.requestId AWS 端點的要求識別碼。等同於 $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閘道APIs可以接受 HTTP /2 個要求,但 API Gateway 會使用 HTTP /1.1 將要求傳送至後端整合。因此,即使HTTP用戶端傳送使用 HTTP /2 的要求,要求通訊協定也會記錄為 /1.1。

$context.requestId

API閘道指派給API要求的識別碼。

$context.requestTime CLF格式化的請求時間(dd/MMM/yyyy:HH:mm:ss +-hhmm)。
$context.requestTimeEpoch Epoch 格式化請求時間。
$context.responseLatency 回應延遲 (以毫秒為單位)。
$context.responseLength 回應承載長度 (以位元組為單位)。
$context.routeKey

例如,API請求的路由鍵/pets

$context.stage

API要求的部署階段 (例如,betaprod)。

$context.status 方法回應狀態。