我正在几个环境下准备一个新的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