什么是部署,其中包括全球资源多区域CloudFormation堆栈的正确方法?(What is th

2019-09-30 02:26发布

我有一个包括区域资源(lambda表达式,API,主题等)和全球资源(用户,政策,route53,CloudFront的,dynamodb全局表格等)cloudformation栈模板,并希望它在同部署到多个区域AWS账户。

由于全球资源将在第一次创建后已经存在,我不能直接部署在多个地区栈模板。

我知道我可以在两个独立的堆栈模板拆分的一切,但我宁愿避免这一点,并把一切都在相同的单堆模板。

我看到了,我大概可以使用CF 条件 +参数只在第一个创造切换全球资源创建但是,这并不很好看...

我在想,如果我可以利用诸如StackSets或别的东西,以达到一些CloudFormation功能。

什么是做这种正确的方法你知道吗?

Answer 1:

解决的办法是在你的手中。 我建议你做到以下几点:

  • 创建了全球资源的单独模板(是的,我知道你不喜欢它,但它运作良好,在我的经验)
  • 使用SSM到共享全球资源存储引用AWS :: SSM ::参数
  • 部署区域栈和去参照全局资源(使用参数 ,如AWS::SSM::Parameter::Value<String>或动态参考 ,例如{{resolve:ssm:S3AccessControl:2}}

您可以使用StackSets为您的区域堆栈部署或创建(被无论是您的CI / CD服务器在本地或最好执行)一个参数构建脚本部署区域堆栈一个的时间。



文章来源: What is the proper way to deploy a multi-region CloudFormation stack that includes global resources?