使用 cron 安排金丝雀运行
当您安排金丝雀时,使用 cron 表达式可以让您灵活地安排计划。Cron 表达式包含五或六个按下表所列顺序排列的字段。这些字段采用空格分隔。语法根据您创建金丝雀使用的是 CloudWatch 控制台还是 AWS CLI 或 AWS SDK 而有所不同。若您使用控制台,则只能指定前五个字段。若使用 AWS CLI 或 AWS SDK,则可以指定所有六个字段,而且必须为 Year
字段指定 *
。
字段 | 允许的值 | 允许的特殊字符 |
---|---|---|
分钟 |
0-59 |
, - * / |
小时 |
0-23 |
, - * / |
日期 |
1-31 |
, - * ? / L W |
月 |
1-12 或 JAN-DEC |
, - * / |
星期几 |
1-7 或 SUN-SAT |
, - * ? L # |
年 |
* |
特殊字符
-
,(逗号)在字段的表达式中包含多个值。例如,在“Month(月份)”字段中,JAN、FEB 和 MAR 将包含 January、February 和 March。
-
-(破折号)特殊字符用于指定范围。在“日”字段中,1-15 将包含指定月份的 1 - 15 日。
-
*(星号)特殊字符包含该字段中的所有值。在“Hours(小时)”字段中,* 包括每个小时。您不能在同一个表达式的“Day-of-month(日期)”和“Day-of-week(星期几)”字段中同时使用 *。如果您在一个中使用它,则必须在另一个中使用 ? 。
-
/(正斜杠)用于指定增量。在“Minutes(分钟)”字段中,您可以输入 1/10 以指定从一个小时的第一分钟开始的每个第十分钟(例如,第 11 分钟、第 21 分钟和第 31 分钟,依此类推)。
-
?(问号)用于指定一个或另一个。在“日期”字段中,您可以输入 7,如果您不介意第 7 日是星期几,则可以在“星期几”字段中输入 ?。
-
“日期”或“星期几”字段中的 L 通配符用于指定月或周的最后一天。
-
“日期”字段中的
W
通配符用于指定工作日。在“日期”字段中,3W
用于指定最靠近当月的第三周的日。 -
“星期几”字段中的 # 通配符用于指定一个月内所指定星期几的特定实例。例如,3#2 指该月的第二个星期二。3 指的是星期二,因为它是每周的第三天,2 是指该月内该类型的第二天。
限制
-
您无法在同一 Cron 表达式中为日期和星期几字段同时指定值。如果您在其中一个字段中指定值或
*
(星号),则必须在另一个字段中使用 ?(问号)。 -
不支持产生的速率快于一分钟的 Cron 表达式。
-
您不能将金丝雀设置为等待一年以上才能运行,因此
Year
字段中只能指定为*
。
示例
创建金丝雀时,您可以参考以下示例 cron 字符串。以下示例展示了使用 AWS CLI 或 AWS SDK 创建或更新金丝雀的正确语法。如果您使用的是 CloudWatch 控制台,请省略每个示例末尾的 *
。
Expression | 含义 |
---|---|
|
每天上午的 10:00 (UTC) 运行 |
|
每天在下午 12:15 (UTC) 运行 |
|
每星期一到星期五的下午 6:00 (UTC) 运行 |
|
每月第 1 天上午 8:00 (UTC) 运行 |
|
每周星期一到星期六每 10 分钟运行一次 |
|
星期一到星期五的上午 8:00 和下午 5:55 (UTC) 之间,每 5 分钟运行一次 |