Как создать очередь заданий с помощью AWS DynamoDB и AWS SQS? - PullRequest
0 голосов
/ 07 июня 2018

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

{"run_at": "2018-06-08-10-10-30", "params": {"metadata":"xyz"}}

Поэтому я хочу, чтобы моя лямбда-функция запускалась в run_at время, в эту точную минуту, а params передавалось каксобытие для моей лямбда-функции.

Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Да, это возможно.Вы можете использовать DynamoDB Time-To-Live (столбец отметки времени установлен как TTL), в котором запись в таблице будет удалена, когда истечет срок ее действия, а удаленная запись появится в DynamoDBпоток .Как только он появится в потоке, вы можете настроить лямбду, которая будет запускаться для дальнейшей обработки (для постановки в очередь в SQS, публикации в SNS и т. Д.).Документы для Stream и TTL .

Вкратце, вы можете зарегистрировать задание, добавив запись в DynamoDB с отметкой времени, когда должно произойти событие (отметка времениэто TTL).Затем, как только будет достигнута временная метка, DynamoDB автоматически удалит запись и поместит ее в поток, который будет запускать лямбду для запуска события.

Обратите внимание, что все действия (вставка / обновление / удаление) в записибудет доступен в потоке.Поэтому, возможно, вы захотите сделать некоторую логику согласования в Lambda, чтобы обрабатывать только DELETE-запись.

0 голосов
/ 07 июня 2018

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

...