使用 terraform 的自定义 API 网关授权器

vas*_*asu 6 lambda aws-lambda terraform aws-api-gateway

我正在尝试部署使用 terraform 的自定义授权方的 API Gateway REST API。

自定义授权方使用现有的 lambda 函数。

resource "aws_api_gateway_authorizer" "accountprofileauth" {
  name                   = "auth"
  rest_api_id            = "${aws_api_gateway_rest_api.accountprofileapi.id}"
  authorizer_uri         = "arn:aws:lambda:us-east-2:XXXX:function:dev-authorizer"
  identity_source        = "method.request.header.Authorization"
  type                   = "REQUEST"
}
Run Code Online (Sandbox Code Playgroud)

当我应用 terraform 时,出现以下错误

* aws_api_gateway_authorizer.accountprofileauth: Error creating API Gateway Authorizer: BadRequestException: Invalid Authorizer URI: arn:aws:lambda:us-east-2:XXXX:function:dev-authorizer. Authorizer URI should be a valid API Gateway ARN that represents a Lambda function invocation.
    status code: 400, request id: XXXX
Run Code Online (Sandbox Code Playgroud)

lambda 函数存在并且工作正常。当我使用无服务器部署时,相同的 arn 工作正常。

您知道格式/提供有效 arn 的示例吗?

谢谢。

vas*_*asu 8

我发现实际格式是

arn:aws:apigateway:us-east-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-2:XXXX:function:dev-authorizer/invocations

看起来日期有点硬编码。我对此感到困惑:)