配置回滚
默认情况下,如果部署 AWS CloudFormation 堆栈操作失败,它将导致 AWS CloudFormation 将堆栈回滚到上一个已知的稳定状态。您可以更改行为,使得不仅在操作失败时进行回滚,还在指定的 Amazon CloudWatch 警报发生时进行回滚。有关 CloudWatch 警报的更多信息,请参阅《Amazon CloudWatch 用户指南》中的使用 Amazon CloudWatch 警报。
您还可以更改默认行为,使得 CloudFormation 在操作失败时不回滚堆栈。
按照以下说明操作来配置回滚。
注意
您无法手动启动回滚。
- Visual
-
开始前的准备工作
-
确保您的工作流包含正常运行的部署 AWS CloudFormation 堆栈操作。有关更多信息,请参阅部署 AWS CloudFormation 堆栈。
-
在部署 AWS CloudFormation 堆栈操作的堆栈角色 – 可选字段中指定的角色中,确保包含 CloudWatchFullAccess 权限。有关创建此具有适当权限的角色的信息,请参阅步骤 2:创建 AWS 角色。
为“部署 AWS CloudFormation 堆栈”操作配置回滚警报
通过访问 https://codecatalyst.aws/
打开 CodeCatalyst 控制台。 -
选择您的项目。
在导航窗格中,选择 CI/CD,然后选择工作流。
-
选择工作流的名称。您可以按定义工作流的源存储库或分支名称筛选,也可以按工作流名称或状态筛选。
-
选择编辑。
-
选择可视化。
-
选择您的部署 AWS CloudFormation 堆栈操作。
-
在详细信息窗格中,选择配置。
-
在底部,展开高级。
-
在监控告警 ARN 下,选择添加警报。
-
在以下字段中输入信息。
-
警报 ARN
指定 Amazon CloudWatch 警报的 Amazon 资源名称(ARN)以用作回滚触发器。例如,
arn:aws:cloudwatch::123456789012:alarm/MyAlarm
。您可以拥有最多 5 个回滚触发器。注意
如果您指定 CloudWatch 警报 ARN,则还需要配置其他权限才能允许该操作访问 CloudWatch。有关更多信息,请参阅配置回滚。
-
监控时间
指定 CloudFormation 监控指定警报的时间量(0 到 180 分钟)。在部署完所有堆栈资源后开始监控。如果在指定的监控时间内发生警报,则部署将失败,并且 CloudFormation 将回滚整个堆栈操作。
默认值:0。CloudFormation 仅在部署堆栈资源时(而非之后)监控警报。
-
-
- YAML
-
为“部署 AWS CloudFormation 堆栈”操作配置回滚触发器
通过访问 https://codecatalyst.aws/
打开 CodeCatalyst 控制台。 -
选择您的项目。
在导航窗格中,选择 CI/CD,然后选择工作流。
-
选择包含部署 AWS CloudFormation 堆栈操作的工作流的名称。您可以按定义工作流的源存储库或分支名称筛选,也可以按工作流名称或状态筛选。
-
选择编辑。
-
选择 YAML。
-
在 YAML 代码中添加
monitor-alarm-arns
和monitor-timeout-in-minutes
属性以添加回滚触发器。有关每个属性的说明,请参阅“部署 AWS CloudFormation 堆栈”操作 YAML。 -
在部署 AWS CloudFormation 堆栈操作的
role-arn
属性中指定的角色中,确保包含 CloudWatchFullAccess 权限。有关创建此具有适当权限的角色的信息,请参阅步骤 2:创建 AWS 角色。
- Visual
-
为“部署 AWS CloudFormation 堆栈”操作禁用回滚
通过访问 https://codecatalyst.aws/
打开 CodeCatalyst 控制台。 -
选择您的项目。
在导航窗格中,选择 CI/CD,然后选择工作流。
-
选择包含部署 AWS CloudFormation 堆栈操作的工作流的名称。您可以按定义工作流的源存储库或分支名称筛选,也可以按工作流名称或状态筛选。
-
选择编辑。
-
选择可视化。
-
选择您的部署 AWS CloudFormation 堆栈操作。
-
在详细信息窗格中,选择配置。
-
在底部,展开高级。
-
启用禁用回滚。
- YAML
-
为“部署 AWS CloudFormation 堆栈”操作禁用回滚
通过访问 https://codecatalyst.aws/
打开 CodeCatalyst 控制台。 -
选择您的项目。
在导航窗格中,选择 CI/CD,然后选择工作流。
-
选择包含部署 AWS CloudFormation 堆栈操作的工作流的名称。您可以按定义工作流的源存储库或分支名称筛选,也可以按工作流名称或状态筛选。
-
选择编辑。
-
选择 YAML。
-
在 YAML 代码中添加
disable-rollback: 1
属性以停止回滚。有关每个属性的说明,请参阅“部署 AWS CloudFormation 堆栈”操作 YAML。