完全删除堆栈时的 AWS Cloudformation 回调

AWS Cloudformation callback when a stack is completely deleted

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

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

目前,当删除堆栈时,我会立即将其从数据库中删除,除 "Your stack is being deleted" 外,不会向用户提供更多信息。

执行 deleteStack() 时当前可用的回调在启动堆栈删除后已返回。

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

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

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

欢迎提供任何信息。

轮询自己曾经是唯一可用的选项,但是AWS SDK for Java 1.11.25 release introduced the com.amazonaws.waiters package, see Waiters in the AWS SDK for Java overview/introduction。

请注意,服务员仍将在幕后进行轮询,但他们抽象出该逻辑以提供 'convenience' API 方法以通过 run() or in a callback oriented way via runAsync().[=17 以阻塞方式等待=]

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