Пакетный триггер Lambda на DynamoDB - PullRequest
0 голосов
/ 02 марта 2019

У меня есть таблица, как показано ниже

Key                                 | Value
---------------------------------------------------
Client_123_UNIQUE_ID                | s3://abc.txt
Client_123_UNIQUE_ID                | s3://xyz.txt
Client_456_UNIQUE_ID                | s3://qaz.txt              
Client_456_UNIQUE_ID                | s3://qwe.txt
Client_789_UNIQUE_ID                | s3://asd.txt
Client_789_UNIQUE_ID                | s3://zxc.txt

Данные будут последовательно добавляться в эту таблицу из функции AWS Lambda.(возможно, миллионы элементов)

У меня есть сценарий использования, который мне нужен для запуска, когда в таблице доступно 100 элементов для выполнения некоторой пакетной обработки.Другими словами, как только у нас будет 100 новых элементов, созданных в этой таблице, я хотел бы иметь триггер для лямбда-функции для выполнения пакетной обработки 100 элементов.

Когда я исследую, кажется, DynamoDB Streamможет поддерживать Batch, но я не совсем ясно, основываясь на документации.

Lambda считывает записи в пакетном режиме и вызывает вашу функцию для обработки записей из пакета.

Lambda опрашивает фрагменты в потоке DynamoDB Streams для записей с базовой скоростью 4 раза в секунду,Когда записи доступны, Lambda вызывает вашу функцию и ждет результата.Если обработка завершается успешно, Lambda возобновляет опрос, пока не получит больше записей.

Если ваша функция возвращает ошибку, Lambda повторяет пакет до тех пор, пока обработка не завершится успешно или не истечет срок действия данных.Пока проблема не будет решена, никакие данные в шарде не обрабатываются.Обрабатывайте любые ошибки обработки записей в своем коде, чтобы избежать тупиковых осколков и потенциальной потери данных.

Не могли бы вы помочь мне уточнить документацию или посоветовать мне подход, который мы используем DynamoDB Stream, правильный для этого использованияcase?

Если я объясняю, что мой вопрос недостаточно хорош, пожалуйста, оставьте комментарии, чтобы я мог уточнить больше.

1 Ответ

0 голосов
/ 02 марта 2019

Вы можете установить BatchSize при объявлении отображения между потоком и лямбда-выражением.Максимальный размер 1000 предметов.

...