Как запускать AWS лямбда каждые 6 часов? - PullRequest
0 голосов
/ 11 июля 2019

У меня есть лямбда, которая, как я знаю, работает.

Я бы хотел запускать его каждые шесть часов.

Какой самый простой способ сделать это

Примечание

Это не то, что мне нужно будет делать регулярно, поэтому я рад сделать это через браузер (хотя кли тоже хорошо)

1 Ответ

3 голосов
/ 11 июля 2019

Это будет запускать вашу лямбда-функцию (с этим входом JSON, если он применяется) каждые 6 часов от запланированного времени.

enter image description here

Шаг 1: Перейти к CloudWatch Сервис

Шаг 2: Нажмите Rules на левой панели и нажмите кнопку Create Rule

Шаг 3: Выберите вариант Schedule и Fixed rate of, введите 6 и выберите Hours

Шаг 4: Нажмите Add Target и выберите функцию Lambda. При желании вы можете отправить определенное значение JSON, когда эта лямбда-функция активирована. Вы можете сделать это, вставив JSON в поле Constant (JSON text).

Шаг 5: Нажмите Configure details и сохраните это правило


Примечание. Если вы хотите запускать в определенное время каждые 6 часов (например, 12:00, 6:00, 12:00 и т. Д.), Вам нужно выбрать Cron Expression в Шаг 3 .

Это выражение, которое вам нужно использовать: 0 0/6 * * ? *


РЕДАКТИРОВАТЬ (на основе комментариев ниже):
Да, это так, но этот процесс может сделать гораздо больше. Если вы посмотрите на список Targets справа (Шаг 4), вы увидите такие сервисы, как SNS, SQS и т. Д. Вы можете использовать этот процесс для выполнения любой задачи cron / recurring.

Вот для чего я его использую в одном из моих приложений - У меня есть приложение, которое отправляет текстовые сообщения и электронные письма (используя сервис Pinpoint). Эти сообщения и электронные письма предварительно запланированы (иногда недели заранее). Поэтому я создаю сообщение и сохраняю его в своей базе данных (DynamoDb).

Тогда у меня есть лямбда-функция, которая срабатывает каждые 3 минуты. Лямбда-функция переходит к DynamoDb и получает все запланированные сообщения / электронные письма, которые необходимо отправить, отправляет электронную почту / SMS и помечает их как «отправленные» в DynamoDb. Через 3 минуты произойдет еще один триггер, и он будет продолжаться вечно.

Это также позволяет мне обрабатывать сбои - если отправка SMS или электронной почты не удалась, через 3 минуты она попытается снова, поскольку она еще не помечена как «Отправлено».

Надеюсь, это поможет.

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