首页 > 解决方案 > AWS Cloudformation 嵌套模板

问题描述

我正在尝试从 4 个现有模板创建嵌套拓扑。这些模板执行以下操作:

1:部署策略和角色。2:部署一个EC2实例。3:部署ELB。4:部署RDS实例。

所有这些都是通过使用输出“链接”的。所有参数也包含在这些参数中。现在我想创建第五个模板(主模板)并将其他 4 个模板视为子模板。

但是,我不太确定主模板中需要的最少代码:

参数:这些是在孩子中定义的,所以我在这里不需要它们,对吗? Resources:通过提供存储它们的 S3 URL 指向 4 个子模板。 DependsOn子句:我需要这个,因为子模板需要按顺序部署。输出:不太确定要在这里包含什么,我应该将输出留在孩子身上并在这里只定义主人的吗?

楼主我觉得应该是小了但是不太确定是不是漏掉了什么。另一个问题,我需要更改子模板上的任何内容吗?

任何帮助将非常感激。

标签: amazon-web-servicestemplatesnestedamazon-cloudformation

解决方案


这里有一些问题,所以我会解决我能解决的问题:)

对于主模板或父模板,我建议包括子堆栈需要的所有参数。

当您想在将来对任何子堆栈进行任何更新时,您需要从父堆栈启动它。

根据文档

某些堆栈操作,例如堆栈更新,应该从根堆栈启动,而不是直接在嵌套堆栈本身上执行。

因此,您的父模板可能有很多参数,具体取决于需要将多少参数直接传递给子模板。

根据子堆栈如何使用Output来自其他子堆栈的 s,您可能不需要使用DependsOn来强制排序,因为 Cloudformation 足够聪明,可以找出隐式依赖关系(请参阅讨论的文档DependsOn)。包含这些当然不会有什么坏处,但DependsOn大多数情况下不需要该属性。

您需要确保子堆栈有一个Outputs 部分,以便其他子堆栈可以使用它们。密切注意AWS::CloudFormation::Stack的返回值


推荐阅读