我有一个CF堆栈,我已经定义了不同的资源。其中一个是S3 Bucket。我需要在eu-west-1
区域中运行堆栈,同时在ap-southeast-1
区域中创建存储桶。我怎么能这样做?
答案 0 :(得分:6)
不幸的是,使用CloudFormation中的标准AWS::S3::Bucket
是不可能的,因为CloudFormation堆栈管理的资源只能与堆栈本身位于同一区域。但是,您可以使用Lambda函数
您的Lambda函数必须在creating the bucket时将LocationConstraint
设置为ap-southeast-1
。此外,Lambda函数将负责更新和删除您的存储桶,这可能涉及更多代码。
您可以使用Lambda-backed Custom Resources将Lambda函数连接到CloudFormation。
答案 1 :(得分:4)
单个CloudFormation堆栈只能在堆栈所在的单个区域中拥有资源。
但是,使用CloudFormation堆栈集,您可以在多个区域和AWS账户中的多个CloudFormation堆栈中创建资源。
有关使用堆栈集的更多信息,请参阅堆栈集文档:http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html
答案 2 :(得分:0)
您可以使用cfs3-uploader之类的工具非常快速地在每个区域为Cloudformation创建S3存储桶