【发布时间】:2017-02-15 17:53:28
【问题描述】:
我一直在网上寻找答案。
本质上,我们正在使用 Swagger 构建一个 API,它非常棒并且效果很好,但是有一点不起作用......当我们调用 Endpoint 时,我们会收到 500 错误(这不是我们提供的 500 错误是来自 AWS 的错误)。错误状态“由于配置错误导致执行失败:Lambda 函数的权限无效”(https://youtu.be/H4LM_jw5zzs
我已经陷入了许多困境,并找到了答案......它涉及使用 AWS CLI,看起来有点像这样:
aws lambda add-permission \
--function-name FUNCTION_NAME \
--statement-id STATEMENT_ID \
--action lambda:InvokeFunction \
--principal apigateway.amazonaws.com \
--source-arn "arn:aws:execute-api:us-east-1:ACCOUNT_ID:API_ID/*/METHOD/ENDPOINT"
这很好,但我们正在使用 CloudFormation 来启动一切,我们希望这可以自动化。有没有更简单的方法来解决这个问题? CloudFormation 中有什么东西可以为我们提供所需的资源策略吗?
我在这方面遇到了一些困难,但我今天已经为此工作了几个小时,这对我们的 API 版本有点阻碍,因此非常感谢任何帮助。 :)
【问题讨论】:
-
不管怎样,您也可以通过 AWS 开发工具包做到这一点。我将它用于 Go,所以它在这里:docs.aws.amazon.com/sdk-for-go/api/service/lambda/… ...我看不到有什么方法可以列出现有权限。所以我只是容忍我的部署工具中已经存在的关于它的错误。诡异的。我的意思是我什至没有看到任何关于需要此权限的信息,而且它也不存在于任何导出的 Swagger 中。
标签: amazon-web-services aws-lambda aws-api-gateway amazon-cloudformation