3

我正在开发一个 AWS CloudFormation 管理平台,该平台允许用户在 CloudFormation 上启动、更新和删除堆栈。

启动堆栈时,我创建一个数据库条目以将其与模板(要创建的资源集合)和客户相关联。用户可以调用和查看他们堆​​栈中发生的最新事件,即“CREATION_IN_PROGRESS”、“CREATION_COMPLETED”。

目前,当一个堆栈被删除时,我会立即将其从数据库中删除,除了“您的堆栈正在被删除”之外,不会向用户提供更多信息。

deleteStack()一旦启动堆栈删除,执行 a 时当前可用的回调已经返回。

我想在删除它时提供更多信息和事件,当堆栈完全删除时,将其从我的数据库中删除。

实现这一点的唯一方法是执行一个函数以在定时间隔内检查堆栈的存在,一旦它消失,就将其从数据库中删除。

我的假设是错误的,还是有人读过这篇文章有更好的想法或实施?

欢迎任何信息。

4

1 回答 1

3

轮询自己曾经是唯一可用的选项,但适用于 Java 的 AWS 开发工具包 1.11.25版本引入了该com.amazonaws.waiters程序包,请参阅适用于 Java 的 AWS 开发工具包中的服务员以获取概述/介绍。

请注意,服务员仍将在后台进行轮询,但他们将逻辑抽象出来以提供“方便”的 API 方法,以通过阻塞方式等待run()或以面向回调的方式通过runAsync()

关于您的明确用例,您应该查看AmazonCloudFormationWaiters.stackDeleteComplete().

于 2016-11-07T22:39:09.253 回答