ラムダが1つ以上のプリンシパルにアクセスする必要があるので、CloudFormationテンプレートに必要なすべての呼び出し許可を作成する方法を探しています。例えば多くのプリンシパルを与える方法
は123と456は、このようなので、何かのMyFunctionにアクセスする必要がありますアカウントの意志ない作品:
Resources:
LambdaInvokePermission:
Type: AWS::Lambda::Permission
Properties:
FunctionName: arn:aws:lambda:us-west-2:${AWS::AccountId}:MyFunction
Action: lambda:InvokeFunction
Principal: "123,456"
...とdocumentationはそれだけで文字列をとても受け入れることを言うので、それは動作しませんCommaDelimitedListパラメータをCloudFormationテンプレートに渡し、Fn:Joinを使用してジョブを実行できると考えました。このような何か:
Parameters:
MyAccounts:
Description: All accounts
Type: CommaDelimitedList
...
Resources:
CrossInvokePermission:
Type: AWS::Lambda::Permission
Properties:
Fn::Join:
- ""
- - '{"Principal": {"AWS": ["'
- Fn::Join: ['","', {Ref: MyAccounts} ]
- '"]}, "Action": "lambda:InvokeFunction", "FunctionName" : "'
- arn:aws:lambda:us-west-2:${AWS::AccountId}:function:MyFunction
- '"}'
私の質問があり、それは私がしようとしている何をすることは可能でしょうか?これまでの私の努力は失敗しました。