amazon-web-services - 使用 AWS Lambda 按顺序处理来自 SQS 队列的元素
问题描述
我需要使用 AWS Lambda 按顺序处理 SQS 队列的元素。我需要按顺序处理元素,因为我不想在并行处理多个元素时影响数据库。请注意,此过程对时间不敏感。
我注意到 AWS Lambda 在消息可用时最多读取 5 个批次,然后并行调用 5 个 Lambda,我想避免这种情况。Lambda 可以将该数量增加到多达 1000 个批次。https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html
任何帮助将不胜感激,谢谢!
解决方案
您只需要将--batch-size
参数指定为1
. 要达到预期结果的其他事项。
- 确保您使用的是 FIFO SQS 队列
- 使用当时获取 1 条消息
batch-size
- 为SQS本身配置一个死信队列(DLQ),这样多次尝试后无法处理的消息会被发送到DLQ SQS
检查文档以获取有关事件源映射https://docs.aws.amazon.com/cli/latest/reference/lambda/create-event-source-mapping.html https://docs.aws支持的每个参数的详细信息 。 amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html