1

我正在编写一个 cloudformation 模板,其中我将有一个 lambda 支持的自定义资源,它将触发一个 step 函数执行。这个 step 函数可能需要超过 15 分钟才能执行,所以我不能等待它在调用 lambda 中完成。因此 Lambda 将在调用 step 函数后立即返回。但是,我想等待 step 函数完成,然后再根据 step 函数输出创建另一个资源。

这怎么可能实现。我引用的 step 函数已经创建,而不是我当前堆栈的一部分。

我知道 cloudformation 支持等待条件和等待条件句柄,但这需要更新 step 函数以调用 wait 条件句柄,这是不可能的,因为 step 函数由不同的团队拥有。

有什么办法可以解决这个问题吗?

4

1 回答 1

2

棘手的事情。但是您可以尝试使用 CloudWatch 事件来监听给定的事件配置:

            EventPattern:
                source:
                    - "aws.states"
                detail-type:
                    - "Step Functions Execution Status Change"

然后,您可以编写自己的 Lambda 函数来触发您的等待条件。或者,如果可以精确过滤您想要等待的事件,请将此事件模式目标直接绑定到 SNS 主题,因此如果您可以在简单的 JSON 过滤器中表达您的要求,则不需要为此自定义代码。

于 2021-01-06T13:56:09.573 回答