Middy.js SQS 队列验证器失败时无休止的死信队列(DLQ)处理

问题描述 投票:0回答:1

我有一个 lambda 处理程序来处理传入的 SQS 事件。 有一个 middyJs 处理程序,其上有一个验证器中间件。 当 MiddyJs 验证失败时,事件会陷入 DLQ 内的无限循环中。
当我故意在处理程序中抛出错误时,它只会在 DLQ 上出现一次。但通过 MiddyJs 验证,它将运行一个无限循环。
有谁知道什么可能会导致这种行为?

middy配置如下:

middy(
  sqsEventLambdaHandler,
)
  .use(eventNormalizerMiddleware())
  .use(
    validator({
      eventSchema: transpileSchema(sqsEventLambdaEventSchema),
    }),
  )
  .use(sqsPartialBatchFailure());

这是来自cloudwatch的错误:

Unknown application error occurred
Runtime.Unknown
node.js amazon-sqs middy dlq
1个回答
0
投票

@middy/sqs-partial-batch-failure
旨在与特定的 SQS 配置配合使用。

必须将值 ReportBatchItemFailures 添加到 EventSourceMapping 中的 Lambda FunctionResponseTypes 中。

https://middy.js.org/docs/middlewares/sqs-partial-batch-failure#important

© www.soinside.com 2019 - 2024. All rights reserved.