AWS Lambda - SQS 与指数退避的集成
AWS Lambda - SQS Integration with Exponential Backoff
我有一个由 SQS 事件触发的 AWS Lambda (python)。如果 lambda 失败,SQS 会根据重试设置重试。如何更改重试设置以启用指数退避?
如果您使用 SQS 触发器,我不确定您是否可以使用指数退避,因为在幕后,这本质上不是触发器。 Lambda 继续轮询 SQS 队列以获取消息。
SQS 将使消息在 Visibility Timeout
属性中定义的任何时间段内不可见,这意味着每次 Lambda 函数获取新消息时,都会在消息被其他消费者可见之前遵守此超时再次。
这给您留下了两个选择:
1) 不要使用 Lambda 触发器并自行轮询队列。请记住,如果是这种情况,您还必须手动删除消息。
2) 增加源 SQS 队列的可见性超时,使超时足以让潜在的故障系统恢复。
有关 Lambda 如何处理来自 AWS 服务的事件的更多信息,请参阅 docs
我有一个由 SQS 事件触发的 AWS Lambda (python)。如果 lambda 失败,SQS 会根据重试设置重试。如何更改重试设置以启用指数退避?
如果您使用 SQS 触发器,我不确定您是否可以使用指数退避,因为在幕后,这本质上不是触发器。 Lambda 继续轮询 SQS 队列以获取消息。
SQS 将使消息在 Visibility Timeout
属性中定义的任何时间段内不可见,这意味着每次 Lambda 函数获取新消息时,都会在消息被其他消费者可见之前遵守此超时再次。
这给您留下了两个选择:
1) 不要使用 Lambda 触发器并自行轮询队列。请记住,如果是这种情况,您还必须手动删除消息。
2) 增加源 SQS 队列的可见性超时,使超时足以让潜在的故障系统恢复。
有关 Lambda 如何处理来自 AWS 服务的事件的更多信息,请参阅 docs