Amazon web services Lambda在处理失败后未使用队列中的所有消息
我有一个SQS队列,名为events,带有一个lambda触发器,名为consumer。此外,我还有一个死信队列,名为poison_events,配置在队列events(而不是Lambda)上。当lambda抛出错误时,它不会像预期的那样删除接收到的消息,并将消息留在队列中。lambda将再次尝试处理消息,这从消息的接收计数的增加可以看出 我的目标是在超过MaxReceiveCount的10之后,将所有无法处理的消息发送到死信队列。 当队列中的可用消息增加,并且lambda无法扩展以处理可用消息时,我的问题就开始了 我假设lambda将进行扩展,以便它将处理队列中的所有消息,直到接收计数超过maxReceiveCount并发送到死信队列。但事实并非如此,lambda只能扩展到大约每分钟100次调用,这还不足以处理消息 请注意,lambda的并发性设置为默认值1000 我有两种工作原理:Amazon web services Lambda在处理失败后未使用队列中的所有消息,amazon-web-services,aws-lambda,amazon-sqs,Amazon Web Services,Aws Lambda,Amazon Sqs,我有一个SQS队列,名为events,带有一个lambda触发器,名为consumer。此外,我还有一个死信队列,名为poison_events,配置在队列events(而不是Lambda)上。当lambda抛出错误时,它不会像预期的那样删除接收到的消息,并将消息留在队列中。lambda将再次尝试处理消息,这从消息的接收计数的增加可以看出 我的目标是在超过MaxReceiveCount的10之后,将所有无法处理的消息发送到死信队列。 当队列中的可用消息增加,并且lambda无法扩展以处理可用消息
请注意,SQS可以将消息批量传递到单个Lambda调用。默认批处理大小为10。@jarmod调用量应随着可用消息数量的增加而增加。当前调用量(~100)和批大小不足以处理当前可用消息量(~400K)