相关疑难解决方法(0)

通过 terraform 部署的 AWS API 网关和 Lambda 函数 -- 由于配置错误而导致执行失败:Lambda 函数的权限无效

我正在通过 Terraform 一起部署 API 网关和 Lambda 函数,并且 Lambda 函数旨在由 API 网关触发。资源成功部署后,我测试 API 网关并得到响应:

{“消息”:“内部服务器错误”}。

API网关的实际日志说:

由于配置错误,执行失败:Lambda 函数的权限无效

我可以通过转到 API 网关的集成请求部分,重新​​选择我现有的功能,并用小复选标记再次“保存”它来使实际的 api-lambda 功能工作,但这会破坏自动化,我希望它在没有每次都必须执行该手动步骤。不确定这是 Terraform/AWS 中的错误还是我做错了什么。(发现有人问了同样的问题,但使用 SAM 但没有响应:由于配置错误,执行失败:Lambda 函数的权限无效

我当前的设置是通过 swagger json 文件部署 API,并且 Lambda Invoke ARN 用作此文件集成部分中的 URI。我曾尝试在硬编码 ARN 和变量之间切换,但无济于事。我还尝试包含 aws_api_gateway_deployment 和 aws_api_gateway_integration 资源,但我认为如果我已经在使用 swagger 文件,那么使用这些会与 swagger 文件已经构建的内容发生冲突。

我的 api_gateway 模块的 main.tf 如下所示:

resource "aws_api_gateway_rest_api" "post_session" {
    name = "${var.api_gateway_name}"
    body = "${data.template_file.post-session.rendered}"

    endpoint_configuration {
        types = ["PRIVATE"]
    }
}

data "template_file" "post-session" {
    template = "${file("../source/aapt-ual-post-session-v1-swagger-apigateway.json")}"

    vars { …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services swagger aws-lambda terraform aws-api-gateway

6
推荐指数
1
解决办法
3448
查看次数