同步调用lambda时,如何向DLQ添加失败信息?

How to add failure messages to DLQ when lambda is invoked synchronously?

我有类似的结构

SQS -> Lambda -> DLQ

当像下面这样异步调用 Lambda 时,失败消息将成功添加到 DLQ。

$ aws lambda invoke --function-name my-function --invocation-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.

所以我想要-

  1. SQS 事件触发器异步调用 lambda

  1. 消息也会在同步调用 Lambda 时存储在 DLQ 中。
  1. DLQ 不用于存储错误消息,而是用于存储失败的事件,稍后可以再次处理。
  2. CloudWatch 用于存储和显示 Lambda 和任何其他 AWS 服务的日志(包括错误)。
  3. SQS 触发 Lambda 的想法是,如果 Lambda 失败,事件将在稍后由 Lambda 再次处理。
    它与 DLQ 的想法相同,但实现方式不同。