相关疑难解决方法(0)

使用部分批处理响应使 SQS 消息再次可见

假设:

  • AWS Lambda 以 10 个元素批量处理来自 AWS SQS FIFO 队列的消息,具有 25 个可用消息组 ID(以随机方式分配)
  • 处理一条消息大约需要 30-60 秒
  • SQS 消息可见性超时设置为 10 分钟
  • 集成触发器 Lambda-SQS 已启用“部分批量响应”

当 Lambda 返回带有失败消息 ID 的部分批处理响应时,例如:

{
    "batchItemFailures": [
        {
            "itemIdentifier": "d4c7c57f-c12c-4639-abe3-3a0d37690790"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

成功处理的消息将从队列中删除。但是,批次中失败的消息仍在等待可见性超时,而不是立即对消费者可见。失败消息的行为是否正确?或者让它们立即可见的唯一方法是调用 SQS API 并将可见性超时更改为 0?

batch-processing amazon-sqs amazon-web-services aws-lambda aws-sqs-fifo

9
推荐指数
1
解决办法
1694
查看次数