AWS CloudFormation 堆栈停留在 UPDATE_ROLLBACK_FAILED 状态。
简短描述
对于处于 UPDATE_ROLLBACK_FAILED 状态的 CloudFormation 堆栈,请使用 ContinueUpdateRollback 操作恢复堆栈,或使用 DeleteStack 操作删除堆栈。要重试回滚,请先解决所有错误,然后使用 ContinueUpdateRollback 执行回滚操作。
**注意:**要解决该错误,可能需要提高限额、更改权限或修改其他设置。
有关导致更新回滚失败的常见错误的信息,请参阅更新回滚失败。
在某些情况下,重试回滚时,错误无法解决。如果发生这种情况,执行 ContinueUpdateRollback 操作时必须跳过失效的资源。当堆栈处于 UPDATE_ROLLBACK_COMPLETE 状态时,可以照常更新堆栈。
解决方法
要将堆栈恢复到工作状态,请使用 CloudFormation 控制台或 AWS 命令行界面(AWS CLI)。
**注意:**如果在运行 AWS CLI 命令时收到错误,请参阅 AWS CLI 错误故障排除。请确保使用的是最新版本的 AWS CLI。
CloudFormation 控制台
要回滚堆栈并跳过故障资源,请完成以下步骤:
- 打开 CloudFormation 控制台。
- 在导航窗格中,选择堆栈。
- 从堆栈名称列中,选择停留在 UPDATE_ROLLBACK_FAILED 状态的堆栈。
- 选择堆栈操作,然后选择继续更新回滚。
- 在继续更新回滚对话框中,展开高级问题排查。
- 在要跳过的资源 - 可选部分中,选择要跳过的资源。
- 选择继续更新回滚。
要回滚堆栈而不跳过资源,请完成以下步骤:
- 打开 CloudFormation 控制台。
- 在导航窗格中,选择堆栈。
- 从堆栈名称列中,选择停留在 UPDATE_ROLLBACK_FAILED 状态的堆栈。
- 选择堆栈操作,然后选择继续更新回滚。
AWS CLI
要在 AWS CLI 中回滚堆栈,请运行 continue-update-rollback 命令:
$ aws cloudformation continue-update-rollback --stack-name awsstackname123 --resources-to-skip awsfaultyresource123
**注意:**将 awsstackname123 替换为您的堆栈名称。将 awsfaultyresource123 替换为您的资源的逻辑 ID。
请注意,CloudFormation 将指定资源的状态设置为 UPDATE_COMPLETE。然后,CloudFormation 继续回滚堆栈。回滚完成后,跳过的资源的状态与堆栈模板中资源的状态会不一致。
在执行下一次堆栈更新之前,必须更新堆栈或资源,使其相互一致。如果不这样做,则后续堆栈更新可能会失败,堆栈将无法恢复。
有关将嵌套堆栈回滚到工作状态的更多信息,请参阅使用 ResourcesToSkip 恢复嵌套堆栈层次结构。