Неудачные события не отправлены в очередь мертвых писем? - PullRequest
1 голос
/ 27 января 2020

Я настроил очередь недоставленных сообщений в AWS лямбда-конфигурации для обработки неудачных событий. Но когда я попытался отправить ошибочную запись (размером ~ 1 КБ), она не отправляется в DLQ.

Ниже приведены шаги, которым я следовал: -

  1. Отправлено неверная запись из aws cli в поток kinesis.

  2. Лямбда-функция опрашивала запись из потока и пыталась ее обработать. И это привело к сбою из-за некорректного ввода.

  3. Проверенные журналы наблюдения за облачной функцией Lambda для подтверждения того, что обработка привела к ошибке.
  4. Проверка числа ошибок недоставленных букв в журнале наблюдения за облачной Lambda но оно все равно 0. Также проверено DLQ через AWS Консоль, где доступные сообщения по-прежнему 0.

Конфигурации в AWS Лямбда для асинхронного вызова:

  • Максимальный возраст события = 1 мин,
  • Попытки повторения = 1

Конфигурация DLQ:

  • Задержка доставки: 0 секунд
  • Время ожидания видимости по умолчанию: 30 секунд,
  • Максимальный размер сообщения: 256 КБ

Может кто-нибудь объяснить, что может быть причиной появления сообщений об ошибках, недоступных в SQS?

Примечание: Lambda имеет необходимые разрешения для выполнения всех операций в SQS. И нет другого потребителя SQS.

Ответы [ 2 ]

3 голосов
/ 28 января 2020

Lambda читает данные из Kinesis синхронно .
DLQ используется только для асинхронных вызовов Lambda.

0 голосов
/ 27 января 2020

Все зависит от ответа, который вы возвращаете из функции. Если ответ является ошибкой с правильным кодом ошибки, он обязательно будет отправлен в DLQ. Можно ли удалить конфигурацию DLQ, а затем проверить, появляется ли сообщение в SQS после времени видимости.

...