我在AWS文档中找不到任何我想要的答案。
是否有可能执行100,000 (大约)步进函数,并且状态一直等待到3个月?等待状态每30分钟检查一次,否则2个月后退出状态。
等待状态将执行lambda函数-它将检查字段(dynamodb)在进入下一个状态之前是否具有匹配条件。
我想知道有没有什么限制?
如果等待状态不是很好的方法,那么还有什么替代方法呢?
发布于 2019-01-19 05:56:08
是的,您的状态机(SM)的Wait状态可以等待长达1年。但是,您打算运行两个月的SMs数量将是一个非常昂贵的解决方案。
您打算运行100,000个SMs,每个SM的等待状态将在每30分钟后执行一个lambda。有可能所有100,000个SMs都运行了两个月。
假设所有短信都运行了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前4,000美元后每笔交易$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进行字段验证。一旦状态匹配,您就可以执行SMs。这两种方法都比单步函数便宜。
发布于 2019-01-19 04:41:20
根据亚马逊网络服务标准的Executions can exist for up to 1 year。每个账号的最大执行次数为100万次。
https://stackoverflow.com/questions/54261137
复制相似问题