【问题标题】:SQS Lambda - Redrive Policy vs DeadLetterConfigSQS Lambda - 重新驱动策略与 DeadLetterConfig
【发布时间】:2020-11-17 15:31:06
【问题描述】:

我已将 lambda 集成到具有固定保留并发的 SQS,以限制对后端服务的请求。我需要使用 DLQ 来跟踪和存储错误。

使用 SQS 的 Redrive Policy 与 lambda 函数的 DeadLetterConfig 在行为上有什么区别?

我对队列中有大量消息但 lambda 并发有限时的行为特别感兴趣。

【问题讨论】:

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


    【解决方案1】:

    您在函数上配置的死信队列用于函数的异步调用,而不是用于事件源队列。 Lambda 轮询 sqs 队列并使用包含队列消息的事件同步调用您的函数。所以如果你使用 SQS 作为事件源,DeadLetterConfig 是没有用的。您必须为源 SQS 配置带有重新驱动策略的 DLQ。

    来源:https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html

    【讨论】:

    • RedrivePolicy 如何处理节流?每条消息都会至少处理一次吗?
    • 如果将Source SQS的RedrivePolicy配置为MaxReceives 3,那么当lambda收到消息超过3次后,消息会自动移动到DLQ。 第一次接收 -> Lambda Throttled -> 可见性超时后消息将重新出现在源 SQS 中,第二次接收 -> Lambda Throttled -> 消息将重新出现在源 SQS 中可见性超时后,3rd Receive -> Lambda Throttled -> 可见性超时后,消息将重新出现在 Source SQS 中,4th Receive -> 当 MaxReceive 满足时,消息将被移动到 DLQ 而不进行处理。
    猜你喜欢
    • 2022-07-22
    • 1970-01-01
    • 2019-12-07
    • 2015-12-07
    • 2020-01-07
    • 2019-07-21
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多