CloudFormation 跨堆栈与嵌套堆栈

Vie*_*iet 9 amazon-web-services aws-cloudformation

我面临着一个决定,是使用跨堆栈引用导出共享资源,还是使用嵌套堆栈按照 AWS CloudFormation 最佳实践重用通用模板模式

但是,除了一些差异外,它们对我来说似乎相同:

  • 跨堆栈使用Fn::ImportValue,模板在一个文件夹中。
  • 嵌套堆栈必须在 S3 中,使用类型AWS::CloudFormation::StackTemplateURL

据我搜索,它们之间没有明显的优缺点。

我的目标是创建一个父堆栈是通过像一些核心变量stackName孩子堆,那么孩子堆栈创建资源共享像他们之间的一些变量ARNPolicies使用stackName来命名自己的资源,如stackNameDynamoDBTable

NHo*_*Hol 6

您应该使用跨堆栈引用,因为它是为您在堆栈之间传递的用例而创建的。

尽管嵌套堆栈可以工作,但它的主要目的是重用模块化组件,例如您在许多堆栈中使用的资源模板,以独立保存复制粘贴和更新堆栈。

  • 我很难相信嵌套堆栈是为了重用。CloudFormation 竭尽全力使模块化变得困难,包括嵌套堆栈表现为运行时资源,而不是简单地充当包含/导入机制。我对跨堆栈与嵌套堆栈的唯一标准是您是否想要一次全部部署还是单独部署,但即使如此也是令人沮丧的,因为有时您希望能够同时执行这两种操作,但据我所知,没有好的 CloudFormation 解决方案。 (2认同)