本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
避免达到历史记录的配额
Amazon Step Functions 对执行事件历史记录设置了 2.5 万个条目的硬配额。当执行达到 24,999 个事件时,它会等待下一个事件发生。
-
如果事件编号为 25,000 是
ExecutionSucceeded
,则执行成功完成。 -
如果事件编号 25,000 不是
ExecutionSucceeded
,则会记录ExecutionFailed
事件,状态机执行因达到历史记录上限而失败
为了避免长时间运行的执行达到此配额,您可以尝试以下一种变通方法:
-
使用分布式模式下的 Map 状态。在此模式下,
Map
状态将每次迭代作为子工作流执行运行,从而实现多达 1 万个并行子工作流执行的高并发数。每个子工作流执行都有自己的、独立于父工作流的执行历史记录。 -
直接从正在执行的
Task
状态启动新的状态机执行。要启动此类嵌套工作流执行,请在父状态机中使用 Step Functions 的StartExecution
API 操作并设置必要的参数。有关使用嵌套工作流的更多信息,请参阅从 Task 状态启动工作流执行或使用 Step Functions API 操作继续新的执行教程。提示
要将嵌套工作流的示例部署到您的 Amazon Web Services 账户,请参阅模块 13 - 嵌套快速工作流
。 -
实施一种使用 Amazon Lambda 函数的模式为状态机启动新的执行,将持续的工作拆分到多个工作流程执行。有关更多信息,请参阅使用 Lambda 函数继续新的执行教程。