步骤功能:等待-可以持续多长时间?

时间:2019-01-18 20:38:55

标签: amazon-web-services aws-lambda aws-step-functions

我在AWS文档中找不到任何答案。

是否可以执行100,000(大约)步功能,并且状态一直等待到3个月?等待状态每30分钟检查一次,否则将在2个月后退出状态。

等待状态将执行lambda函数-在进行下一个状态之前,它将检查字段(dynamodb)是否符合条件。

我想知道是否有任何限制?

如果WAIT状态不是一个好的方法,那么有什么替代方法?

2 个答案:

答案 0 :(得分:4)

是的,您的状态机(SM)Wait状态最多可以等待1年。但是,您打算运行两个月的SM数量将是一个非常昂贵的解决方案。

您打算运行100,000个SM,并且每个SM的“等待”状态将每30分钟执行一次lambda。所有100,000个SM都有可能运行两个月。

假设所有SM都运行了2个月,则交易总数为:

1 SM =每天96笔交易(等待Lambda,等待Lambda)。每个SM 5760 transactions in 2 months

100,000 SM = 5760 * 100,000 = 576000000 transactions

First 4000 transactions are free so total transactions = 576000000 - 4000 = 575996000

前4000次后每笔交易$ 0.000025:

575996000 * 0.000025 = $14399.9 in two months.

$ 0.000025是cheapest,根据您所在的地区,可能会更高。

每个SM执行历史都可能触及limit of 25,000

我建议每30分钟使用CloudWatch schedule event to run a Lambda验证DynamoDB表中的字段,或使用DynamoDB streams触发Lambda进行字段验证。状态匹配后,即可执行SM。两者都比步进功能便宜。

答案 1 :(得分:1)

Executions can exist for up to 1 year(根据AWS文档)。每个帐户的最大执行次数为1,000,000。