在 EC2 Image Builder 中使用 cron 表達式 - EC2 Image Builder

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 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-15包含指定月份的第 1 天到第 15 天。
* * (星號) 萬用字元包含欄位的所有有效值。
? ?(問號) 萬用字元指定欄位值取決於其他設定。如果是「日」和 ay-of-week 「D」欄位,當指定或包含所有可能的值 (*) 時,另一個欄位必須為?。您不能同時指定兩者。例如,如果您7在「日」欄位中輸入 a (在該月的第七天執行組建),則 D ay-of-week 位置必須包含?.
/ / (斜線) 萬用字元用於指定增量。例如,如果您希望組建每隔一天執行一次,請*/2在「天」欄位中輸入。
L 任一天欄位中的 L 萬用字元會指定最後一天:28-31 代表月份的日期,視月份的日期而定,或星期日。
W D ay-of-month 欄位中的 W 萬用字元會指定工作日。在 D ay-of-month 欄位中,如果您輸入之前的數字W,則表示您要定位最接近當天的工作日。例如,如果您指定3W,您希望組建在最接近當月第三天的工作日執行。
# (散列)僅允許用於星期字段,並且後面必須跟一個介於 1 和 5 之間的數字。此數字會指定特定月份中要套用哪些週來執行組建。例如,如果您希望組建在每個月的第二個星期五執行,請使fri#2用「星期幾」欄位。
限制
  • 您無法在相同的 cron 運算式中指定 D ay-of-month 和 D ay-of-week 欄位。如果您指定值或*在其中一個欄位中指定值,則必須在另一個欄位?中使用。

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

EC2 Image Builder 中的 cron 表達式示例

對於 Image Builder 主控台,Cron 運算式的輸入方式與 API 或 CLI 的輸入方式不同。若要查看範例,請選擇適用於您的索引標籤。

Image Builder console

下列範例顯示 cron 運算式,您可以在建置排程中輸入到主控台中。UTC 時間是使用 24 小時制指定的。

每天上午 10:00 (世界標準時間) 執行

0 10 * * ? *

每天下午 12:15 (世界標準時間) 執行

15 12 * * ? *

每天午夜 (世界標準時間) 執行

0 0 * * ? *

在每個工作日早上 10:00 (世界標準時間) 執行

0 10 ? * 2-6 *

每個工作日晚上 6 點 (UTC) 執行

0 18 ? * mon-fri *

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

0 8 1 * ? *

在每個月的第二個星期二晚上 10:30(世界標準時間)運行

30 22 ? * tue#2 *

提示

如果您不希望管線工作在執行期間延伸到第二天,請確定在指定開始時間時考量組建的時間。

API/CLI

下列範例顯示 cron 運算式,您可以使用 CLI 命令或 API 要求為建置排程輸入這些運算式。只會顯示 cron 運算式。

每天上午 10:00 (世界標準時間) 執行

cron(0 10 * * ? *)

每天下午 12:15 (世界標準時間) 執行

cron(15 12 * * ? *)

每天午夜 (世界標準時間) 執行

cron(0 0 * * ? *)

在每個工作日早上 10:00 (世界標準時間) 執行

cron(0 10 ? * 2-6 *)

在每個工作日晚上的下午 6:00 (UTC) 執行

cron(0 18 ? * mon-fri *)

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

cron(0 8 1 * ? *)

在每個月的第二個星期二晚上 10:30(世界標準時間)運行

cron(30 22 ? * tue#2 *)

提示

如果您不希望管線工作在執行期間延伸到第二天,請確定在指定開始時間時考量組建的時間。

EC2 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) 是有效的。