【问题标题】:Prevent rollback in AWS cloudformation防止 AWS cloudformation 中的回滚
【发布时间】:2019-06-11 03:11:50
【问题描述】:

目前,我的 CFN 处于 update_rollback_failed 状态,显然它处于死胡同状态。要继续,我必须继续回滚,这不是一个选项。

我们在 3 个月前推出了 CFN,由于某些问题,我们直接从控制台进行了一些更改(巨大的错误),现在我们试图同步我们在 CFN 本身中所做的更改。由于某些问题,部署失败并开始回滚。幸运的是,由于 kinesis 方面的一些检查,回滚失败了。

AWS 上可用的 CFN 包含旧配置,这是灾难性的,肯定会导致一些严重的停机时间。

我尝试忽略资源继续回滚,但它只允许忽略回滚更新失败的资源。我应该如何摆脱这种情况?

【问题讨论】:

  • 如果您在生产系统上遇到这种情况,我猜是这样。我肯定会联系 aws 支持并让他们知道您遇到的问题可能会造成灾难性后果。有时它们会非常有用!
  • @Tommy 我已经这样做了,他们说除了进行回滚之外别无他法:(在 SO 上发布以检查是否有人遇到类似问题并提出了一些解决方法。
  • 我想知道您是否可以将所有资源添加到 DeletionPolicy 以便 CloudFormation 不会尝试删除资源? (我建议在做之前测试它!)
  • @JohnRotenstein 是的,考虑过这一点,但我必须对 CFN 本身进行更改,为此我将不得不继续回滚。
  • 是的,但目的是如果所有剩余资源都列在 DeletionPolicy 中,则回滚不会删除任何内容。 (也许。请测试。)

标签: amazon-web-services amazon-cloudformation


【解决方案1】:

很遗憾,这是 CloudFormation 的一个已知限制,目前没有解决办法。有一个AWS blog post that mentions update_rollback_failed 确认这是我们无能为力的事情,它说如下:

当堆栈达到 UPDATE_ROLLBACK_FAILED 时,这意味着 CloudFormation 堆栈正在尝试 UPDATE 操作,操作失败,我们开始回滚。出现问题,导致 CloudFormation 在回滚期间无法返回到之前的“良好”状态。结果,堆栈不能更新也不能回滚,因此它假定了这种中途状态。然后,API 会停止堆栈上除 ContinueUpdateRollback 和 DeleteStack 之外的任何进一步操作。

【讨论】:

    猜你喜欢
    • 2019-04-05
    • 2019-06-25
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 2023-03-13
    相关资源
    最近更新 更多