Почему это выражение cron неверно в AWS? - PullRequest
0 голосов
/ 01 марта 2019

Мы пытаемся установить лямбду на AWS, запуск которой запланирован на каждый понедельник в 9:45.

Наше выражение cron имеет вид:

cron(45 9 ? * MON *)

В документах AWS прямо указано, что для крон существует шесть обязательных полей (вы можете игнорировать секунды) - см. документацию здесь: https://docs.aws.amazon.com/lambda/latest/dg/tutorial-scheduled-events-schedule-expressions.html

Однако развертывание лямбды приводит к ошибке:

An error occurred: ConsumerEventsRuleSchedule13 - Parameter ScheduleExpression is not valid. 
(Service: AmazonCloudWatchEvents; Status Code: 400; Error Code: ValidationException)

Мне удалось исправить это, добавив секунды к выражению:

cron(0 45 9 ? * MON *)

Однако я все еще не понимаю, почему исходное выражение было недействительным?Документация AWS (ссылка выше) даже предоставляет рабочее выражение для задачи, выполняемой каждый рабочий день (понедельник - пятница): cron(0 18 ? * MON-FRI *), которая выглядит точно так же, как мы пытались использовать изначально, за вычетом диапазона дней недели (поскольку нам нужен один конкретный день недели).

Любые подсказки?

1 Ответ

0 голосов
/ 03 мая 2019

Вы пробовали sam package перед развертыванием?вы можете использовать старый код, который cron не так ... попробуйте sam package --s3-bucket your-bucket-name --output-template-file packaged.yaml

...