0

Моя функция лямбда содержит код, который включает запросы к dynamodb. Когда запрос выполняется, лямбда продолжается с остальной частью кода, которая основана на результате этого запроса. Что произойдет, если я превышу пределы емкости dynamodb? Я могу отправить запрос в SQS и обработать его позже, но тогда я не смогу продолжить выполнение лямбда. Другим решением было бы повторить каждый запрос, который терпит неудачу, но если dynamodb чрезвычайно занят, моя лямбда может превысить 5-минутный предел. Похоже на потерю ситуации. Что бы вы сделали?aws lambda - код обработки при превышении емкости dynamodb

ответ

0

Наиболее отказоустойчивым решением было бы отделить запрос и обработку результатов.

  1. Вместо того, чтобы немедленно обрабатывать результаты, запишите результаты в другую очередь SQS и отправьте уведомление SNS.

  2. Переместить обработку на вторую функцию лямбда. Эта новая функция может быть вызвана уведомлением SNS. Он может читать очередь результатов и обрабатывать любые ожидающие сообщения.

  3. Измените исходную функцию для очередности запросов на отказ.

Смежные вопросы