【发布时间】:2018-02-20 06:27:25
【问题描述】:
我有一个 CF 堆栈,并且我定义了不同的资源。其中之一是 S3 存储桶。我需要在eu-west-1 区域中运行堆栈,同时在ap-southeast-1 区域中创建存储桶。我该怎么做?
【问题讨论】:
标签: amazon-web-services amazon-cloudformation
我有一个 CF 堆栈,并且我定义了不同的资源。其中之一是 S3 存储桶。我需要在eu-west-1 区域中运行堆栈,同时在ap-southeast-1 区域中创建存储桶。我该怎么做?
【问题讨论】:
标签: amazon-web-services amazon-cloudformation
不幸的是,在 CloudFormation 中使用标准 AWS::S3::Bucket 是不可能的,因为由 CloudFormation 堆栈管理的资源只能与堆栈本身位于同一区域。但是,您可以使用 Lambda 函数解决此问题
当 creating the bucket 时,您的 Lambda 函数必须将 LocationConstraint 设置为 ap-southeast-1。此外,您的 Lambda 函数将负责更新和删除您的存储桶,这可能涉及更多代码。
您可以使用Lambda-backed Custom Resources 将您的 Lambda 函数连接到 CloudFormation。
【讨论】:
单个 CloudFormation 堆栈只能在堆栈所在的单个区域中拥有资源。
但是,使用 CloudFormation 堆栈集,您可以跨多个区域和 AWS 账户中的多个 CloudFormation 堆栈创建资源。
有关使用堆栈集的更多信息可以在堆栈集文档中找到:http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html
【讨论】:
ap-southeast-1。这就是我希望在同一个堆栈中的多个区域部署多个资源的原因
您可以使用 cfs3-uploader 之类的工具在每个区域中为 Cloudformation 快速创建 S3 存储桶
【讨论】: