精细地消除阶跃函数



有没有一种方法可以在不完全退出步骤函数的情况下取消状态机的执行?我们的状态机有一个故障路径,它做了大量的清理工作,如果执行在工作流程中被取消,就会错过。

我被难住了,不确定是否有人曾经遇到过这个解决方案?

/MN

我知道这是一个老问题,但我遇到过类似的用例。我希望我可以在我的状态机中完成这一切,但是到目前为止我还没有发现这种能力。我实现的是一个由EventBridge规则触发的Lambda函数。我使用EventBridge规则:

EventPattern:
source:
- aws.states
detail-type:
- Step Functions Execution Status Change
detail:
status:
- SUCCEEDED
- FAILED
- ABORTED
- TIMED_OUT

然后在Lambda函数中,我可以检查事件和执行历史来执行清理。

将整个状态机包装在并行状态任务中,但只有一个分支-您的主路径。然后,您可以为"states . all"附加一个catch。并将其指向您的清理lambda任务。

但是如果你指的取消是主动使用CLI或SDK来取消状态机与stop execution的执行,那么在状态机内部没有办法这样做。然而。如果你使用SDK从lambda内部发送调用,你可以在那之后调用你的清理功能(甚至调用你的步进函数使用的相同的lambdas/services),并获得大部分你可能需要的describe executionCLI/SDK命令

最新更新