在 EC2 Image Builder 中使用 cron 表达式 - EC2 Image Builder
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 EC2 Image Builder 中使用 cron 表达式

使用 EC2 Image Builder 的 cron 表达式来设置一个时间窗口,使用适用于管道基础映像和组件的更新来刷新映像。管道刷新的时间窗口从您在 cron 表达式中设置的时间开始。你可以将 cron 表达式中的时间设置为分钟。你的管道构建可以在开始时间或之后运行。

有时候,构建可能需要几秒钟,或者长达一分钟才能开始运行。

注意

Cron 表达式使用通用协调时间 (UTC)。有关 UTC 时间的更多信息以及要查找时区的偏移量,请参阅时区缩写 — 全球名单.

Image Builder 中的 Cron 表达式支持的值

EC2 Image Builder 使用由六个必填字段组成的 cron 格式。每个人都与其他人之间的空格隔开,没有前导或尾随空格:

<Minute> <Hour> <Day> <Month> <Day of the week> <Year>

下表列出了必需的 cron 条目支持的值。

Cron 表达式支持的值
字段 通配符
分钟 0-59 , - * /
小时 0-23 , - * /
1-31 , - * ? / L W
1-12 或者 jan-dec , - * /
一星期中的某天 1-7 或者 sun-sat , - * ? L #
年份 1970-2199 , - * /

Wildcards

下表描述 Image Builder 如何将通配符用于 Cron 表达式。请记住,在指定开始构建的时间后可能需要长达一分钟的时间。

Cron 表达式支持的通配符
通配符 描述
, ,(逗号)通配符包含其他值。在 “月” 字段中,jan,feb,mar包含 1 月、2 月和 3 月。
- -(破折号)通配符用于指定范围。在日期字段中,1-15包含指定月份的 1 — 15 日。
* 这些区域有:*(星号) 通配符包含字段的所有有效值。
? 这些区域有:?(问号)通配符用于指定字段值取决于另一个设置。对于 “天” 和 “星期日” 字段,如果指定了一个字段或包含所有可能的值(*),另一个必须是?. 不能同时指定两者。例如,如果您输入7在 “天” 字段中(在每月的第七天运行构建)中,周中的头寸必须包含?.
/ /(正斜杠)通配符用于指定增量。例如,如果您希望每隔一天运行一次构建,请输入*/2在日字段中。
L 这些区域有:L任何一天字段中的通配符指定最后的day:当月的第二天为 28-31,取决于月份是什么,或星期日,一周中的几天。
W “日期”字段中的 W 通配符用于指定工作日。在 “日期” 字段中,如果您在 “日期” 字段中输入W,这意味着你想定位离那天最接近的工作日。例如,如果你指定3W,则您希望在最靠近当月的第三周的日运行。
# 这些区域有:#(哈希)仅允许在星期几字段中使用,后面必须跟一个介于 1 到 5 之间的数字。该数字指定了给定月份的哪些周适用于构建运行。例如,如果您希望构建在每月的第二个星期五运行,请使用fri#2用于一星期中的某天字段。

Restrictions

  • 您无法在同一 Cron 表达式中为日期和星期几字段同时指定值。如果您指定值或*在其中一个字段中,必须使用?在另一个。

  • 不支持产生的速率快于一分钟的 Cron 表达式。

EC2 Image Builder 中的 Cron 表达式示例

在 Image Builder 控制台中输入的 Cron 表达式与 API 或 CLI 的输入方式不同。要查看示例,请选择适用于您的选项卡。

Image Builder console

以下示例显示了可以为构建计划输入控制台的 cron 表达式。UTC 时间是使用 24 小时时钟指定的。

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

0 10 * * ? *

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

15 12 * * ? *

每天午夜运行(UTC)

0 0 * * ? *

每星期一早上 10:00 (UTC) 运行

0 10 ? * 2-6 *

每星期日晚上下午 6:00 (UTC) 运行

0 18 ? * mon-fri *

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

0 8 1 * ? *

每月第二个星期二晚上 10:30(UTC)运行

30 22 ? * tue#2 *

提示

如果您不希望管道作业在运行的第二天延长到第二天,请确保在指定开始时间时考虑构建的时间。

API/CLI

以下示例显示了可以使用 CLI 命令或 API 请求为构建计划输入的 cron 表达式。只显示 cron 表达式。

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

cron(0 10 * * ? *)

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

cron(15 12 * * ? *)

每天午夜运行(UTC)

cron(0 0 * * ? *)

每星期一早上 10:00 (UTC) 运行

cron(0 10 ? * 2-6 *)

每星期日晚上 6:00 (UTC) 运行

cron(0 18 ? * mon-fri *)

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

cron(0 8 1 * ? *)

每月第二个星期二晚上 10:30(UTC)运行

cron(30 22 ? * tue#2 *)

提示

如果您不希望管道作业在运行的第二天延长到第二天,请确保在指定开始时间时考虑构建的时间。

EC2 Image Builder 中的费率表达式

Rate 表达式在创建计划事件规则时启动,然后按照其定义的计划运行。

Rate 表达式有两个必需字段。这些字段用空格分隔。

语法

rate(value unit)

正数。

单位

时间单位。需要不同的单位,例如,对于值 1 为 minute;对于大于 1 的值 1 为 minutes

有效值:minute | minutes | hour | hours | day | days

Restrictions

如果值等于 1,则单位必须为单数。同样,对于大于 1 的值,单位必须为复数。例如,rate(1 hours)rate(5 hour) 无效,但 rate(1 hour)rate(5 hours) 有效。