Самый простой способ - отправлять задания DyanmoDB в очередь SQS, и рабочие / лямбды опрашивают эту очередь с заданной вами скоростью.Это классический подход к ограничению скорости в мире AWS.Я хотел бы сделать некоторые расчеты относительно того, как это должно быть в единицах емкости, и настроить емкость ваших таблиц соответственно с частотой опроса очереди.
Имейте в виду, что у вас могут быть другие процессы, обращающиеся к вашей DynamoDB с использованием ваших таблицемкости, а также отмечая время хранения выбранной вами очереди.Вы можете выиграть с огромной скоростью и затратами с некоторым кэшированием, реализованным для заданий на чтение, посмотрите на это в DAX.
Редактировать Просто чтобы ответить на ваши комментарии.Таким образом, как вы говорите, если у вас есть 20 единиц для вашей таблицы, вы можете выполнять только 10 заданий в секунду, если каждое задание использует 2 единицы в 1 секунду.Допустим, вы отправляете 10000 заданий, при 10 заданиях в секунду, которые будут обрабатывать все эти задания за 1000 секунд.Однако, если вы отправите более 3 456 000 заданий, это займет более 4 дней для обработки со скоростью 10 заданий в секунду.Время хранения по умолчанию для SQS составляет 4 дня, поэтому вы начнете терять сообщения / задания с такой скоростью.
И, как я уже говорил, у вас могут быть другие процессы, обращающиеся к вашей таблице, которые могут перевалить за ее использование за 20 единиц, поэтомувам нужно быть очень осторожным при приближении к пределу вашего стола.