維護時段排程與作用期間選項 - AWS Systems Manager

維護時段排程與作用期間選項

當您建立維護時段時,您必須使用 Cron 或 Rate 運算式,指定維護時段執行的頻繁程度。或者,您可以指定一段日期範圍,讓維護時段能根據其定期排程來執行,以及該定期排程依循的時區。

不過請注意,該時區選項與開始日期和結束日期選項不互相影響。您指定的任何開始日期和結束日期時間 (包含或不含時區位移) 只能決定維護時段能定期執行的「有效期間」 。時區選項決定維護時段排程在有效期間「之中」定期執行的國際時區基準。

注意

您可以使用 ISO-8601 時間戳記格式指定開始和結束日期。例如:2021-04-07T14:29:00-08:00

您可以使用網際網路號碼分配局 (IANA) 格式指定時區。例如,America/ChicagoEurope/BerlinAsia/Tokyo

範例 1:指定維護時段開始日期

假設您使用 AWS Command Line Interface (AWS CLI) 建立維護時段,其中包含下列選項:

  • --start-date 2021-01-01T00:00:00-08:00

  • --schedule-timezone "America/Los_Angeles"

  • --schedule "cron(0 09 ? * WED *)"

例如:

Linux & macOS
aws ssm create-maintenance-window \ --name "My-LAX-Maintenance-Window" \ --allow-unassociated-targets \ --duration 3 \ --cutoff 1 \ --start-date 2021-01-01T00:00:00-08:00 \ --schedule-timezone "America/Los_Angeles" \ --schedule "cron(0 09 ? * WED *)"
Windows
aws ssm create-maintenance-window ^ --name "My-LAX-Maintenance-Window" ^ --allow-unassociated-targets ^ --duration 3 ^ --cutoff 1 ^ --start-date 2021-01-01T00:00:00-08:00 ^ --schedule-timezone "America/Los_Angeles" ^ --schedule "cron(0 09 ? * WED *)"

這表示維護時段在其指定的開始日期和時間無法第一次執行,也就是美國太平洋時間 2021 年 1 月 1 日星期五的午夜。(此時區比 UTC 時間慢 8 個小時。) 在此情況下,時段期間的開始日期和時間不代表維護時段第一次執行的時間。結合 --schedule-timezone--schedule 值,代表維護時段會在美國太平洋時區 (IANA 格式的 "America/Los Angeles" (美洲/洛杉磯)) 每週三的上午 9 點執行。啟用期間的第一次執行,會在美國太平洋時間 2021 年 1 月 4 日週三的上午 9 點。

範例 2:指定維護時段開始日期和結束日期

假設您接下來使用這些選項建立維護時段:

  • --start-date 2019-01-01T00:03:15+09:00

  • --end-date 2019-06-30T00:06:15+09:00

  • --schedule-timezone "Asia/Tokyo"

  • --schedule "rate(7 days)"

例如:

Linux & macOS
aws ssm create-maintenance-window \ --name "My-NRT-Maintenance-Window" \ --allow-unassociated-targets \ --duration 3 \ --cutoff 1 \ --start-date 2019-01-01T00:03:15+09:00 \ --end-date 2019-06-30T00:06:15+09:00 \ --schedule-timezone "Asia/Tokyo" \ --schedule "rate(7 days)"
Windows
aws ssm create-maintenance-window ^ --name "My-NRT-Maintenance-Window" ^ --allow-unassociated-targets ^ --duration 3 ^ --cutoff 1 ^ --start-date 2019-01-01T00:03:15+09:00 ^ --end-date 2019-06-30T00:06:15+09:00 ^ --schedule-timezone "Asia/Tokyo" ^ --schedule "rate(7 days)"

此維護時段的啟用期間將會在日本標準時間 2019 年 1 月 1 日的上午 3:15 開始。此維護時段的有效期間會在日本標準時間 2019 年 6 月 30 日星期日的上午 6:15 結束。(此時區比 UTC 時間快 9 個小時)。結合 --schedule-timezone--schedule 值,代表維護時段會在日本標準時區 (IANA 格式的 "Asia/Tokyo" (亞洲/東京)) 每週二的上午 3:15 執行。這是因為維護時段每七天執行一次,從 1 月 1 日週二上午 3:15 啟用。最後一次執行會在日本標準時間 2019 年 6 月 25 日星期二的上午 3:15。這是已啟用維護時段期間在五天之後結束之前的最後一個週二。

範例 3:建立只執行一次的維護時段

現在您使用此選項建立維護時段:

  • --schedule "at(2020-07-07T15:55:00)"

例如:

Linux & macOS
aws ssm create-maintenance-window \ --name "My-One-Time-Maintenance-Window" \ --schedule "at(2020-07-07T15:55:00)" \ --duration 5 \ --cutoff 2 \ --allow-unassociated-targets
Windows
aws ssm create-maintenance-window ^ --name "My-One-Time-Maintenance-Window" ^ --schedule "at(2020-07-07T15:55:00)" ^ --duration 5 ^ --cutoff 2 ^ --allow-unassociated-targets

此維護時段只會在 UTC 時間 2020 年 7 月 7 日的下午 3:55 執行一次。維護時段已啟用為視需要執行最多五個小時,但在維護時段期間結束的兩個小時之前都無法啟動新的任務。

範例 4:指定維護時段的排程偏移天數

現在您使用此選項建立維護時段:

--schedule-offset 2

例如:

Linux & macOS
aws ssm create-maintenance-window \ --name "My-Cron-Offset-Maintenance-Window" \ --schedule "cron(0 30 23 ? * TUE#3 *)" \ --duration 4 \ --cutoff 1 \ --schedule-offset 2 \ --allow-unassociated-targets
Windows
aws ssm create-maintenance-window ^ --name "My-Cron-Offset-Maintenance-Window" ^ --schedule "cron(0 30 23 ? * TUE#3 *)" ^ --duration 4 ^ --cutoff 1 ^ --schedule-offset 2 ^ --allow-unassociated-targets

排程偏移是在執行維護時段之前,在 CRON 表達式所指定的日期和時間之後等待的天數。

在上述範例中,CRON 表達式會排定維護時段,在每個月的第三個週二晚上 11:30 執行:

--schedule "cron(0 30 23 ? * TUE#3 *)

但是,包括 --schedule-offset 2 表示維護時段將在每個月的第三個星期二「後」兩天的晚上 11:30 執行。

僅 CRON 表達式支援排程偏移。

相關內容