一个aws步骤工作流程将无限循环工作?

时间:2017-10-18 06:20:11

标签: aws-step-functions

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

实现步骤功能非常简单。我注意到限制设定为1年。 http://docs.aws.amazon.com/step-functions/latest/dg/limits.html

我的问题是这将起作用还是在为此目的使用步骤函数时存在缺陷。我的方案可接受0.025 / 1000步的价格。

2 个答案:

答案 0 :(得分:2)

没有。步骤函数执行的执行历史的大小限制为25,000 events。每个Lambda任务需要5个事件。因此,您只能在一次执行状态机时执行500个状态。

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

如何缓解这种情况?

AWS Step Functions history event limitation

注意:虽然这个问题已经过时了,但为了未来读者的利益,我正在回答这个问题。

答案 1 :(得分:1)

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

另一方面,我实际上对这实际成本有多低感到惊讶:全年3个状态转换的成本为75美元。

  • 每年大约500,000分钟(如果每30秒就有100万分钟)
  • 每州过渡$ 0.000025
  • (1,000,000 * 3)* $ 0.000025 = $ 75