在编写AWS CloudFormation模板以创建Lambda函数时,需要“代码”字段。 我在这里找到了文档:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html
该文档说您可以将Lambda函数的来源指定为S3存储桶中的zip文件。在S3Bucket
字段中,它表示“只要Lambda函数和存储桶位于同一区域,您就可以从其他AWS账户指定存储桶。”
如果您在S3Bucket
字段中放置了一个存储桶名称,它将尝试在同一个AWS账户中查找该存储桶。所以我的问题是我如何从另一个AWS账户指定一个存储桶?
我为CFT创建的yaml代码片段:
MyLambdaFunction:
Type: AWS::Lambda::Function
Properties:
Handler: index.handler
Runtime: nodejs6.10
Role: !GetAtt LambdaRole.Arn
FunctionName: 'MyLambda'
MemorySize: 1024
Timeout: 30
Code:
S3Bucket: 'my-bucket'
S3Key: 'my-key'
答案 0 :(得分:2)
S3存储桶是S3存储桶。它所在的AWS账户并不重要。如果您有权访问该存储桶,则可以访问该存储桶。
只需提供S3存储桶的名称(在此特定情况下它必须位于同一区域),并确保您使用的凭据可以访问S3存储桶。
答案 1 :(得分:0)
如果要在多个AWS区域中部署Cloudformation堆栈,则可以使用cfs3-uploader之类的工具在每个区域中快速创建相同的S3存储桶。