我的结构与此类似
SQS -> Lambda -> DLQ
当像下面这样异步调用 Lambda 时,失败消息将成功添加到 DLQ。
$ aws lambda invoke --function-name my-function --inspiration-type Event --payload '{ "key": "value"}' response.json
但是,当 lambda 在向 SQS 添加新消息时触发,然后失败时,消息不会存储在 DLQ 中。
我发现当新消息发布到 SQS 时触发的事件本质上是同步的。
Lambda polls the queue and invokes your function synchronously with an event that contains queue messages.
引用 - https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html .
所以我想要 -
- SQS 事件触发器异步调用 lambda
或
- 同步调用 Lambda 时消息也会存储在 DLQ 中。
最佳答案
- DLQ 不用于存储错误消息,而是用于存储失败事件,以便稍后再次处理。
- CloudWatch 用于存储和显示 Lambda 和任何其他 AWS 服务的日志(包括错误)。
- SQS 触发 Lambda 背后的想法是,如果 Lambda 发生故障,该事件将由 Lambda 稍后再次处理。
它与 DLQ 的想法相同,但实现方式不同。
关于amazon-web-services - 同步调用 lambda 时如何向 DLQ 添加失败消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59866559/