AWS безсерверная настройка для повторяющихся задач?

У меня есть база данных, состоящая из множества предметов. По крайней мере, один раз в день я хочу перебрать все элементы в этой базе данных и для каждого элемента вызывать внешний API для извлечения текущих данных об этом элементе и сохранения их в моей базе данных.

Имея в виду этот сценарий, я думал об использовании Lambda, DynamoDB и SNS следующим образом:

  • Запланированная лямбда (рабочая), которая перебирает все элементы в DynamoDB
  • Для каждого элемента опубликуйте тему SNS с подробной информацией об этом конкретном элементе.
  • Другой Lambda (потребитель / обработчик) слушает эту тему SNS, чтобы получить каждый элемент
  • Для каждого полученного элемента выполните запрос к внешнему API и обновите элемент в DynamoDB

Эта настройка должна быть масштабируемой, простой в использовании / настройке / обслуживании и, надеюсь, также экономически эффективной. Но справится ли он, если в DynamoDB будет более 1000 элементов для циклического прохождения хотя бы раз в день? Есть ли отказоустойчивость при такой настройке? Сработает ли это, если я захочу вызвать это чаще, чем один раз в день, и, что более важно; будет ли он по-прежнему экономически эффективным, если срабатывать, скажем, раз в час? Есть ли лучший способ сделать это?

Почему-то я чувствую, что должен использовать SQS, но, может быть, он бесполезен при работе без сервера, поскольку вы не можете опрашивать очередь для получения новых элементов для обработки?

0 ответов

Другие вопросы по тегам