

亚马逊 CodeCatalyst 不再向新买家开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [如何从中迁移 CodeCatalyst](migration.md)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 配置回滚
<a name="deploy-consumption-enable-alarms"></a>

默认情况下，如果 **Deploy CloudFormation 堆栈**操作失败，它将导致堆栈回滚 CloudFormation 到上次已知的稳定状态。您可以更改行为，使回滚不仅在操作失败时发生，而且还会在出现指定的 Amazon CloudWatch 警报时发生。有关 CloudWatch 警报的更多信息，请参阅[亚马逊* CloudWatch 用户指南中的使用亚马逊 CloudWatch *警报](https://docs.aws.amazon.com/)。

您也可以更改默认行为，以便在操作失败时 CloudFormation 不会回滚堆栈。

按照以下说明操作来配置回滚。

**注意**  
您无法手动启动回滚。

------
#### [ Visual ]

**开始前的准备工作**

1. 确保您的[工作流程](workflow.md)包含有效的 De **ploy CloudFormation 堆栈**操作。有关更多信息，请参阅 [部署 CloudFormation 堆栈](deploy-action-cfn.md)。

1. 在 “**部署 CloudFormation **堆栈” 操作的 “**堆栈角色-可选**” 字段中指定的角色中，确保包含**CloudWatchFullAccess**权限。有关创建此具有适当权限的角色的信息，请参阅[步骤 2：创建 AWS 角色](deploy-tut-lambda.md#deploy-tut-lambda-cfn-roles)。

**为 “部署 CloudFormation 堆栈” 操作配置回滚警报**

1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 选择您的项目。

1. 在导航窗格中，选择 **CI/CD**，然后选择**工作流**。

1. 选择工作流的名称。您可以按定义工作流的源存储库或分支名称筛选，也可以按工作流名称或状态筛选。

1. 选择**编辑**。

1. 选择**可视化**。

1. 选择您的**部署 CloudFormation 堆栈**操作。

1. 在详细信息窗格中，选择**配置**。

1. 在底部，展开**高级**。

1. 在 “**监控警报**” 下 ARNs，选择 “**添加警报**”。

1. 在以下字段中输入信息。
   + **警报 ARN**

     指定要用作回滚触发器的亚马逊 CloudWatch 警报的亚马逊资源名称 (ARN)。例如 `arn:aws:cloudwatch::123456789012:alarm/MyAlarm`。您可以拥有最多 5 个回滚触发器。
**注意**  
如果您指定 CloudWatch 警报 ARN，则还需要配置其他权限才能使操作能够访问。 CloudWatch有关更多信息，请参阅 [配置回滚](#deploy-consumption-enable-alarms)。
   + **监控时间**

     指定 CloudFormation 监视指定警报的时间段，介于 0 到 180 分钟之间。在部署完所有堆栈资源*后*开始监控。如果警报发生在指定的监控时间内，则部署将失败，并回 CloudFormation 滚整个堆栈操作。

     默认值：0。 CloudFormation 仅在部署堆栈资源时监控警报，而不在部署堆栈资源之后监视警报。

------
#### [ YAML ]

**为 “部署 CloudFormation 堆栈” 操作配置回滚触发器**

1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 选择您的项目。

1. 在导航窗格中，选择 **CI/CD**，然后选择**工作流**。

1. 选择包含**部署 CloudFormation 堆栈**操作的工作流的名称。您可以按定义工作流的源存储库或分支名称筛选，也可以按工作流名称或状态筛选。

1. 选择**编辑**。

1. 选择 **YAML**。

1. 在 YAML 代码中添加 `monitor-alarm-arns` 和 `monitor-timeout-in-minutes` 属性以添加回滚触发器。有关每个属性的说明，请参阅['部署 CloudFormation 堆栈'动作 YAML](deploy-action-ref-cfn.md)。

1. 在 De **ploy CloudFormation 堆栈**操作的`role-arn`属性中指定的角色中，确保包含**CloudWatchFullAccess**权限。有关创建此具有适当权限的角色的信息，请参阅[步骤 2：创建 AWS 角色](deploy-tut-lambda.md#deploy-tut-lambda-cfn-roles)。

------

------
#### [ Visual ]

**关闭 “部署 CloudFormation 堆栈” 操作的回滚功能**

1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 选择您的项目。

1. 在导航窗格中，选择 **CI/CD**，然后选择**工作流**。

1. 选择包含**部署 CloudFormation 堆栈**操作的工作流的名称。您可以按定义工作流的源存储库或分支名称筛选，也可以按工作流名称或状态筛选。

1. 选择**编辑**。

1. 选择**可视化**。

1. 选择您的**部署 CloudFormation 堆栈**操作。

1. 在详细信息窗格中，选择**配置**。

1. 在底部，展开**高级**。

1. 启用**禁用回滚**。

------
#### [ YAML ]

**关闭 “部署 CloudFormation 堆栈” 操作的回滚功能**

1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 选择您的项目。

1. 在导航窗格中，选择 **CI/CD**，然后选择**工作流**。

1. 选择包含**部署 CloudFormation 堆栈**操作的工作流的名称。您可以按定义工作流的源存储库或分支名称筛选，也可以按工作流名称或状态筛选。

1. 选择**编辑**。

1. 选择 **YAML**。

1. 在 YAML 代码中添加 `disable-rollback: 1` 属性以停止回滚。有关每个属性的说明，请参阅['部署 CloudFormation 堆栈'动作 YAML](deploy-action-ref-cfn.md)。

------