AWS Lambda - SQS 与指数退避集成

Pun*_*cky 7 python amazon-sqs amazon-web-services boto3 aws-lambda

我有一个由 SQS 事件触发的 AWS Lambda (python)。如果 lambda 失败,SQS 将根据重试设置重试。如何更改重试设置以启用指数退避?

Tha*_*ssi 4

我不确定如果您使用 SQS 触发器是否可以使用指数退避,因为在幕后,这本质上并不是触发器。相反,Lambda 会继续轮询 SQS 队列中的消息。

SQS 将使消息在属性中定义的任何时间段内不可见Visibility Timeout,这意味着每次 Lambda 函数拾取新消息时,在其他使用者再次看到该消息之前,都会遵守此超时。

这给您留下了两个选择:

1) 不要使用 Lambda 触发器并自行轮询队列。请记住,如果是这种情况,您还必须手动删除这些消息。

2) 增加源 SQS 队列上的可见性超时,以便超时足以使潜在的故障系统恢复。

有关 Lambda 如何处理来自 AWS 服务的事件的更多信息,请参阅文档