微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何删除过多状态为 DELETE_COMPLETE 的 Cloudformation 堆栈

如何解决如何删除过多状态为 DELETE_COMPLETE 的 Cloudformation 堆栈

在我当前的站点上,一个帐户中有大量的 cloudformation 堆栈。

如果我们进行 AWS CLI 调用以列出所有堆栈,我们会收到一条错误消息,指出请求已被动态限制,请求失败。

根据 AWS 文档建议,以避免动态限制,我实现了一个脚本以使用分页和指数延迟以较小的块下载。

这成功了,但如果我们可以摆脱 DELETE_COMPLETE 状态中的许多堆栈,这将删除大约 800 个堆栈,并且会成功完成。

如何删除处于 DELETE_COMPLETE 状态的 AWS Cloudformation 堆栈?

我们还在 Cloudformation 控制台中看到了一些问题,其中最简单的操作由于大量堆栈而超时。 AWS 已为此提出请求。尽管我们所有的部署都是自动化的,但控制台对于开发和调试很有用。

我发现一个旧的论坛帖子说这些堆栈会在 90 天后自动删除,但我们有 800 多个这样的堆栈,有些比这更旧,而且它们仍然存在。

如果我使用 CLI 调用删除其中一个堆栈,如下所示:

aws cloudformation delete-stack --stack-name arn:aws:cloudformation:eu-west-1:123456789:stack/my-stack-name-here/87654321-1aaa-11aa-00a1-0aa1a0000000

删除调用没有错误终止,但堆栈保持原样。 我可以看到调用已在 Cloudtrail 中执行。 如果状态已设置为 delete-stack,则 DELETE_COMPLETE 操作似乎什么都不做。

我们需要删除这些堆栈,因为其中大约有 800 个堆栈,而且堆栈太多,以至于控制台会在最简单的任务(例如搜索堆栈以对其进行编辑)时给我们错误提示

我们确实通过 AWS 请求增加了配额大小(最大堆栈数),但是当我们尝试将它们全部列出时,限制就开始了,因为它们太多了。

解决方法

我发现一个旧论坛帖子说他们会在 90 天后自动删除

在一定时间后过期的已删除堆栈记录是目前唯一可以删除已删除堆栈记录的方法

我们通过 AWS 请求增加了配额大小(最大堆栈数)

The quota for max number of stacks only applies to active stacks,所以这无关

当使用控制台进行普通操作时会出现节流,因为它们太多了

控制台在搜索栏旁边有一个堆栈状态下拉列表,可以按堆栈状态过滤

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。