如何使用lambda管理大量记录

问题描述 投票:0回答:1

我在S3的Excel中有2万条记录。我的设计如下所示来处理这些记录。SQSWriterLambda-> SQS-> SQSReaderLambda->服务器。SQSWriterLambda将读取excel文件并将消息发送到SQS,excel中的每条记录有1条消息,因此将有2万sqs消息。 SQSReaderLambda将基于在SQS中接收到的消息而触发。它将消息的内容发送到最终服务器进行处理。但是我的服务器在24小时内只能处理5k条消息。因此,我正在寻找一种以某种方式处理剩余的15k记录的解决方案。我要将excel表格放在S3上一次,我希望lambda在任意天数内处理记录(每24小时5k)。

可见性超时的最大值为12小时。我的第一个lambda可以在sqs上放置2万条消息。但是第二个lambda在处理5k条记录后会失败。

amazon-web-services aws-lambda amazon-sqs trigger.io
1个回答
0
投票

如果您将lambda连接到sqs,它将尝试将所有20K消息提交给第二个lambda进行处理。我认为将SQS与第二个lambda耦合应该可行。

您可以考虑以下方法:

  1. 用“独立式”替代第二个lambda函数(未连接到SQS)。相反,第二个函数本身将以迭代方式查询SQS。它只会从中查询5K消息。

  2. 设置CloudWatch Events规则以每天自动触发一次功能。这样,您每天将只处理5K条消息。

请注意,邮件在SQS中的默认保留限制为4天,这足以容纳2万条消息(5K x 4天)。但是如果需要,您最多可以将其增加14天。

© www.soinside.com 2019 - 2024. All rights reserved.