API Gateway 中的 REST API 的 API Gateway 阶段变量引用 - Amazon API Gateway

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>}