我有一个服务,它每小时产生一次云监控事件。这些Cloud Watch事件(可能数以千计)每一个都会触发一个AWS Lambda函数,最终并发Lambda运行的数量可能会超过最大限制。我如何修改我的系统,让Lambda函数优雅地处理这些云监控事件,或者如果可能的话,我可以在第一个服务的休息时间内分发所有这些云监控事件。
附注:我不想修改并发运行lambdas的限制。
发布于 2019-12-31 22:38:28
您是否考虑过将这些事件添加到SQS中,而不是直接使用Lambda,然后配置SQS以调用Lambda函数?
这就是如何通过SQS队列触发Lambda函数
您可以使用本文定义队列消耗中的延迟
https://cloudaffaire.com/how-to-configure-delay-queue-in-sqs/
发布于 2020-01-01 05:11:27
如前所述,您可以使用SQS,但我也不建议这样做,因为您仍然会遇到相同的并发问题(更多的here)。
根据您需要处理的速度,让lambda每隔几分钟“轮询”一次SQS,然后通过SNS将一批消息发送到lambda进行处理可能是一个好主意(而不是让lambda触发SQS PutMessage调用)。
https://stackoverflow.com/questions/59545385
复制相似问题