Я создаю ресурсы на AWS с помощью TF и сталкиваюсь с ошибкой при попытке создать планировщик моста событий.
Судя по самой документации TF,
schedule_expression = "rate(1 hours)"
Поскольку я хочу, чтобы мост событий срабатывал каждое утро в 8:30 в будние дни, а также в 17:30 в будние дни, я использовал выражение ниже
schedule_expression = "rate(30 8,17 ? * 2-6 *)"
Мой конвейер постоянно возвращает эту ошибку, говоря, что выражение недействительно.
creating AWS EventBridge Scheduler Schedule (auto-stop-ec2): operation error Scheduler: CreateSchedule, https response error StatusCode: 400, RequestID: baea3d64-f093-4394-a598-509f959c7010, ValidationException: Invalid Schedule Expression rate(30 8,17 ? * 2-6 *).
Может ли кто-нибудь дать совет о том, что я делаю неправильно?
В соответствии с типами расписаний в планировщике EventBridge синтаксис использования расписания на основе Cron следующий:
cron(minutes hours day-of-month month day-of-week year)
Я хочу, чтобы мост событий запускался каждое утро в 8:30 в будние дни, а также в 17:30 в будние дни.
Попробуйте следующее:
schedule_expression = "cron(30 8,17 ? * MON-FRI *)"
Вы можете проверить приведенное выше выражение с помощью CronHub.
MON-FRI and 2-6 are synonymous in EventBridge scheduler, so this replacement wasn't necessary
- Я заменил по 2 причинам: 1) удобнее использовать MON-FRI
и 2) при тестировании выражения 2-6
в CronHub оно показывает мне Tuesday through Saturday
.
@RuiJarimba Вышеприведенное выражение действительно сработало. Мне это кажется интересным, потому что в документации TF сказано, что нужно использовать rate
. Был удивлен cron
действительно здесь работал. Большое спасибо.
MON-FRI
и2-6
в планировщике EventBridge являются синонимами, поэтому в этой замене не было необходимости. Проблема только вcron
противrate
:cron
, как ни странно, предназначено для определения, подобного cron, тогда какrate
является менее мощным решением на основе интервалов (например,rate(5 minutes)
)