如何在 Terraform 中使用阶段变量创建 AWS APIGateway 自定义授权方?

How can I create a AWS APIGateway Custom Authorizer using stage variables in Terraform?

我看到 AWS ApiGateway 现在提供了在控制台中将阶段变量传递给自定义授权方 lambda 的能力,方法是选择 'Request' 类型的负载并列出应该传递的变量。

但是,我们专门通过 Terraform 创建我们的 AWS 资源(不允许手动干预),Terraform 文档目前说:

type - (Optional) The type of the authorizer. TOKEN is currently the only allowed value. Defaults to TOKEN.

有没有什么方法可以通过编程方式强制负载类型为 'REQUEST',并传入阶段变量?

尽管文档怎么说,您实际上可以通过 Terraform 执行此操作。

只需将类型设置为 REQUEST,然后在 comma-separated 列表中传递阶段变量(and/or headers、and/or 查询字符串),如下所示:"method.request.header.SomeHeaderName,method.request.querystring.SomeQueryStringName,stageVariables.SomeStageVariableName"等:

resource "aws_api_gateway_authorizer" "api-gateway-auth" {
  ...
  type            = "REQUEST"
  identity_source = "method.request.header.SomeHeaderName,method.request.querystring.SomeQueryStringName,stageVariables.SomeStageVariableName"
  ...
}