使用 AWS CloudFormation 堆栈将 AWS 资源作为单个单元进行管理 - AWS CloudFormation

使用 AWS CloudFormation 堆栈将 AWS 资源作为单个单元进行管理

堆栈是可作为单个单元管理的一系列 AWS 资源。换句话说,您可通过创建、更新或删除堆栈来创建、更新或删除一系列资源。

创建堆栈涉及部署一个新的 CloudFormation 模板,该模板中会指定资源及其配置,然后由 CloudFormation 预置和配置资源。

更新堆栈涉及对模板或参数进行更改。CloudFormation 将您提交的更改与堆栈的当前状态进行比较,然后仅更新有更改的资源。CloudFormation 可能会中断资源或者替换更新的资源,具体取决于您所更新的属性。有关资源更新行为的更多信息,请参阅理解堆栈资源的更新行为

CloudFormation 提供了两种堆栈更新方法:

  • 堆栈集 – 使用更改集,您可以预览 CloudFormation 将对堆栈进行的更改,然后决定是否应用这些更改。更改集是 JSON 格式的文档,其中汇总了 CloudFormation 将对堆栈进行的更改。如果您希望确保 CloudFormation 不会进行意外的更改或者希望考虑多个选项,可使用更改集。例如,在更新期间可以使用更改集来验证 CloudFormation 不会替换堆栈中的数据库实例。

  • 直接更新 – 直接更新堆栈时,您负责提交更改,而 CloudFormation 会立即进行部署。在您需要快速部署更新时,请使用直接更新。

删除堆栈会删除与其关联的资源。例如,某个堆栈可能包含运行 Web 应用程序所需的所有资源,如 Web 服务器、数据库和联网规则。如果您不再需要该 Web 应用程序,则只需删除该堆栈及其所有相关资源。

注意

将按照堆栈资源运行的时间 (即使您已立即删除堆栈) 向您收取费用。

CloudFormation 会确保所有堆栈资源都已创建或删除(视情况)。由于 CloudFormation 将堆栈资源视为单个单元,因此必须成功创建或删除所有这些资源后才能创建或删除该堆栈。如果有任何资源无法创建,CloudFormation 将回滚该堆栈,并自动删除已创建的任何资源。如果资源无法删除,则任何剩余的资源都将保留,直到能够成功删除堆栈。

用于管理堆栈的界面

您可以使用以下接口管理 CloudFormation 堆栈:

  • CloudFormation 控制台 – 提供您可用来访问堆栈的 Web 界面。要使用 CloudFormation 控制台,您可以登录 AWS Management Console,使用导航栏顶部的搜索框来搜索 CloudFormation,然后从搜索结果中选择 CloudFormation

  • AWS Command Line Interface – 提供了适用于大量 AWS 服务的命令,包括 CloudFormation,并且 Windows、Mac 和 Linux 上均支持这些命令。有关 CloudFormation 命令的信息,请参阅《AWS CLI 命令参考》中的 cloudformation

  • AWS Tools for PowerShell – 一组根据 AWS SDK for .NET 公开的功能构建的 PowerShell 模块。借助 Tools for PowerShell,您可以从 PowerShell 命令行,为针对 AWS 资源的操作编写脚本。您可以在 AWS Tools for PowerShell Cmdlet 参考中找到适用于 CloudFormation 的 cmdlets。

  • 查询 API – 提供了您使用 HTTPS 请求调用的低级别 API 操作。如果您在应用程序中发出 API 调用,则必须编写代码来处理低级别的详细信息,例如生成哈希值以签署请求。有关适用于 CloudFormation 的 API 操作的更多信息,请参阅《AWS CloudFormation API 参考》中的操作

  • AWS SDK – 提供特定语言的 API,并处理多种连接详细信息,例如计算签名、处理请求重试和错误处理。有关更多信息,请参阅用于在 AWS 上进行构建的工具

  • AWS Cloud Development Kit (AWS CDK) – AWS CDK 是一个开源软件开发框架,通过该框架,您可以使用熟悉的编程语言(例如 TypeScript、Python、Java 和.NET)来定义 AWS 基础设施。使用 CDK,您可以对应用程序资源进行建模,然后直接在集成式开发环境(IDE)中使用 CloudFormation 预置这些资源。有关更多信息,请参阅 AWS Cloud Development Kit (AWS CDK)