4

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

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

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

4

2 回答 2

4

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

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

如何减轻这种情况?

AWS Step Functions 历史事件限制

注意:虽然这个问题很老,但我回答这个问题是为了未来的读者。

于 2018-03-12T11:34:11.607 回答
1

这个工作流程应该工作得很好——因为状态机可以持续长达一年,这几乎就像 AWS 鼓励这种类型的工作负载一样。

在旁注中,我实际上对这实际上是多么低的成本感到惊讶:全年运行的 3 个状态转换为 75 美元。

  • 每年大约 500,000 分钟(如果每 30 秒计算 100 万分钟)
  • 每次状态转换 $0.000025
  • (1,000,000 * 3) * 0.000025 美元 = 75 美元
于 2017-10-20T00:47:12.167 回答