Динамо не предлагает хороший способ запуска лямбды для элементов, которые уже существуют, однако есть несколько способов решить эту проблему:
Вариант 1 (Сканирование в лямбду небольшими партиями):
Вы упомянули, что если у вас есть проблемы с лямбдой, когда у вас недостаточно ресурсов для сканирования всех элементов в таблице, вы можете попробовать обработать данные небольшими порциями, чтобы избежать ограничения ресурсов. Максимальное время выполнения лямбды - 15 минут, которого должно хватить для большинства работ. (Обратите внимание, что в Lambda ЦП масштабируется с использованием памяти, поэтому в зависимости от задания на выделение памяти можно реально сэкономить деньги, сократив время, необходимое для выполнения функции.)
Вариант 2 (Запланированная задача ECS Fargate):
В ECS с помощью Fargate вы можете без сервера создавать задачи по расписанию cron. Если вас беспокоит ограничение ресурсов, вы можете выделить до 4 виртуальных ЦП и 32 ГБ памяти на задачу, что значительно снизит вероятность того, что вы достигнете ограничения ресурсов. Здесь - некоторая документация о том, как это настроить.
Вариант 3 (Обрабатывать элементы с использованием триггеров динамо):
Вы можете настроить свою таблицу динамо для запуска лямбда если данные в таблице вставлены , изменены или удалены , вы можете обрабатывать элементы по мере их поступления или изменения. Вы даже можете настроить их Пакетные изменения до 10 пунктов, чтобы уменьшить лямбда-вызовов. Здесь - ссылка на документацию.
Примечание. Этот метод не срабатывает для элементов, уже находящихся в таблице. Однако вы можете обойти это, написав скрипт для обновления произвольного поля этих элементов.