Как добавить сообщения об ошибках в DLQ, когда лямбда вызывается синхронно? - PullRequest
0 голосов
/ 22 января 2020

У меня есть структура, подобная этой

SQS -> Lambda -> DLQ

Когда Lambda вызывается асинхронно, как показано ниже, сообщения об ошибках успешно добавляются в DLQ.

$ aws lambda invoke --function-name my-function --invocation-type Event --payload '{ "key": "value" }' response.json

Но когда лямбда запускается при добавлении новых сообщений в SQS, а затем при сбое, сообщения не сохраняются в DLQ.

Я обнаружил, что события запускаются, когда Новое сообщение, опубликованное в SQS, является синхронным по своей природе.

Лямбда опрашивает очередь и синхронно вызывает вашу функцию с событием, содержащим сообщения очереди.

Ссылка - https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html.

Итак, я хочу, чтобы либо -

  1. SQS триггер вызывал лямбду асинхронно

или

Сообщения также сохраняются в DLQ при синхронном вызове Lambda.

1 Ответ

0 голосов
/ 24 января 2020
  1. DLQ используется не для хранения сообщений об ошибках, а для хранения событий с ошибками, которые могут быть обработаны позже.
  2. CloudWatch используется для хранения и отображения журналов (включая ошибки) для Lambda и любых других AWS service.
  3. Смысл лямбда-запуска SQS заключается в том, что в случае сбоя Lambda событие будет снова обрабатываться Lambda позже.
    Это та же идея, что и DLQ, но реализованная по-другому.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...