如何编写每季度首周一EST11点运行的有效AWS Glue Job Cron表达式?
正确的AWS Cron表达式配置
问题分析
你之前的Cron表达式无效,核心原因有两个:
- 字段数量错误:AWS CloudWatch Events的Cron表达式仅支持6个字段(
分钟 小时 日期 月份 星期 年份,年份可选),你提供的表达式多了一个多余的*字段。 - 时间字段顺序错误:你把小时写在了第三个位置,正确的顺序是分钟在前,小时在第二个位置。
正确表达式(分两种场景)
AWS Cron基于UTC时区运行,需要将美国东部时间(EST/EDT)转换为UTC时间:
- 场景1:严格遵循EST(仅1月适用,非夏令时)
11:00 EST = 16:00 UTC,表达式为:
0 16 ? 1 2#1 *
- 场景2:覆盖所有季度月份(含EDT夏令时,4/7/10月适用)
11:00 EDT = 15:00 UTC,结合1月的EST时间,需要两个表达式分别配置:
1月:
0 16 ? 1 2#1 *
4/7/10月:
0 15 ? 4,7,10 2#1 *
表达式字段解释
0:分钟,即整点运行15/16:UTC小时,对应东部时间11点?:日期字段留空,因为已指定星期字段(AWS不允许同时指定日期和星期)1/4,7,10:目标季度月份2#1:每月第一个周一(AWS中2代表周一,#1表示第一个)*:年份,代表所有年份
内容的提问来源于stack exchange,提问作者47sahilone
相关产品推荐
相关产品推荐

