如何更新处于 UPDATE_ROLLBACK_COMPLETE 状态的 CloudFormation 堆栈?

问题描述 投票:0回答:1

我为我的堆栈分配了堆栈策略以防止更新和删除:

{
  "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

我也无法点击管理控制台中的“取消更新堆栈”或“继续更新回滚”功能:

堆栈

谁能帮我解决这个问题吗?

amazon-web-services stack aws-cloudformation
1个回答
0
投票

您必须再次更新堆栈,而不是继续回滚。

对于处于 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

© www.soinside.com 2019 - 2024. All rights reserved.