【问题标题】:AWS Cloudformation callback when a stack is completely deleted完全删除堆栈时的 AWS Cloudformation 回调
【发布时间】:2017-02-21 09:01:32
【问题描述】:

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

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

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

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

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

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

我的假设是错误的,或者阅读本文的人是否有更好的想法或实现?

欢迎提供任何信息。

【问题讨论】:

  • 你没有错。知道堆栈何时被删除的唯一方法是轮询状态更改。
  • 更正,他错了,但只是从 2016 年 8 月上旬的the introduction of Waiters 开始,请参阅下面更广泛的答案。
  • 看起来甚至在 5 年后(2021 年 10 月)。 AWS 没有提供此功能。 :)

标签: amazon-web-services amazon-cloudformation aws-java-sdk


【解决方案1】:

轮询自己曾经是唯一可用的选项,但AWS SDK for Java 1.11.25 版本引入了com.amazonaws.waiters 包,请参阅Waiters in the AWS SDK for Java 以获得概述/介绍。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-27
    • 2018-03-24
    • 2018-04-04
    • 2015-12-12
    • 2021-04-22
    • 2021-03-15
    • 2019-09-01
    • 2021-12-18
    相关资源
    最近更新 更多