我正在几个环境下准备一个新的AWS API网关 - 生产,登台,测试和开发。
假设我有两个连接到GET /first
和GET /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