失败的事件没有发送到死信队列?

Failed events not sent to Dead letter queue?

我在 AWS Lambda 配置中设置了死信队列,以处理失败的事件。但是当我尝试发送错误记录(大小为 ~1KB)时,它没有被发送到 DLQ。

以下是我遵循的步骤:-

  1. 从 aws cli 向运动流发送了无效记录。

  2. Lambda 函数从流中轮询记录并尝试处理。由于输入格式错误导致失败。

  3. 检查了 Lambda 函数云监视日志以确认处理已导致错误。
  4. 检查了 Lambda 的云监视日志中的死信错误数,但它仍然是 0。还通过 AWS 控制台验证了 DLQ,其中可用消息仍然是 0。

AWS Lambda 中用于异步调用的配置:

DLQ配置:

有人可以解释 SQS 中不可用的错误消息的可能原因吗?

注意:Lambda 具有对 SQS 执行所有操作所需的权限。并且没有其他 SQS 消费者。

这完全取决于您从函数返回的响应。如果响应失败并带有正确的错误代码,它肯定会被推送到 DLQ 中。 您可以删除 DLQ 配置,然后检查消息是否在可见时间后出现在 SQS 中。

Lambda 从 Kinesis 中读取数据 synchronously
DLQ 仅用于 asynchronous Lambda 调用。