Мы пытаемся установить лямбду на 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 *)
, которая выглядит точно так же, как мы пытались использовать изначально, за вычетом диапазона дней недели (поскольку нам нужен один конкретный день недели).
Любые подсказки?