在 Image Builder 中使用 cron 表達式 - 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-12jan-dec , - * /
星期幾 1-7sun-sat , - * ? L #
1970-2199 , - * /
萬用字元

下表說明 Image Builder 如何使用萬用字元進行 Cron 表達式。請記住,在您為組建指定的開始時間之後,最多可能需要一分鐘的時間。

Cron 運算式支援的萬用字元
萬用字元 描述
, , (逗號) 萬用字元包含額外的值。在月份欄位中, jan,feb,mar 包含 1 月、2 月和 3 月。
- - (破折號) 萬用字元用於指定範圍。在月份欄位中, 1-15包含指定月份的第 1 天至第 15 天。
* * (星號) 萬用字元包含 欄位的所有有效值。
? ? (問號) 萬用字元指定欄位值取決於其他設定。對於日期和 Day-of-week欄位,當指定一個或包含所有可能的值 (*) 時,另一個必須是 ?。您不能同時指定兩者。例如,如果您7在日期欄位中輸入 (在當月的第七天執行建置),該 Day-of-week位置必須包含 ?
/ / (斜線) 萬用字元用於指定增量。例如,如果您希望建置每隔一天執行一次,*/2請在日期欄位中輸入 。
L 任一天欄位中的 L 萬用字元,指定最後一天:28-31 代表當月的日期,取決於當週的月份或星期日。
W 欄位中的 Day-of-month W 萬用字元指定工作日。在 Day-of-month欄位中,如果您在 之前輸入數字W,這表示您想要將最接近當天的工作日設定為目標。例如,如果您指定 3W,您希望建置在最接近當月第三天的工作日執行。
# # (hash) 只允許用於一週欄位的日期,且後面必須加上 1 到 5 之間的數字。數字指定指定指定月份中哪些週數會套用來執行建置。例如,如果您希望建置在每月的第二個星期五執行,請在星期欄位fri#2使用 。
限制
  • 您無法在相同的 cron 表達式中指定 Day-of-month 和 Day-of-week 欄位。如果您在其中一個欄位中指定值或 ,則必須?在另一個*欄位中使用 。

  • 不支援頻率多於一分鐘的 Cron 表達式。

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 AM (UTC) 執行

0 10 ? * 2-6 *

於平日晚上 6 點 (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 AM (UTC) 執行

cron(0 10 ? * 2-6 *)

於平日晚上 6:00 PM (UTC) 執行

cron(0 18 ? * mon-fri *)

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

cron(0 8 1 * ? *)

每月第二個星期二晚上 10:30 執行 (UTC)

cron(30 22 ? * tue#2 *)

提示

如果您不希望管道任務在執行時延長至隔天,請務必在指定開始時間時,將建置的時間納入考量。

Image Builder 中的速率表達式

Rate 表達式在您建立排程事件規則時開始,然後在其定義的排程上執行。

Rate 表達式有兩個必要欄位。欄位是以空格隔開。

語法

rate(value unit)
value

正數。

單位

時間的單位。所需單位可能不同,若值為 1,則需要 minute;若值超過 1,則需要 minutes

有效值:minute | minutes | hour | hours | day | days (分鐘、數分鐘、小時、數小時、天、數天)

限制

如果值等於 1,則單位必須為單數。同樣地,對於大於 1 的數值,單位必須為複數。例如,rate(1 hours)rate(5 hour) 不是有效的,但 rate(1 hour)rate(5 hours) 是有效的。