Блокировка блока AWS SQS в случае противодавления - PullRequest
0 голосов
/ 05 марта 2019

Если лямбда-работники обрабатывают партии из очереди SQS, есть ли возможность отслеживать частоту отказов работника (по заданию обработки) и блокировать дальнейшее снятие очереди (и, как следствие, лямбда-вызовы), если частота отказов пересекает порог?Я могу следить за частотой ошибок / вызовов лямбды, но как реализовать остановку очереди?Я не хочу очищать очередь и терять данные.

1 Ответ

0 голосов
/ 05 марта 2019

Прежде всего необходимо понять, почему ваша лямбда могла (возможно) не работать:

1) Если они терпят неудачу из-за дросселирования (должно обрабатываться больше сообщений, чем доступных функций лямбды), сообщение (илився партия) будет отправлена ​​обратно в очередь и будет повторена после истечения времени ожидания видимости, поэтому логика повторения уже встроена для вас и хорошо масштабируется.

2) Если они не работают из-заплохие сообщения или некоторые ошибки в коде, вы можете настроить DLQ для отправки неудачных сообщений.Это легко настроить, поскольку вам нужно только сообщить вашей лямбда-функции, к какому DLQ подключаться в случае сбоя.

Если ваш сценарий равен 1), будьте уверены, ваши сообщения не будут потеряны.Если ваш сценарий 2), просто сконфигурируйте DLQ для дальнейшего анализа неудачных сообщений.

Вы также можете проверить официальные документы , чтобы понять поведение Lambda Retry Behavior

...