对于Lambda工人处理SQS队列中的批次的情况,是否有一个选项可以监视工人的故障率(wrt处理作业)并阻止进一步出队(因此,lambda调用),以防故障率超过阈值?我可以监视lambda的错误/调用率,但是如何实现出队列暂停?我不想清空队列并丢失数据。
答案 0 :(得分:1)
第一件事是了解为什么您的Lambda可能会失败:
1)如果由于限制而失败(要处理的消息多于可用的Lambda函数),则消息(或整批消息)将被发送回队列,并在“可见性超时”到期后再次尝试,因此,重试逻辑已经为您内置并且可以很好地扩展。
2)如果由于错误消息或代码中的某些错误而导致失败,则可以配置DLQ将失败的消息发送至。这很容易设置,因为您只需告诉Lambda函数在发生故障的情况下连接哪个DLQ。
如果您的情况是1),请放心,您的消息不会丢失。如果您的方案是2),只需配置DLQ以便进一步分析失败的消息。
您还可以检查official docs来了解Lambda的重试行为