amazon-web-services - 带有代理 Lambda : Invalid permissions on Lambda function 的 AWS API 网关

标签 amazon-web-services aws-lambda aws-api-gateway

当 lambda 函数的名称作为阶段变量出现时,我将 AWS API Gateway 与代理 Lambda 一起使用。这意味着我有一个 API 集成,它根据部署的阶段连接到适当的 lambda。
请参阅此处的总体思路:
enter image description here

当我测试我的一个阶段(称为:“暂存”)时,一切正常,但在测试另一个阶段(“生产”)时,我收到错误“由于配置错误执行失败:Lambda 函数的权限无效”。

我已经测试和验证的事情:
1. 当从 Lambda 仪表板进行测试时,应由 API 调用的两个 lambda 都运行良好并符合预期。
2. 我已经确定(多次)我已经允许 API 网关调用我的 lambda 函数(即执行“aws lambda add-permission...”)。之后我多次验证了该策略(即执行了“aws lambda get-policy...”)。

知道我还能检查什么吗?我可能在这里忘记了什么?
谢谢。

enter image description here

最佳答案

在阶段变量中指定 Lambda 函数时,不会自动创建调用 Lambda 函数的权限。您需要手动执行此操作:

aws lambda add-permission --function-name arn:aws:lambda:eu-west-1:111111111111:function:some-function:default --source-arn arn:aws:execute-api:eu-west-1:111111111111:xxxxxxxxxx/* --principal apigateway.amazonaws.com --statement-id 88b42004-f504-44d5-9adf-d027ee65a890 --action lambda:InvokeFunction

(您需要替换此语句中的区域、您的 lambda 函数名称和您的帐号,以及 api-gateway ARN。)

关于amazon-web-services - 带有代理 Lambda : Invalid permissions on Lambda function 的 AWS API 网关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40704994/

相关文章:

spring - 可以将消息推送到 aws sqs 的最大速率是多少?

node.js - 无法将 AWS Lambda 中的回调函数的更新响应发送到 API Gateway

amazon-web-services - 使用 Firebase 的 AWS ApiGateway 自定义授权

ruby - 我如何在 ruby​​ 2.5 中解码或解析 "multipart/form-data"并使用参数获取哈希值

amazon-web-services - 获取 jinja 模板中 CloudFormation 固有函数的值

amazon-web-services - 在 AWS Glue 作业中处理加密的 JSON

amazon-web-services - 如何将 DynamoDB 流连接到运动流?

node.js - 外部调用时 Lambda 函数超时

amazon-web-services - AWS API Gateway 提供 S3 内容和 Lambda

amazon-web-services - 为什么我只能将 AWS S3 存储桶事件发送到一个 AWS lambda?