aws step 工作流是否可以无限循环工作?

will an aws step workflow work with an infinite loop?

我正在考虑使用步进函数每 30 秒轮询一次来自外部数据库的更新和 运行 将数据存储在 s3 中的映射 lambda。

实现阶跃函数非常简单。我注意到限制设置为 运行 1 年。 http://docs.aws.amazon.com/step-functions/latest/dg/limits.html

我的问题是这项工作是否可行,或者为此目的使用步进函数是否存在缺陷。我的场景可以接受每 1000 步 0.025 的价格。

此工作流应该运行良好 - 由于状态机可以持续长达一年,AWS 几乎鼓励这种类型的工作负载。

顺便说一句,我真的很惊讶这实际上是多么低的成本:全年 3 次状态转换 运行 75 美元。

  • 每年大约 500,000 分钟(如果每 30 秒计算 100 万分钟)
  • 每次状态转换 0.000025 美元
  • (1,000,000 * 3) * 0.000025 美元 = 75 美元

没有。步进函数执行的执行历史记录大小限制为 25,000 events。每个 Lambda 任务需要 5 个事件。所以你只能在状态机的一次执行中执行 500 个状态。

在您的情况下,状态机的执行将在 30*5000 秒(~4 小时)后失败。您可能需要每 4 小时开始一次新的执行,以确保您的数据库同步正常工作。

如何缓解这种情况?

注意:虽然这个问题很老,但为了以后的读者的利益,我正在回答这个问题。