问题描述
每天,我需要动态安排很多lambda(大约20K),每个lambda在特定的时间戳记下,在一天中,每个lambda还将需要在每个时间戳记的特定时间戳记下安排另一个lambda lambda,这大约是5倍(因此,一天中并行运行可能超过20K)。 我已经了解了如何使用cloudwatch / eventbridge,但是“您帐户中的每个事件总线最多可以关联100条EventBridge规则”和“仅默认事件总线上支持计划的规则”,所以我知道我不能总共超过100个时间表。 知道怎么做吗? 我正在阅读有关步进功能,“批处理”的信息,但不确定可靠性/稳定性和最终帐单...
谢谢
解决方法
我强烈建议您使用 Step Function (步进功能)。
计费
根据执行应用程序所需的状态转换次数向您收费。如果您选择标准工作流程,则将按每1000个状态转换0.025美元的费用。
如果您选择快速工作流程,则每100万个请求将收取 1.00美元。
尽管请记住,前 4,000个状态转换是免费的,但需要在12个月内使用。
可靠性
状态函数非常可靠,您可以对其进行控制。众所周知,我们可以在lambda中处理异常并进行重试,如果您忘记了处理异常和退休,可以在状态函数中进行协调。
此外,您还具有一个实时视觉监控器,您可以在其中跟踪状态运行的状态。
它符合HIPPA ,您几乎可以跟踪每次执行的历史记录。
要设计状态机,您也不需要了解任何编程语言,因为了解 Json 就足够了。
仍然有任何疑问,您可以参考faqs。
,作为调度20,000个Lambda函数并让它们调度另外20,000个函数的替代方法,我建议采用数据库方法:
- 使用数据库(您的选择)来存储所需的时间表,每“触发”时间就有一行
- 每分钟一次,触发一个查询数据库的Lambda函数,检索应在该分钟内触发的函数列表,然后让其调用这些函数
因此,您实际上是在为功能编写调度程序。