我有一个 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
@middy/sqs-partial-batch-failure
旨在与特定的 SQS 配置配合使用。
必须将值 ReportBatchItemFailures 添加到 EventSourceMapping 中的 Lambda FunctionResponseTypes 中。
https://middy.js.org/docs/middlewares/sqs-partial-batch-failure#important