Функция Lambda запускается очередью SQS и вызывает сторонний ML API, ответ от которого может занимать до 60 секунд. Таймаут Lambda установлен на 65 секунд. Разработчик замечает, что функция иногда обрабатывает дублирующиеся сообщения SQS. Что должен изменить разработчик, чтобы функция не обрабатывала дубликаты?
Выберите ответ
Нажмите на вариант, чтобы проверить свой ответ.
Правильный ответ: Установить таймаут видимости (visibility timeout) очереди SQS больше максимального времени ответа стороннего API..
Почему это правильный ответ
Функция Lambda обрабатывает дубликаты, потому что SQS возвращает сообщение в очередь, если оно не было удалено до истечения таймаута видимости. Если обработка стороннего API занимает до 60 секунд, а таймаут видимости SQS меньше этого времени, SQS сделает сообщение снова видимым для других потребителей (или той же функции Lambda), что приведет к повторной обработке. Установка таймаута видимости SQS (visibility timeout) больше максимального времени ответа стороннего API (например, 70 секунд) гарантирует, что сообщение останется невидимым до завершения обработки функцией Lambda, предотвращая дубликаты. Увеличение памяти Lambda не повлияет на логику обработки дубликатов. Увеличение таймаута Lambda до 65 секунд уже учтено, но это не решает проблему повторной видимости сообщения в SQS. Задержка доставки (delivery delay) относится к тому, как долго сообщение будет невидимым после его отправки в очередь, а не после его получения потребителем.
Сдайте экзамен — без бесконечного поиска ответов
Получите все проверенные вопросы и объяснения для этого экзамена в одном месте и сэкономьте часы подготовки. 1000+ сертификаций · 20+ языков · начните бесплатно.
Сдайте экзамен быстрее → Карта не требуется