我为我的堆栈分配了堆栈策略以防止更新和删除:
{
"Statement" : [
{
"Effect" : "Deny",
"NotAction" : ["Update:Replace", "Update:Delete"],
"Principal": "*",
"Resource" : "*"
}
]
}
当我尝试更新堆栈时,由于堆栈策略而被拒绝,并且堆栈被设置为“UPDATE_ROLLBACK_COMPLETE”状态。然后,当我更新堆栈策略以允许更新时:
{
"Statement": [
{
"Effect": "Allow",
"Action": "Update:*",
"Principal": "*"
}
]
}
并尝试继续回滚,我收到以下错误:
aws cloudformation continue-update-rollback --stack-name --resources-to-skip
调用ContinueUpdateRollback操作时发生错误(ValidationError):无法从当前堆栈状态调用RollbackUpdatedStack
我也无法点击管理控制台中的“取消更新堆栈”或“继续更新回滚”功能:
谁能帮我解决这个问题吗?
您必须再次更新堆栈,而不是继续回滚。
对于处于 UPDATE_ROLLBACK_FAILED 状态的指定堆栈, 继续将其回滚到 UPDATE_ROLLBACK_COMPLETE 状态。 根据失败原因,您可以手动修复错误 并继续回滚。继续回滚即可返回 将堆栈设置为工作状态(UPDATE_ROLLBACK_COMPLETE 状态), 然后再次尝试更新堆栈。
AWS 时堆栈会进入 UPDATE_ROLLBACK_FAILED 状态 CloudFormation 无法在堆栈失败后回滚所有更改 更新。例如,您可能有一个回滚到的堆栈 在 AWS CloudFormation 外部删除的旧数据库实例。 由于 AWS CloudFormation 不知道数据库已被删除,因此它 假设数据库实例仍然存在并尝试滚动 回到原来的位置,导致更新回滚失败。
https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ContinueUpdateRollback.html