Прежде всего, мне нравится ваш подход к созданию разных лямбд Master / Slave: распространенная ошибка - попытаться создать уникальную «рекурсивную» функцию, которая выполняет как разбиение на фрагменты, так и загрузку на основе события ввода. Поначалу кажется, что это нормально, но может привести к бесконечным петлям и дорогостоящим счетам.
TL; DR Я думаю, что в вашем подходе нет ничего плохого, и я бы придерживайтесь его.
Я добавляю две несвязанные мысли по этому вопросу:
SF получают больше значений , когда вам нужно что-то делать после загрузки в DynamoDB (например, если вы хотите удалить все загруженные элементы, если лямбда-код не работает, или вы хотите записать общее количество добавленных элементов), или в случае, если вы хотите переключиться на последовательный подход (например, чтобы сэкономить некоторый WCU) в таблице Dynamo).
AWS Data Pipeline - это инструмент, предназначенный для выполнения ETL и поддерживающий рабочий процесс от S3 до DynamoDB. Стоит взглянуть на это (в официальной документации вы можете найти учебник для приема из S3 в DynamoDB ).
То, как вы создали сервис Это хорошо для меня, и я бы не стал тратить время на его изменение, если вы довольны им: имейте в виду преимущества различных конструкций, но избегайте чрезмерной оптимизации на ранних стадиях.