

• 2026 年 4 月 30 日之後， AWS Systems Manager CloudWatch Dashboard 將不再可用。客戶可以繼續使用 Amazon CloudWatch 主控台來檢視、建立和管理其 Amazon CloudWatch 儀表板，就像現在一樣。如需詳細資訊，請參閱 [Amazon CloudWatch Dashboard 文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

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

# 參考：Systems Manager 的 Cron 和 Rate 運算式
<a name="reference-cron-and-rate-expressions"></a>

當您在 中建立State Manager關聯或維護時段時 AWS Systems Manager，您可以指定時段或關聯應執行的排程。您可以將排程指定為時間類型的項目 (稱為 *cron 運算式*)，或頻率類型的項目 (稱為 *rate 運算式*)。

## 有關 Cron 和 Rate 運算式的一般資訊
<a name="reference-cron-and-rate-expressions-intro"></a>

下列資訊適用於維護時段與關聯的 Cron 和 Rate 運算式。

**單一執行排程**  
當您建立關聯或維護時段時，可以使用國際標準時間 (UTC) 格式指定時間戳記，以便在指定的時間執行一次。例如：`"at(2020-07-07T15:55:00)"`

**排程位移**  
關聯與維護時段僅支援 Cron 運算式的*排程偏移*。排程偏移是在執行關聯和維護時段之前，在 cron 運算式所指定的日期和時間之後等待的天數。  
在以下命令中，Cron 表達式會排定維護時段，在每個月的第三個星期二晚上 11:30 執行：但是，由於排程偏移為 `2`，因而維護時段會等到兩天後在晚上 11:30 執行。  

```
aws ssm create-maintenance-window \
    --name "My-Cron-Offset-Maintenance-Window" \
    --allow-unassociated-targets \
    --schedule "cron(30 23 ? * TUE#3 *)" \
    --duration 4 \
    --cutoff 1 \
    --schedule-offset 2
```
在下列命令中，Cron 表達式會排定關聯，以在每個月的第二個星期四執行。但是，由於排程偏移是 `3`，因此在三天後的下個星期日之前，才會執行關聯。  

```
aws ssm create-association \
    --name "AWS-UpdateSSMAgent" \
    --targets "Key=instanceids,Values=i-0cb2b964d3e14fd9f" \
    --schedule-expression "cron(0 0 ? * THU#2 *)"  \
    --schedule-offset 3
    --apply-only-at-cron-interval
```
若要使用具有關聯的偏移，您必須指定 `--apply-only-at-cron-interval` 選項。此選項會告訴系統不要在建立關聯後立即執行。
如果您使用 cron 運算式來建立維護時段，且其目標日期是在目前期間中已經過去的日期，但新增的排程偏移落在未來日期，則關聯或維護時段將不會在該期間內執行。它將在其次期間生效。例如，如果您指定的 Cron 運算式是要在昨天執行維護時段，並新增兩天的排程偏移，則維護時段將不會在明天執行。

**必要欄位**  
維護時段的 Cron 運算式有六個必要欄位。關聯的 Cron 運算式有五個。(State Manager 目前不支援在 Cron 運算式中為關聯指定月份。） 其他欄位、`Seconds` 欄位 (cron 運算式中的第一個) 為選用。欄位以空格隔開。    
**Cron 運算式範例**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/systems-manager/latest/userguide/reference-cron-and-rate-expressions.html)
Day-of-week範圍 （例如 `MON-FRI`) 和逗號分隔日期清單 （例如 `MON,TUE,WED`) 僅支援維護時段。對於關聯，您必須指定一天 （例如 `MON`) 或每天`*`使用 。

**支援的值**  
下表顯示支援的必要 cron 項目的值。    
**Cron 運算式支援的值**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/systems-manager/latest/userguide/reference-cron-and-rate-expressions.html)
您無法在同一個 Cron 運算式中指定 day-of-month (月中的日) 和 day-of-week (週中的日) 欄位中的值。如果您在其中一個欄位指定了數值，就請在另一個欄位中使用 ? (問號)​。

**Cron 運算式的萬用字元**  
下表顯示 cron 運算式支援的萬用字元值。  
不支援頻率快於 5 分鐘的 Cron 運算式。尚未完成支援同時指定週間日與月中日的值。在其中一個欄位使用問號 (?) 字元。  
**Cron 運算式支援的萬用字元**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/systems-manager/latest/userguide/reference-cron-and-rate-expressions.html)

**Rate 運算式**  
Rate 運算式有以下兩個必要欄位。欄位以空格隔開。    
**Rate 運算式的必要欄位**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/systems-manager/latest/userguide/reference-cron-and-rate-expressions.html)
如果值等於 `1`，則單位必須為單數。同樣地，對於大於 `1` 的數值，單位必須為複數。例如，`rate(1 hours)` 與 `rate(5 hour)` 不是有效的，但 `rate(1 hour)` 與 `rate(5 hours)` 是有效的。

**Topics**
+ [有關 Cron 和 Rate 運算式的一般資訊](#reference-cron-and-rate-expressions-intro)
+ [關聯的 Cron 與 Rate 運算式](#reference-cron-and-rate-expressions-association)
+ [維護時段的 Cron 與 Rate 運算式](#reference-cron-and-rate-expressions-maintenance-window)

## 關聯的 Cron 與 Rate 運算式
<a name="reference-cron-and-rate-expressions-association"></a>

此部分包括 State Manager 關聯的 cron 與 rate 運算式範例。在建立其中一個這些運算式之前，請注意以下資訊：
+ 關聯支援以下 Cron 表達式：每 1/2、1、2、4、8 或 12 小時；每天、每週或每週的每個指定日期和時間；該月特定週的特定一天，或該月最後 `x` 天的特定時間。
+ 關聯支援以下 Rate 運算式：間隔為 30 分鐘或者大於 30 分鐘並小於 31 天。
+ 如果您指定選用的 `Seconds` 欄位，它的值只能為 0 (零)。例如：`cron(0 */30 * * * ? *)`
+ 對於收集庫存中繼資料的關聯，即 中的工具 AWS Systems Manager，我們建議您使用速率表達式。
+ State Manager 目前不支援在 Cron 運算式中為關聯指定月份。

關聯支援 cron 運算式，其中包括一週中的某一天和數字符號 (\$1)，以指定一個月的第 *n* 天執行關聯。以下是在每月第三個週二 23:30 UTC 執行 cron 排程的範例：

`cron(30 23 ? * TUE#3 *)`

以下是在每月第二個週四午夜 UTC 執行的範例：

`cron(0 0 ? * THU#2 *)`

關聯還支援 (L) 符號來指示一個月的最後 *X* 天。以下是在每月最後一個週二午夜 UTC 執行 cron 排程的範例：

`cron(0 0 ? * 3L *)`

若要進一步控制關聯的執行時間，例如，如果您希望在週二修補程式日後的兩天執行關聯，則可以指定偏移量。同時*偏移*定義在排程的日期之後等待多少天才能執行關聯。例如，如果您指定了 `cron(0 0 ? * THU#2 *)` 的 cron 排程，則可以在**排程偏移**欄位指定數字 3，以在該月第二個週四之後的每個週日執行關聯。

若要使用偏移，必須在主控台選擇 **Apply association only at the next specified Cron interval** (僅在下一個指定 Cron 間隔時間套用關聯) 選項，或者必須在命令列中指定使用 `--apply-only-at-cron-interval` 參數。此選項會告訴 State Manager 不要在建立關聯後立即執行。

下表顯示關聯的 Cron 範例。


**關聯的 Cron 範例**  

| 範例 | 詳細資訊 | 
| --- | --- | 
|  cron(0/30 \$1 \$1 \$1 ? \$1)  |  每 30 分鐘  | 
|  cron(0 0/1 \$1 \$1 ? \$1)  |  每小時  | 
|  cron(0 0/2 \$1 \$1 ? \$1)  |  每 2 小時  | 
|  cron(0 0/4 \$1 \$1 ? \$1)  |  每 4 小時  | 
|  cron(0 0/8 \$1 \$1 ? \$1)  |  每 8 小時  | 
|  cron(0 0/12 \$1 \$1 ? \$1)  |  每 12 小時  | 
|  cron(15 13 ? \$1 \$1 \$1)  |  每天下午 1:15  | 
|  cron(15 13 ? \$1 MON \$1)  |  每個週一下午 1:15  | 
|  cron(30 23 ? \$1 TUE\$13 \$1)  |  每月第三個週二下午 11:30  | 

以下是一些關聯的 rate 範例。


**關聯的 Rate 範例**  

| 範例 | 詳細資訊 | 
| --- | --- | 
|  rate(30 minutes)  |  每 30 分鐘  | 
|  rate(1 hour)  |  每小時  | 
|  rate(5 hours)  |  每 5 小時  | 
|  rate(15 days)  |  每 15 天  | 

****AWS CLI 關聯的範例****  
若要使用 建立State Manager關聯 AWS CLI，您可以使用 Cron 或 Rate 表達式包含 `--schedule-expression` 參數。下列範例會在本機 Linux AWS CLI 電腦上使用 。

**注意**  
根據預設，當您建立新的關聯時，系統會在建立該關聯後立即執行，然後根據您指定的排程。指定 `--apply-only-at-cron-interval`，以便不會在您建立關聯之後立即執行。此參數不支援 Rate 運算式。

```
aws ssm create-association \
    --association-name "My-Cron-Association" \
    --schedule-expression "cron(0 2 ? * SUN *)" \
    --targets Key=tag:ServerRole,Values=WebServer \
    --name AWS-UpdateSSMAgent
```

```
aws ssm create-association \
    --association-name "My-Rate-Association" \
    --schedule-expression "rate(7 days)" \
    --targets Key=tag:ServerRole,Values=WebServer \
    --name AWS-UpdateSSMAgent
```

```
aws ssm create-association \
    --association-name "My-Rate-Association" \
    --schedule-expression "at(2020-07-07T15:55:00)" \
    --targets Key=tag:ServerRole,Values=WebServer \
    --name AWS-UpdateSSMAgent \
    --apply-only-at-cron-interval
```

## 維護時段的 Cron 與 Rate 運算式
<a name="reference-cron-and-rate-expressions-maintenance-window"></a>

本節包含適用於維護時段的 Cron 和 Rate 運算式。

與 State Manager 關聯不同，維護時段支援所有 cron 和 rate 運算式。這包括在秒欄位中支援數值。

例如，以下 6 個欄位的 Cron 運算式會在每天上午 9:30 執行維護時段。

```
cron(30 09 ? * * *)
```

透過將值新增至 `Seconds` 欄位，以下 7 個欄位的 Cron 運算式會在每天上午 9:30:24 執行維護時段。

```
cron(24 30 09 ? * * *)
```

下表提供適用於維護時段的額外 6 個欄位 Cron 範例。


**維護時段的 Cron 範例**  

| 範例 | 詳細資訊 | 
| --- | --- | 
|  cron(0 2 ? \$1 THU\$13 \$1)  |  每個月第三個週四的上午 02:00  | 
|  cron(15 10 ? \$1 \$1 \$1)  |  每天的上午 10:15  | 
|  cron(15 10 ? \$1 MON-FRI \$1)  |  每個週一、週二、週三、週四和週五的上午 10:15  | 
|  cron(0 2 L \$1 ? \$1)  |  每個月最後一天的上午 02:00  | 
|  cron(15 10 ? \$1 6L \$1)  |  每個月最後一個星期五的上午 10:15  | 

下表提供適用於維護時段的 Rate 範例。


**維護時段的 Rate 範例**  

| 範例 | 詳細資訊 | 
| --- | --- | 
|  rate(30 minutes)  |  每 30 分鐘  | 
|  rate(1 hour)  |  每小時  | 
|  rate(5 hours)  |  每 5 小時  | 
|  rate(25 days)  |  每 25 天  | 

****AWS CLI 維護時段的範例****  
若要使用 建立維護時段 AWS CLI，請使用 Cron 或 Rate 表達式或時間戳記來包含 `--schedule` 參數。下列範例會在本機 Linux AWS CLI 電腦上使用 。

```
aws ssm create-maintenance-window \
    --name "My-Cron-Maintenance-Window" \
    --allow-unassociated-targets \
    --schedule "cron(0 16 ? * TUE *)" \
    --schedule-timezone "America/Los_Angeles" \
    --start-date 2021-01-01T00:00:00-08:00 \
    --end-date 2021-06-30T00:00:00-08:00 \
    --duration 4 \
    --cutoff 1
```

```
aws ssm create-maintenance-window \
    --name "My-Rate-Maintenance-Window" \
    --allow-unassociated-targets \
    --schedule "rate(7 days)" \
    --duration 4 \
    --schedule-timezone "America/Los_Angeles" \
    --cutoff 1
```

```
aws ssm create-maintenance-window \
    --name "My-TimeStamp-Maintenance-Window" \
    --allow-unassociated-targets \
    --schedule "at(2021-07-07T13:15:30)" \
    --duration 4 \
    --schedule-timezone "America/Los_Angeles" \
    --cutoff 1
```

**詳細資訊**  
在 *Wikipedia 網站*的 [Cron 運算式](https://en.wikipedia.org/wiki/Cron#CRON_expression)