Cron Job для запуска AWS Lambda не работает должным образом - PullRequest
0 голосов
/ 28 марта 2019

Я хочу запускать свою лямбда-функцию AWS 15-го числа каждого месяца, но моя функция срабатывает через каждые 30 минут.Моя функция в Serverless.yml

monthlyTbAlert:
    warmup: true
    handler: handlers/monthly-tbalert/index.monthlyTbAlert
    timeout: 60
    events:
      - schedule: cron(0 0 10 15 1/1 ? *)
        enabled: true

Ответы [ 2 ]

2 голосов
/ 28 марта 2019

Согласно aws docs , формат cron (Минуты Часы День месяца Месяц День недели Год)

Так что вам следует использовать это:

0 - минута 0 часов
10 - часы дня.Итак, 10: 00
15 - 15-й день месяца
* - Выполнять его каждый месяц
? - Независимо от дня недели
* - Каждыйyear

Итак, ваше выражение cron должно быть 0 10 15 * ? * Чтобы выполнять cron каждый 15-й день месяца в 10:00 AM

.
1 голос
/ 28 марта 2019

Если вы хотите отладить выражения cron перед их развертыванием, вы можете перейти к CloudWatch -> Rules и протестировать их там. Это очень полезная площадка, если вы не знаете, что происходит.

Если мы возьмем выражение, предоставленное в ответе @ Stargazer (что, кстати, очень точно), и вставим его в правила CloudWatch, мы увидим, когда произойдут следующие триггеры:

enter image description here

Используя ваше, мы можем видеть, что события не отображаются. Если вы говорите, что он запускается каждые 30 минут, то в правилах CloudWatch потенциально есть ошибка, которая вызывает неверные выражения каждые 30 минут:

enter image description here

...