跳到正文
CronExplain

AWS Cron 表达式解析器(EventBridge)

Amazon EventBridge(前身为 CloudWatch Events)的定时规则使用包裹在 cron(...) 中的六字段 Cron 语法。粘贴规则表达式即可校验、阅读中文解释,并准确看到它何时运行。

含义

EventBridge:六个字段,没有秒,年在最后,1 = 星期日,“日”和“星期”之一必须为“?”。规则按 UTC 运行。

✓ 有效 · 含义

在12:00

预设

接下来 10 次运行

#UTC 时间你的本地时间
1——
2——
3——
4——
5——
6——
7——
8——
9——
10——

其他方言中的同一调度

  • 标准 crontab0 12 * * *
  • Quartz0 0 12 * * ?
  • Spring0 0 12 * * *

可视化生成器

为每个字段选择取值。生成器输出标准的五字段表达式,使用时会自动转换为当前选择的方言。

分钟
小时
日
月
星期
0 9 * * 1-5

AWS Cron 语法

EventBridge 表达式形如 cron(0 12 * * ? *),包含六个字段:分钟、小时、日、月、星期和年。它没有秒字段,所以最小精度是 1 分钟。星期编号为 1(星期日)到 7(星期六),也可以写成 MON-FRI 这样的英文缩写。

必须遵守的规则

两个日期字段之一必须为“?”:工作日早上可写 cron(0 8 ? * MON-FRI *),每月 1 日可写 cron(0 8 1 * ? *)。年字段是必填的,每年都运行时写 *。日期字段支持 L、W 和 #,例如 cron(0 18 L * ? *) 表示每月最后一天。

时区

EventBridge 定时规则始终按 UTC 运行,因此工具默认按 UTC 计算 AWS 表达式,并在每次运行旁边显示你的本地时间。EventBridge Scheduler 可以为调度设置时区;这种情况下请在时区选择器中选择相同的时区,以便正确预览。

用 cron 还是 rate?

对于每 15 分钟这样的固定间隔,rate 表达式更简单:rate(15 minutes) 从规则创建时开始计时。如果任务必须在日历时间运行——工作日 08:00、每月最后一天或仅限某一年——就用 cron。EventBridge Scheduler 还支持一次性的 at(...) 调度,以及可以分散调用的弹性时间窗口。

常见问题

为什么 AWS 拒绝了我的 Cron 表达式?
常见原因是写了五个字段而不是六个、缺少年字段,或者“日”和“星期”字段中都没有“?”。错误信息会指出出错的字段。
如何用 Cron 让 Lambda 每 5 分钟运行一次?
使用 cron(0/5 * * * ? *)。对于简单的间隔,EventBridge 也支持 rate(5 minutes)。
AWS Cron 使用 UTC 吗?
EventBridge 规则是的。EventBridge Scheduler 允许为每个调度单独设置时区。
最短间隔是多少?
1 分钟,因为 AWS Cron 没有秒字段。