AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

使用嵌套堆栈

嵌套堆栈是作为其他堆栈的一部分来创建的堆栈。您可以在另一个堆栈中使用 AWS::CloudFormation::Stack 资源创建嵌套堆栈。

随着基础设施的发展,常见模式可合并,以便在多个模板中声明相同的组件。您可以分离这些常见组件并为其创建专用模板。然后使用模板中的资源来引用其他模板,也就是创建嵌套堆栈。

例如,假如您拥有用于大多数堆栈的负载均衡器配置。您可以为负载均衡器创建专用模板,而不是将相同的配置复制并粘贴到您的模板中。然后,您只需使用资源从其他模板中引用该模板。

嵌套堆栈本身可以包含其他嵌套堆栈,构成一个堆栈层次结构,如下图所示。根堆栈是所有嵌套堆栈最终归属的顶级堆栈。此外,每个嵌套堆栈都有一个直属父堆栈。对于第一级的嵌套堆栈而言,根堆栈也是父堆栈。以下图为例:

  • 堆栈 A 是该层次结构中所有其他嵌套堆栈的根堆栈。

  • 对于堆栈 B 来说,堆栈 A 既是父堆栈,也是根堆栈。

  • 对于堆栈 D,堆栈 C 是父堆栈;而对于堆栈 C 来说,堆栈 B 是父堆栈。

 作为另一个堆栈的一部分而创建的嵌套堆栈具有一个直属父堆栈,同时也具有顶级根堆栈。

使用嵌套堆栈来声明常见组件被视为最佳做法

某些堆栈操作 (如堆栈更新等) 应从根堆栈启动,而不是直接在嵌套堆栈上执行。此外,在某些情况下,嵌套堆栈会影响堆栈操作的执行。有关更多信息,请参阅以下主题:

查看嵌套堆栈的根堆栈

  1. 登录 AWS 管理控制台并通过以下网址打开 AWS CloudFormation 控制台:https://console.amazonaws.cn/cloudformation/。选择想要设置的堆栈。

    嵌套堆栈的堆栈名称旁边显示 NESTED

  2. Overview 选项卡上,单击作为 Root stack 列出的堆栈名称。

查看属于根堆栈的嵌套堆栈

  1. 登录 AWS 管理控制台并通过以下网址打开 AWS CloudFormation 控制台:https://console.amazonaws.cn/cloudformation/。单击要查看其嵌套堆栈的根堆栈的名称。

  2. 展开 Nested stacks 部分。