我正在开发一个AWS CloudFormation管理平台,该平台允许用户在CloudFormation上启动,更新和删除堆栈。
启动堆栈时,我创建一个数据库条目,将其与模板(要创建的资源集合)和客户关联。用户可以调用和查看其堆栈中发生的最新事件,即“CREATION_IN_PROGRESS”,“CREATION_COMPLETED”。
目前,当删除堆栈时,我会立即从数据库中删除它,除了“正在删除堆栈”之外,不向用户提供进一步的信息。
启动堆栈删除后,已经返回执行deleteStack()
时当前可用的回调。
我想在删除时提供更多信息和事件,并在完全删除堆栈时将其从我的数据库中删除。
实现这一目标的唯一方法是执行一个函数来检查堆栈在一个定时间隔内是否存在,一旦它消失,就从数据库中删除它。
我认为这是错误的,或者读这篇文章的人有更好的想法或实施吗?
欢迎提供任何信息。
答案 0 :(得分:3)
轮询自己使用是唯一可用的选项,但AWS SDK for Java 1.11.25版本引入了com.amazonaws.waiters
包,请参阅Waiters in the AWS SDK for Java了解概述/介绍。< / p>
请注意,服务员仍会在幕后进行轮询,但他们将这种逻辑抽象出来以提供“便利”API方法,以便通过run()
以阻止方式等待,或通过runAsync()
以回调方式等待
关于您的明确用例,您应该查看AmazonCloudFormationWaiters.stackDeleteComplete()
。