AWS Lambda中的重试次数增加

时间:2019-03-08 19:09:45

标签: aws-lambda retry-logic


我对AWS lambda有几个问题,在文档中找不到很多详细信息
如何增加AWS Lambda中的重试次数?
如果发生了最大的重试次数而整个Lambda都失败了,我如何获得某种通知?

1 个答案:

答案 0 :(得分:0)

Lambda重试基于许多因素。建议您看看official docs来了解每种重试类型,但总的来说很短:

  1. 基于流的同步事件源可以重试,也可以不重试。这取决于Service
  2. 异步事件源最多可重试3次。如果所有消息均失败,则可以将DLQ配置为接收失败的消息
  3. (基于流和基于轮询的事件源)(如Kinesis或Dynamo)将重试,直到配置了数据保留为止。请小心,因为如果一封邮件失败并且该邮件本身是有毒的,它将继续重试,直到过期,并且不会处理新邮件
  4. (基于非流和基于轮询的事件源)(SQS)将在失败的情况下丢弃消息(除非是调用失败或超时)。如果已丢弃,则将它们发送到DLQ(如果您先前已对其进行了配置)。

因此,根据上述信息,我们就可以解决有关通知的问题:您可以让另一个Lambda订阅DLQ,以接收消息并通知所需的方式。通过从功能本身发送电子邮件或将其发送到SNS(可能直接发送电子邮件或使用它进行任何操作)。

对于重试量,无法为已内置的值进行配置。您可以做的最好的就是从代码中同步调用Lambda函数,并在发生异常的情况下根据需要重试(指数补偿,如果需要,还需要手动编码)