能否在AWS CloudWatch创建周一至周五9:30-16:30每小时运行的Cron表达式?
AWS CloudWatch Cron 表达式问题解答
1. 示例表达式结束时间的逻辑
AWS EventBridge 使用6字段 Cron 格式:秒 分 时 日 月 星期。对于示例表达式 0/5,8-17,?,*,MON-FRI,*:
0/5表示从秒0开始,每5分钟触发一次8-17限定触发小时为8点到17点
在17点这个小时内,符合0/5规则的最后一个分钟值是55(下一个是60,即18:00,超出了8-17的小时范围),所以最后一次触发是17:55,这就是示例中结束时间的由来。
2. 你写的表达式的问题
你尝试的 0/60,9-16,?,*,MON-FRI,* 确实会在周一至周五的9:00、10:00…16:00触发,但存在两个问题:
- 起始时间是9:00而非需求的9:30
- 最后一次触发是16:00,不是16:30
3. 满足需求的正确表达式
要实现周一至周五9:30到16:30每小时运行一次,直接固定分钟为30即可,表达式如下:
0 30 9-16 ? * MON-FRI *
各字段说明:
0:秒固定为0,确保整分触发30:分钟固定为30,每小时的30分执行9-16:小时范围9到16点,对应9:30、10:30…16:30?:日字段用?,因为已经指定了星期,避免日和星期字段冲突*:月字段任意MON-FRI:仅周一到周五触发*:年字段(AWS允许省略,默认即为*)
注意:配置时要确认规则的时区设置,如果使用UTC时区,需将你的本地时间转换为UTC后调整表达式;如果直接使用本地时区,上述表达式即可直接生效。
内容的提问来源于stack exchange,提问作者ragnamex
相关产品推荐
相关产品推荐

