Расписание AWS Lambda на многократной, но временной основе - PullRequest
0 голосов
/ 11 октября 2019

Я знаю, что можно заставить лямбда-функцию запускаться по расписанию, используя CloudWatch (который в основном имитирует CRON).

Однако, возможно ли это сделать на временной основена основе ручного триггера? Например, «нажмите кнопку», чтобы запускать лямбда-функцию каждый час, но только в течение следующих 48 часов - и затем останавливаться и не запускаться снова, пока человек не «нажмет кнопку».

Кнопка «Кнопка»"может создать правило CloudWatch с помощью API, но как я могу сделать так, чтобы правило автоматически останавливалось / само по себе через 48 часов?

Пример создания правила CloudWatch:

aws events put-rule \
--name my-scheduled-rule \
--schedule-expression 'rate(1 hour)'

Ответы [ 4 ]

2 голосов
/ 11 октября 2019

Другим вариантом может быть использование функции шага AWS для запуска отключения / удаления начального / повторяющегося события CloudWatch, , как описано в этом посте .

2 голосов
/ 11 октября 2019

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

1 голос
/ 11 октября 2019

Использование пошаговых функций - это чистая работа, но есть также умный способ, которым я недавно видел несколько статей о том, как использовать функцию в DynamoDB, как описано здесь для специальных запланированных задач, которые также могут работать в вашем случае: https://theburningmonk.com/2019/03/dynamodb-ttl-as-an-ad-hoc-scheduling-mechanism/

1 голос
/ 11 октября 2019

Один из вариантов - использовать создание второго события CloudWatch, запускаемого через CRON и запланированного на один раз в будущем (т. Е. Через 48 часов), , как описано в этом посте .

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...