AWS SQS + lambda 处理程序记录数组中的 lambda 消息顺序

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

我计划在我的应用程序中使用 AWS SQS FIFO 队列,该队列从 SNS FIFO 主题获取消息。队列以先进先出的顺序提供消息。文档对我来说不是很清楚的是,这对于从队列接收成批消息时提供给 lambda 处理函数的 Records 数组的排序意味着什么。

该数组中具有最高索引号的项目是否是通过 SNS+SQS 发送的第一个项目?最低的索引号是最新的项目?这是我的猜测,基于逻辑,数组中的第一项将是您在数组上调用 pop 时得到的项。您将获得索引号最高的项目。所以这将是“先出”项目。或者,如果我使用 forEach 从数组的开头循环遍历数组,我会先得到最新的消息?

我只是没有在文档中找到对此的确认,并且由于批处理以及它们通过 SNS 的速度,我的测试消息的消息元数据时间是相同的。消息上还有一个 SequenceNumber,对于索引号较高的项目,该序列号较高,我不确定该怎么做。

amazon-web-services aws-lambda amazon-sqs amazon-sns aws-sqs-fifo
1个回答
0
投票

我测试了这个。从 SQS FIFO 队列中,事件被提供给 lambda 处理程序函数参数中 Records 数组中的 lambda,顺序是“先入”项是具有最低索引号的项,因此数组是 [oldest, newer, newest ].我想这是有道理的,只是需要确定。

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