API Gateway 中的 REST API 的 API Gateway 阶段变量引用
在以下情况下,您可以使用 API Gateway 阶段变量。
参数映射表达式
阶段变量可在参数映射表达式中用于 API 方法的请求或响应标头参数,无需进行任何部分替换。在以下示例中,引用阶段变量时未使用 $
和封闭的 {...}
。
-
stageVariables.<variable_name>
映射模板
阶段变量可在映射模板中的任何位置使用,如以下示例所示。
-
{ "name" : "$stageVariables.<variable_name>"}
-
{ "name" : "${stageVariables.<variable_name>}"}
HTTP 集成 URI
阶段变量可用作 HTTP 集成 URL 的一部分,如以下示例所示:
-
不带协议的完整 URI –
http://${stageVariables.<variable_name>}
-
完整域 –
http://${stageVariables.<variable_name>}/resource/operation
-
子域 –
http://${stageVariables.<variable_name>}.example.com/resource/operation
-
路径 –
http://example.com/${stageVariables.<variable_name>}/bar
-
查询字符串 –
http://example.com/foo?q=${stageVariables.<variable_name>}
AWS 集成 URI
阶段变量可用作 AWS URI 操作或路径组件的一部分,如以下示例所示。
-
arn:aws:apigateway:<region>:<service>:${stageVariables.<variable_name>}
AWS 集成 URI(Lambda 函数)
阶段变量可用于替代 Lambda 函数名称或版本/别名,如以下示例所示。
-
arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/arn:aws:lambda:<region>:<account_id>:function:${stageVariables.<function_variable_name>}/invocations
-
arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/arn:aws:lambda:<region>:<account_id>:function:<function_name>:${stageVariables.<version_variable_name>}/invocations
注意
要将阶段变量用于 Lambda 函数,该函数必须与 API 位于同一账户中。阶段变量不支持跨账户 Lambda 函数。
Amazon Cognito 用户池
阶段变量可用来代替 COGNITO_USER_POOLS
授权方的 Amazon Cognito 用户池。
-
arn:aws:cognito-idp:<region>:<account_id>:userpool/${stageVariables.<variable_name>}
AWS 集成凭证
阶段变量可用作 AWS 用户/角色凭证 ARN 的一部分,如以下示例所示。
-
arn:aws:iam::<account_id>:${stageVariables.<variable_name>}