Lambda: доступен ли какой-либо планировщик пакетной обработки?

Проблема: получить 2000 элементов из базы данных Dynamo и обработать (создать запрос POST из 100 элементов) по партиям (размер пакета = 100).

Вопрос: можно ли как-то добиться этого из любой конфигурации в AWS.

PS: я настроил расписание cron для запуска моей функции Lambda. Я использую Java. Я сделал многопоточное приложение, которое делает это синхронно, но в конечном итоге это резко увеличивает время вычислений.


person AMS    schedule 29.01.2017    source источник
comment
aws.amazon.com/batch как насчет просмотра пакетов AWS? Я не знаю после обработки, что происходит с вашими данными (я имею в виду, куда они попадают - обратно в dynamodb или в какую-то внешнюю систему), но все же могу посмотреть на это   -  person    schedule 29.01.2017
comment
пакетная служба недоступна на Западе США. Кроме того, я прошел через это.. Это не кажется правильным для этого.. PS: результат запроса POST должен быть сохранен в другой DynamoDB..   -  person AMS    schedule 30.01.2017


Ответы (1)


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

  1. Расписание задания для получения N элементов из DynamoDB с использованием функции Lambda

  2. Лямбда-функция в # 1 отправит M сообщений в SQS для обработки каждого элемента и запуска лямбда-функций, в этом случае она должна вызывать лямбда-функции M раз. Каждая лямбда-функция будет обрабатывать запрос, указанный в сообщении.

Для этого вам необходимо запланировать событие через CloudWatch, настроить SQS и создать лямбда-функцию, запускаемую событиями SQS.

Честно говоря, я не уверен, что это эффективно с точки зрения цены, но оно должно работать. Предполагая, что ваш размер выборки настолько мал, это должно быть разумно.

Также вы можете попробовать использовать SNS, в этом случае вам не нужно беспокоиться об опросе сообщений SQS.

person programmersmurf    schedule 28.05.2017