我面临一个决策,是要按照AWS CloudFormation最佳实践使用跨栈引用导出共享资源还是使用嵌套堆栈重复使用常见模板样式。
然而,它们对我来说似乎是相同的,除了一些差异:
- 跨栈使用
Fn::ImportValue
,模板在一个文件夹中。 - 嵌套堆栈必须在S3中,使用类型为
AWS::CloudFormation::Stack
和TemplateURL
。
就我所知,它们之间没有明显的优缺点。
我的目标是创建一个父栈,将一些核心变量(如stackName
)传递给子栈,然后子栈使用这些变量来共享资源(如ARN
或Policies
),并使用stackName
来命名它们的资源,例如stackNameDynamoDBTable
。