Является ли это 100% отказоустойчивым способом обработки ошибок в лямбда-функции?
Нет.
Если нет, использование очередей является правильнымспособ?
Да, если настроен правильно.
Поведение лямбда-повтора говорит, что повторяется еще два раза, если вызов асинхронный.SQS - это система, основанная на опросах.Lambda опрашивает очередь, и все ее вызовы будут синхронными .
Для сервисов AWS на основе опроса (Amazon Kinesis, Amazon DynamoDB, Amazon SimpleСлужба очереди), AWS Lambda опрашивает поток или очередь сообщений и синхронно вызывает вашу функцию Lambda.
Если вы хотите подождать, пока ваши сообщения не пройдут три раза, установите для атрибута maxReceiveCount
значение 3 на вашемисходная очередь SQS.Хотя в документации явно не упоминается maxReceiveCount
для очередей SQS, настроенных в качестве источника событий, это также применимо.Как только пороговое значение будет достигать maxReceiveCount
, сообщение будет перенаправлено на настроенный DLQ.Помните, что вам нужно настроить DLQ в вашей очереди Source SQS, а не в самой функции Lambda.