在不同区域创建CloudFormation资源

时间:2017-09-11 22:54:50

标签: amazon-web-services amazon-cloudformation

我有一个CF堆栈,我已经定义了不同的资源。其中一个是S3 Bucket。我需要在eu-west-1区域中运行堆栈,同时在ap-southeast-1区域中创建存储桶。我怎么能这样做?

3 个答案:

答案 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存储桶