失败事件未发送到死信队列吗?

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

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

以下是我遵循的步骤:-

  1. 从aws cli发送无效记录到运动学流。

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

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

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

  • 事件的最大年龄= 1分钟,
  • 重试次数= 1

DLQ的配置:

  • 交付延迟:0秒
  • 默认可见性超时:30秒,
  • 最大邮件大小:256 KB

有人可以解释SQS中没有错误消息的可能原因是什么?

注意:Lambda具有在SQS上执行所有操作所需的权限。而且没有其他SQS使用者。

amazon-web-services aws-lambda amazon-sqs amazon-kinesis
2个回答
0
投票

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


0
投票

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

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