View a markdown version of this page

用於 API Gateway 資料轉換的變數 - Amazon API Gateway

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

用於 API Gateway 資料轉換的變數

建立參數映射時,您可以使用內容變數作為資料來源。建立映射範本轉換時,您可以在您使用 Velocity 範本語言 (VTL) 編寫的指令碼中使用內容變數、輸入和 util 變數。如需使用這些參考變數的映射範本範例,請參閱 使用變數進行 API Gateway 映射範本轉換的範例。

如需存取記錄的參考變數清單,請參閱 API Gateway 存取記錄的變數。

資料轉換的內容變數

您可以使用下列區分大小寫的 $context 變數進行資料轉換。

參數 說明
$context.accountId

API 擁有者 AWS 的帳戶 ID。

$context.apiId

API Gateway 指派給您 API 的識別碼。

$context.authorizer.claims.property

成功驗證方法發起人之後,從 Amazon Cognito 使用者集區傳回之宣告的屬性。如需詳細資訊,請參閱 使用 Amazon Cognito 使用者集區做為授權方,藉以控制對 REST API 的存取。

注意

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

$context.authorizer.principalId

與用戶端所傳送並從 API Gateway Lambda 授權方 (先前稱作自訂授權方) 所傳回之字符相關聯的主要使用者身分。如需詳細資訊,請參閱 使用 API Gateway Lambda 授權方。

$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" 字串。

對於屬性,唯一支援的特殊字元是底線 (_) 字元。

如需詳細資訊,請參閱使用 API Gateway Lambda 授權方。

$context.awsEndpointRequestId

AWS 端點的請求 ID。

$context.deploymentId

API 部署的 ID。

$context.domainName

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

$context.domainPrefix

$context.domainName 的第一個標籤。

$context.error.message

包含 API Gateway 錯誤訊息的字串。此變數只能用於 Velocity 範本語言引擎無法處理的 GatewayResponse 本文映射範本及存取記錄中的簡單變數替換。如需詳細資訊,請參閱使用 CloudWatch 指標監控 WebSocket API 執行及設定閘道回應以自訂錯誤回應。

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

GatewayResponse 的類型。此變數只能用於 Velocity 範本語言引擎無法處理的 GatewayResponse 本文映射範本及存取記錄中的簡單變數替換。如需詳細資訊,請參閱使用 CloudWatch 指標監控 WebSocket API 執行及設定閘道回應以自訂錯誤回應。

$context.error.validationErrorString

字串,其中包含詳細的驗證錯誤訊息。

$context.extendedRequestId API Gateway 產生和指派給 API 請求的延伸 ID。延伸請求 ID 包含有助於偵錯和疑難排解的資訊。
$context.httpMethod

使用的 HTTP 方法。有效值包含:DELETE、GET、HEAD、OPTIONS、PATCH、POST 和 PUT。

$context.identity.accountId

與請求相關聯的 AWS 帳戶 ID。

$context.identity.apiKey

對於需要 API 金鑰的 API 方法,此變數是與方法請求相關聯的 API 金鑰。對於不需要 API 金鑰的方法,此變數為 null。如需詳細資訊,請參閱 API Gateway 中 REST API 的用量計畫和 API 金鑰。

$context.identity.apiKeyId 與需要 API 金鑰之 API 請求相關聯的 API 金鑰 ID。
$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。

$context.identity.sourceIp

對 API Gateway 端點提出請求之即時 TCP 連線的來源 IP 位址。