如何允许AWS API Gateway访问以在任何路径中调用所有AWS Lambda函数

时间:2018-03-21 14:03:12

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

我正在几个环境下准备一个新的AWS API网关 - 生产,登台,测试和开发。

假设我有两个连接到GET /firstGET /second的lambda函数。这些资源指向lambda first:${stageVariables.Qualifier}(此变量具有适当的环境值,具体取决于阶段)。

现在我必须添加API Gateway的权限才能调用这两个函数。 AWS说:

  

您将Lambda函数定义为阶段变量。请确保您对将要使用的所有功能都有相应的功能策略。您可以通过为每个函数运行以下AWS CLI命令,使用必要的函数名替换function-name参数中的stage变量来执行此操作。

aws lambda add-permission
    --function-name arn:aws:lambda:region:000...:function:first:${stageVariables.Qualifier}
    --source-arn arn:aws:execute-api:region:00000:xxxx/*/GET/first
    --principal apigateway.amazonaws.com
    --statement-id 0000-000-0-...
    --action lambda:InvokeFunction

所以很清楚 - 我必须为每个配置调用上面的命令8次:

first:development
first:testing
....
second:production

是否有可能以某种方式添加一般权限以允许在具有任何路径的任何限定符中调用任何函数?

我的目标就是这样(但它不起作用):

aws lambda add-permission
    --function-name arn:aws:lambda:region:000...:function:*:*
    --source-arn arn:aws:execute-api:region:00000:xxxx/*/*/*
    --principal apigateway.amazonaws.com
    --statement-id 0000-000-0-...
    --action lambda:InvokeFunction

0 个答案:

没有答案