如何使用状态UPDATE_ROLLBACK_COMPLETE更新CloudFormation堆栈?

38
一旦CloudFormation堆栈进入“UPDATE_ROLLBACK_COMPLETE”状态,是否不可能更新它?我正在使用CodePipeline部署应用程序。 我发现一旦堆栈进入某些无效状态,很多时候都需要手动删除堆栈,然后重新创建所有内容。 这样做是正确的吗?

1
我并没有发现这种情况。每当我到达UPDATE_ROLLBACK_COMPLETE时,我可以轻松地再次更新堆栈。但是,如果堆栈处于ROLLBACK_COMPLETE状态,则必须将堆栈烧毁并重新开始。也就是说,所有资源都将被删除。 - Jamie Starke
我也遇到了完全相同的问题。我的堆栈进入了“UPDATE_ROLLBACK_COMPLETE”状态,然后Serverless就忽略了更新。你有没有找到这种情况发生的原因? - crogers
3个回答

22

如果堆栈处于UPDATE_ROLLBACK_COMPLETE状态,则应该能够再次更新堆栈。

如果回滚失败,您可能需要调用CloudFormation中的ContinueUpdateRollback,然后才能再次更新。

如果您的堆栈停留在UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS状态,则可能会遇到此问题


不错,我不知道有关于continue的事情。在UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS进行时,我等待了长达10分钟直到它完成。 - Samer

10

查看CloudFormation的堆栈事件,可能会发现一些错误导致了堆栈更新问题。

我曾经遇到过类似的问题,状态为UPDATE_ROLLBACK_COMPLETE(红色字体和十字图标),但是CloudFormation堆栈没有得到更新。

我查看了CloudFormation的堆栈事件,对于“UPDATE_ROLLBACK_COMPLETE”状态,没有“状态原因”,但是当我进一步深入时,发现一个关于Lambda代码使用AWS保留关键字的错误,导致状态为“UPDATE_FAILED”(附有屏幕截图)。

从Lambda代码中删除该关键字后,问题得到了解决。防止cloudformation堆栈更新的保留关键字使用的错误图像


你是如何进一步深入了解的?我的没有状态原因。 - Nairi Areg Hatspanyan
Nairi,请查看“EVENTS”选项卡,然后向下滚动,直到您遇到第一个红色状态为止。它很可能是一个“创建失败”。 - cbilliau

0

显然,答案严重取决于您的具体情况和涉及的AWS资源,正如其他人已经提到的那样。作为对他人的启示,我遇到了错误'UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS',最新事件看起来像这样:

enter image description here

Cloudformation卡在这里,因为它试图删除的Lambda函数不存在。我不知道为什么会出现这种情况,但“FileUploadLambdaFunction”是我第一次想要在此堆栈上部署的函数,它替换了两个我不再使用的旧函数。

我通过手动创建一个同名的Lambda函数,然后再次将其删除来解决了这个问题。这触发了工作流程重新开始并正常继续。


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