背压时AWS SQS块出队

时间:2019-03-05 09:18:16

标签: amazon-web-services aws-lambda amazon-sqs

对于Lambda工人处理SQS队列中的批次的情况,是否有一个选项可以监视工人的故障率(wrt处理作业)并阻止进一步出队(因此,lambda调用),以防故障率超过阈值?我可以监视lambda的错误/调用率,但是如何实现出队列暂停?我不想清空队列并丢失数据。

1 个答案:

答案 0 :(得分:1)

第一件事是了解为什么您的Lambda可能会失败:

1)如果由于限制而失败(要处理的消息多于可用的Lambda函数),则消息(或整批消息)将被发送回队列,并在“可见性超时”到期后再次尝试,因此,重试逻辑已经为您内置并且可以很好地扩展。

2)如果由于错误消息或代码中的某些错误而导致失败,则可以配置DLQ将失败的消息发送至。这很容易设置,因为您只需告诉Lambda函数在发生故障的情况下连接哪个DLQ。

如果您的情况是1),请放心,您的消息不会丢失。如果您的方案是2),只需配置DLQ以便进一步分析失败的消息。

您还可以检查official docs来了解Lambda的重试行为