AWS CloudFormation堆栈卡在状态UPDATE_ROLLBACK_IN_PROGRESS。

9

我想更新我的堆栈。但是堆栈出现了错误:“未找到函数:arn:aws:lambda...”。而且,堆栈的状态已经在“UPDATE_ROLLBACK_IN_PROGRESS”中进行了5个多小时。我该如何停止这个进程?


1
联系 AWS 支持 - jordanm
我不得不购买AWS支持,因为遇到了类似的问题。随着时间的推移,它实际上非常有帮助。所以我不后悔花费,这是物有所值的。 - lexicore
3个回答

4
如果在 CloudFormation 之外删除了该函数,则可以手动创建一个同名的新函数。有时这样做有帮助。

您还可以等待回滚超时。通常情况下,它会在一段时间后完成,但时间会有所不同。

导致其处于此状态的另一个原因可能是由于嵌套堆栈:

在这种情况下,推荐的选项确实是联系支持人员:

要修复堆栈,请联系AWS 客户支持

最近的AWS 博客文章也描述了该问题及可能的解决方案:

关于等待的时间,超时时间各不相同

在大多数情况下,您必须等待AWS CloudFormation堆栈超时。超时长度因个别资源稳定化要求而异,这些要求是AWS CloudFormation等待达到所需状态的基础。

在嵌套的堆栈资源中,AWS::DynamoDB::Table被卡在UPDATE_IN_PROGRESS状态。 - Darkin Rall
有多少回滚超时?已经过去超过6小时。 - Darkin Rall
@DarkinRall 你好。我看到你实际上有嵌套堆栈(你的问题没有提到这一点)。Lambda 是否是嵌套堆栈的一部分?你仍然可以手动创建它,看看效果如何。但是根据文档,在此期间,您可以联系支持并查看他们的回答。 - Marcin
是的,嵌套堆栈中有lambda。我创建了lambda,但堆栈卡住了。 - Darkin Rall
@DarkinRall 这是一个常见的问题,因此我链接了AWS文档中描述它的页面。我建议你去看一下。正如我在我的回答中所写的,他们也建议联系支持团队。他们可能是唯一能解决这个问题的人。 - Marcin
@DarkinRall 我也找到了一个新的链接。我已经将它添加到答案中了。 - Marcin

2
在我们的情况下,我们错误地将错误的图像名称传递给了云形成模板。意识到错误后,我们试图停止堆栈更新,这使得堆栈永远停留在UPDATE_ROLLBACK_IN_PROGRESS状态中。因此,在ECS服务创建期间,它被卡住了。 解决方案:
  1. 在堆栈事件中检查正在进行的步骤(在我们的情况下是ECS服务更新)。
  2. 进入ECS服务。
  3. 点击“更新服务”。
  4. 选择旧的任务定义。
  5. 并更新。
您的任务定义将重置为以前的版本,并且回滚将成功完成。

0
如果您的 CloudFormation 使用 ECS: 对我来说,这是因为我设置了一个规则,要求在一天内无活动后删除 ECR 图像。所以当 CloudFormation 更新失败时,ECS 尝试回滚到不再存在的图像。 我通过 AWS Web UI 手动删除了 ECS 服务,并等待约 1 小时使其超时。然后我可以删除 CloudFormation 堆栈。 这就是为什么您首先在暂存环境中测试部署!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接