使用 cron 安排金丝雀运行 - Amazon CloudWatch

使用 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 含义

0 10 * * ? *

每天上午的 10:00 (UTC) 运行

15 12 * * ? *

每天在下午 12:15 (UTC) 运行

0 18 ? * MON-FRI *

每星期一到星期五的下午 6:00 (UTC) 运行

0 8 1 * ? *

每月第 1 天上午 8:00 (UTC) 运行

0/10 * ? * MON-SAT *

每周星期一到星期六每 10 分钟运行一次

0/5 8-17 ? * MON-FRI *

星期一到星期五的上午 8:00 和下午 5:55 (UTC) 之间,每 5 分钟运行一次