Step Functions: 如何管理状态。运行时历史事件配额。

0

【以下的问题经过翻译处理】 我的一些步骤函数可能具有(非常)长的执行时间,因此达到历史事件的最大数量(25000)的风险是不可忽略的,我需要管理/跟踪我的步骤函数的故障。

我如何知道历史记录长度,并在必要时终止当前步骤函数,并开始另一个具有当前机器数据的步骤函数?

当然,我可以添加一个任务,并通过Lambda检索步骤函数历史记录并进行管理,但(因为在Lambda执行时间、数据传输和“浪费的历史事件转换”方面都是昂贵的)我想知道是否可以从步骤函数内部实现同样的功能:例如,如果历史长度大于24950,那么停止这个状态并启动另一个状态机的条件状态。

有什么提示吗?

profile picture
专家
已提问 5 个月前31 查看次数
1 回答
0

【以下的回答经过翻译处理】 关于快速工作流,我只是指内部循环的操作,而不是整个状态机。

您是正确的,使用嵌套路由只是延迟了问题。如果您的状态机没有最大迭代次数,这是一个好的解决方案。

考虑到您的情况,我建议最好的方法是计数迭代次数。在每个循环中检查有多少事件被发射,当达到限制时,启动一个新的状态机。

另一种方法可能是使用EventBridge调度器。当需要启动一个执行时,您可以创建一个重复的调度,调用您的状态机。状态机只运行一次循环并退出。如果完成了,它会删除调度。这仅适用于等待状态以分钟为增量等待的情况。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则