本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Cron 排程 Canary 執行
當您排程 Canary 時,使用 Cron 表達式為您提供靈活性。Cron 表達式包含五個或六個欄位,其排序如下表所示。欄位以空格隔開。語法會因您使用 CloudWatch 主控台建立 Canary 或 AWS CLI AWS SDKs而有所不同。當您使用主控台時,只會指定前五個欄位。當您使用 AWS CLI AWS SDKs時,您可以指定所有六個欄位,而且必須為 *
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 (三月)。
-
- (破折號) 特殊字元用於指定範圍。在 Day (日) 欄位,1-15 包含指定月份的 1 至 15 號。
-
* (星號) 特殊字元包含欄位中所有的值。在 Hours (小時) 欄位,* 包含每個小時。您無法在相同表達式中的月中的特定一天和週中的特定一天兩個欄位同時使用 *。若您在其中一個欄位使用它,您必須在另一個欄位使用 ?。
-
/ (斜線) 用於指定增量。在 Minutes (分鐘) 欄位,您可以輸入 1/10 指定每十分鐘的間隔,從小時的第一分鐘開始 (例如第 11、第 21、第 31 分鐘等)。
-
? (問號) 用於表示不限定任何一個。如果您在 Day-of-month (月中的日) 欄位中輸入 7,且您不在意這個月的 7 號是星期幾,就可以在 Day-of-month (月中的日) 欄位中輸入 ?。
-
L 萬用字元在 Day-of-month (月中的日) 或 Day-of-week (週中的日) 欄位可指定月份或週的最後一天。
-
W
萬用字元在 Day-of-month (月中的日) 欄位可指定工作日。在 Day-of-month (月中的日) 欄位,3W
指定的是月份中最接近第三個工作日的日子。 -
# 萬用字元在 Day-of-week (週中的日) 欄位可指定某個月中某週特定日子的特定執行個體。例如,3#2 是該月的第二個星期二。3 是指星期二,因為它是每週的第三天,2 指的是一個月內該類型的第二天。
限制
-
您無法在同一個 cron 表達式中指定 Day-of-month (月中的日) 和 Day-of-week (週中的日) 欄位。如果您在其中一個欄位指定了數值 或
*
(星號),就必須在另一個欄位中使用 ? (問號)。 -
不支援頻率多於一分鐘的 Cron 表達式。
-
您不能設置 Canary 在執行之前等待一年以上,所以您只能在
Year
欄位中指定*
。
範例
當您建立 Canary 時,您可以參考下列 Cron 字串範例。下列範例是使用 AWS CLI AWS SDKs建立或更新 Canary 的正確語法。如果您使用的是 CloudWatch 主控台,請省略每個範例中的最後的 *
表達式 | 意義 |
---|---|
|
在每天上午 10:00 (UTC) 執行 |
|
在每天下午 12:15 (UTC) 執行 |
|
在每週一至週五下午 6:00 (UTC) 執行 |
|
在每個月第一天上午 8:00 (UTC) 執行 |
|
在每週週一至週六每 10 分鐘執行 |
|
在週一至週五上午 8:00 至下午 5:55 (UTC) 之間每 5 分鐘執行 |