【发布时间】:2022-11-03 09:36:45
【问题描述】:
假设:
- 有 AWS Lambda 处理来自 AWS SQS FIFO 队列的 10 个元素批次的消息,具有 25 个可用消息组 ID(以随机方式分配)
- 单个消息的处理大约需要 30-60 秒
- SQS 消息可见性超时设置为 10 分钟
- 集成触发器 Lambda-SQS 已启用“部分批处理响应”
当 Lambda 返回带有失败消息 ID 的部分批处理响应时,例如:
{
"batchItemFailures": [
{
"itemIdentifier": "d4c7c57f-c12c-4639-abe3-3a0d37690790"
}
]
}
成功处理的消息将从队列中删除。 但是,批处理中的失败消息仍在等待可见性超时,而不是立即对消费者可见。失败消息的行为是否正确?或者让它们立即可见的唯一方法是调用 SQS API 并将可见性超时更改为 0?
【问题讨论】:
标签: amazon-web-services aws-lambda batch-processing amazon-sqs aws-sqs-fifo