

# 执行 CloudFormation 堆栈的更改集
<a name="using-cfn-updating-stacks-changesets-execute"></a>

要对您的堆栈进行更改集中所述的更改，请执行更改集。

**重要**  
在您执行更改集之后，CloudFormation 将删除与堆栈关联的所有其他更改集，因为它们对于更新后的堆栈不再有效。如果更新失败，您需要创建新的更改集。

**堆栈策略和执行更改集**  
如果您在有堆栈策略关联的堆栈上执行更改集，CloudFormation 将在更新堆栈时强制执行策略。执行更改集时，您不能指定覆盖现有策略的临时堆栈策略。要更新受保护的资源，您必须更新堆栈策略或者使用直接更新方法。有关更多信息，请参阅 [直接更新堆栈](using-cfn-updating-stacks-direct.md)。

------
#### [ Execute a change set (console) ]

**执行更改集**

1. 通过以下网址打开 Amazon CloudFormation 控制台：[https://console.aws.amazon.com/cloudformation](https://console.amazonaws.cn/cloudformation/)。

1. 在屏幕顶部的导航栏中，选择您的 Amazon Web Services 区域。

1. 在**堆栈**页面上，选择要更新的堆栈的名称。

1. 在导航窗格中，选择**更改集**以查看堆栈的更改集列表。

1. 选择要执行的更改集的名称。

1. 在更改集的详细信息页面上，选择**执行更改集**。

   CloudFormation 立即开始更新堆栈。CloudFormation 控制台会将您定向到 **Events (事件)** 选项卡，您可以在其中监控堆栈更新的进度。有关更多信息，请参阅 [监控堆栈进度](monitor-stack-progress.md)。

------
#### [ Execute a change set for nested stacks (console) ]

**执行嵌套堆栈的更改集**

1. 通过以下网址打开 Amazon CloudFormation 控制台：[https://console.aws.amazon.com/cloudformation](https://console.amazonaws.cn/cloudformation/)。

1. 在屏幕顶部的导航栏中，选择您的 Amazon Web Services 区域。

1. 在**堆栈**页面上，选择要更新的堆栈的名称。您必须选择与根更改集关联的堆栈名称。

1. 在导航窗格中，选择**更改集**以查看堆栈的更改集列表。

1. 选择要执行的根更改集的名称。

1. 在更改集的详细信息页面上，选择**执行更改集**。
**注意**  
如果在 [创建 CloudFormation 堆栈的更改集](using-cfn-updating-stacks-changesets-create.md) 过程中为嵌套堆栈的更改集选择了**已启用**，则 CloudFormation 会执行根更改集和嵌套更改集中描述的更改。

   CloudFormation 立即开始更新堆栈。CloudFormation 控制台会将您定向到 **Events (事件)** 选项卡，您可以在其中监控堆栈更新的进度。有关更多信息，请参阅 [监控堆栈进度](monitor-stack-progress.md)。

------

**执行更改集 (Amazon CLI)**
+ 运行 [https://docs.amazonaws.cn/cli/latest/reference/cloudformation/execute-change-set.html](https://docs.amazonaws.cn/cli/latest/reference/cloudformation/execute-change-set.html) 命令。

  指定您要执行的更改集的更改集 ID，如下例中所示：

  ```
  aws cloudformation execute-change-set \
      --change-set-name \
        arn:aws:cloudformation:us-east-1:123456789012:changeSet/SampleChangeSet/1a2345b6-0000-00a0-a123-00abc0abc000
  ```

  示例中的命令会执行 ID 为 `arn:aws:cloudformation:us-east-1:123456789012:changeSet/SampleChangeSet/1a2345b6-0000-00a0-a123-00abc0abc000` 的更改集。

  运行命令之后，CloudFormation 开始更新堆栈。要查看堆栈的进度，请使用 [describe-stacks](service_code_examples.md#describe-stacks-sdk) 命令。