

# 使用 CloudFormation 堆栈将 AWS 资源作为单个单元进行管理
<a name="stacks"></a>

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

**创建堆栈**涉及部署一个指定了资源及其配置的 CloudFormation 模板，然后 CloudFormation 会预置和配置资源。

**更新堆栈**涉及对模板或参数进行更改。CloudFormation 将您提交的更改与堆栈的当前状态进行比较，然后仅更新有更改的资源。CloudFormation 可能会中断资源或者替换更新的资源，具体取决于您所更新的属性。有关资源更新行为的更多信息，请参阅[理解堆栈资源的更新行为](using-cfn-updating-stacks-update-behaviors.md)。

CloudFormation 提供了两种堆栈更新方法：
+ **堆栈集** – 使用更改集，您可以预览 CloudFormation 将对堆栈进行的更改，然后决定是否应用这些更改。更改集是 JSON 格式的文档，其中汇总了 CloudFormation 将对堆栈进行的更改。如果您希望确保 CloudFormation 不会进行意外的更改或者希望考虑多个选项，可使用更改集。例如，在更新期间可以使用更改集来验证 CloudFormation 不会替换堆栈中的数据库实例。
+ **直接更新** – 直接更新堆栈时，您负责提交更改，而 CloudFormation 会立即进行部署。在您需要快速部署更新时，请使用直接更新。

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

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

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

**Topics**
+ [用于管理堆栈的界面](#interfaces-for-managing-stacks)
+ [通过 CloudFormation 控制台创建堆栈](cfn-console-create-stack.md)
+ [从 CloudFormation 控制台查看堆栈信息](cfn-console-view-stack-data-resources.md)
+ [更新堆栈模板](using-cfn-updating-stacks-get-template.md)
+ [理解堆栈资源的更新行为](using-cfn-updating-stacks-update-behaviors.md)
+ [使用更改集更新 CloudFormation 堆栈](using-cfn-updating-stacks-changesets.md)
+ [验证堆栈部署](validate-stack-deployments.md)
+ [直接更新堆栈](using-cfn-updating-stacks-direct.md)
+ [取消堆栈更新](using-cfn-stack-update-cancel.md)
+ [通过 CloudFormation 控制台删除堆栈](cfn-console-delete-stack.md)
+ [监控堆栈进度](monitor-stack-progress.md)
+ [使用回滚触发器在突破警报阈值时回滚 CloudFormation 堆栈](using-cfn-rollback-triggers.md)
+ [使用偏移检测功能检测堆栈和资源的非托管配置更改](using-cfn-stack-drift.md)
+ [将 AWS 资源导入 CloudFormation 堆栈](import-resources.md)
+ [堆栈重构](stack-refactoring.md)
+ [资源类型支持](resource-import-supported-resources.md)
+ [使用快速创建链接创建 CloudFormation 堆栈](cfn-console-create-stacks-quick-create-links.md)
+ [AWS CLI 和 PowerShell 的 CloudFormation 堆栈操作命令示例](service_code_examples.md)

## 用于管理堆栈的界面
<a name="interfaces-for-managing-stacks"></a>

您可以通过以下界面来管理 CloudFormation 堆栈：
+ **CloudFormation 控制台** – 提供您可用来访问堆栈的 Web 界面。要使用 CloudFormation 控制台，您可以登录 AWS 管理控制台，使用导航栏顶部的搜索框来搜索 **CloudFormation**，然后从搜索结果中选择 **CloudFormation**。
+ **AWS Command Line Interface** – 提供了适用于大量 AWS 服务的命令，包括 CloudFormation，并且 Windows、Mac 和 Linux 上均支持这些命令。有关 CloudFormation 命令的信息，请参阅《AWS CLI 命令参考》中的 [cloudformation](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/)**。
+ **AWS Tools for PowerShell** – 一组根据 适用于 .NET 的 SDK 公开的功能构建的 PowerShell 模块。借助 Tools for PowerShell，您可以从 PowerShell 命令行，为针对 AWS 资源的操作编写脚本。您可以在 [AWS Tools for PowerShell Cmdlet 参考](https://docs.aws.amazon.com/powershell/latest/reference/Index.html)中找到适用于 CloudFormation 的 cmdlets。
+ **查询 API** – 提供了您使用 HTTPS 请求调用的低级别 API 操作。如果您在应用程序中发出 API 调用，则必须编写代码来处理低级别的详细信息，例如生成哈希值以签署请求。有关适用于 CloudFormation 的 API 操作的更多信息，请参阅《AWS CloudFormation API 参考》中的[操作](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Operations.html)**。
+ **AWS SDK** – 提供特定语言的 API，并处理多种连接详细信息，例如计算签名、处理请求重试和错误处理。有关更多信息，请参阅[用于在 AWS 上进行构建的工具](https://aws.amazon.com/developer/tools/)。
+ **AWS Cloud Development Kit (AWS CDK)** – AWS CDK 是一个开源软件开发框架，通过该框架，您可以使用熟悉的编程语言（例如 TypeScript、Python、Java 和.NET）来定义 AWS 基础设施。使用 CDK，您可以对应用程序资源进行建模，然后直接在集成式开发环境（IDE）中使用 CloudFormation 预置这些资源。有关更多信息，请参阅 [AWS Cloud Development Kit (AWS CDK)](https://aws.amazon.com/cdk/)。