【发布时间】:2017-07-17 13:08:44
【问题描述】:
我遇到了一个非常奇怪的问题。我正在使用 boto3 为 Lambda 函数创建 API Gateway 代理。我可以在 API Gateway 控制台中创建 Method,它会通知我 API Gateway 将被授予调用该函数的权限。这很好用。
但是,如果我使用 SDK (lambda.add_permission) 创建 API 网关方法,则会收到此异常:
Execution failed due to configuration error: Invalid permissions on Lambda function
我已确认我创建的策略与控制台向导创建的策略完全相同,因此我对正在发生的事情以及 API 无法调用该函数的原因感到非常困惑。这是我附加的权限:
{
"Policy": "{\"Version\":\"2012-10-17\",\"Id\":\"default\",\"Statement\":[{\"Sid\":\"1ac63c2c972f3cbdbcf0f4b0038133e2\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"apigateway.amazonaws.com\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:REGION:ACCOUNT:function:FUNCTION_NAME\",\"Condition\":{\"ArnLike\":{\"AWS:SourceArn\":\"arn:aws:execute-api:REGION:ACCOUNT:API_ID/*/*/*\"}}}]}"
}
似乎其他人也遇到过类似的问题,但这些解决方案是我已经尝试过的:
https://forums.aws.amazon.com/thread.jspa?threadID=217254&tstart=0
【问题讨论】:
标签: amazon-web-services aws-lambda aws-api-gateway boto3