在 AWS-Lambda 中处理来自 FIFO 队列的 SQSEvent 时,应将哪些 messageIds 添加到 BatchItemFailures
What messageIds should be added to the BatchItemFailures when processing SQSEvent from a FIFO-queue in an AWS-Lambda
根据 https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#services-sqs-batchfailurereporting 他们建议如果您未能处理记录,则不要处理更多记录,因为它会保留 FIFO 队列中消息的顺序。
但这是否意味着我应该将所有后续 MessageId(我跳过的那些)添加到 BatchItemFailures 集合中?
是的,如果您要跳过任何消息,您应该 return 他们的 ID。任何传递给您的函数但未成功处理的消息都应在 BatchItemFailures
.
中 returned
AWS 不知道您在 Lambda 函数中编写了一些代码来跳过这些消息。他们只是建议您编写该代码。 AWS 知道您没有成功处理这些消息的唯一方法是,如果您的函数 return 包含所有您没有处理的 ID。
根据 https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#services-sqs-batchfailurereporting 他们建议如果您未能处理记录,则不要处理更多记录,因为它会保留 FIFO 队列中消息的顺序。
但这是否意味着我应该将所有后续 MessageId(我跳过的那些)添加到 BatchItemFailures 集合中?
是的,如果您要跳过任何消息,您应该 return 他们的 ID。任何传递给您的函数但未成功处理的消息都应在 BatchItemFailures
.
AWS 不知道您在 Lambda 函数中编写了一些代码来跳过这些消息。他们只是建议您编写该代码。 AWS 知道您没有成功处理这些消息的唯一方法是,如果您的函数 return 包含所有您没有处理的 ID。