

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

# Amazon EC2 執行個體的排程事件
<a name="monitoring-instances-status-check_sched"></a>

為了確保基礎設施的可靠性和效能， AWS 可以排程事件以重新啟動、停止和淘汰您的執行個體。這些事件不會頻繁發生。

如果您的其中一個執行個體將受到排程事件的影響， 會使用與您 AWS 帳戶相關聯的電子郵件地址，透過電子郵件提前 AWS 通知您。此電子郵件提供事件的詳細資訊，例如開始和結束日期。根據事件類型，您可能可以採取動作來控制事件的時間。 AWS 也會傳送事件，您可以使用 Amazon EventBridge 來監控和管理該 AWS Health 事件。如需詳細資訊，請參閱[使用 Amazon EventBridge 監控 AWS Health 中的事件](https://docs.aws.amazon.com/health/latest/ug/cloudwatch-events-health.html)。

排程事件由 管理 AWS。監控執行個體的排程事件。不過，您可以：
+ 檢視執行個體的排程事件
+ 自訂排程事件通知，以便在電子郵件通知中包含或移除標籤。
+ 重新排程特定排程事件。
+ 建立已排程事件的自訂事件時段。
+ 在執行個體排定為重新啟動、停止或淘汰時採取動作。

為了確保您收到排程事件的通知，請在[帳戶](https://console.aws.amazon.com/billing/home?#/account)頁面上驗證您的聯絡資訊。

**注意**  
當執行個體受到排程事件的影響，並且屬於 Auto Scaling 群組時，Amazon EC2 Auto Scaling 最終會在運作狀態檢查期間將其取代，而您無需採取任何進一步動作。如需 Amazon EC2 Auto Scaling 執行運作狀態檢查的詳細資訊，請參閱「Amazon EC2 Auto Scaling 使用者指南」**中的 [Auto Scaling 群組中執行個體的運作狀態檢查](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html)。

## 排程事件類型
<a name="types-of-scheduled-events"></a>

Amazon EC2 可為執行個體建立以下類型的排程事件，其中事件會在排程的時間發生：


| 事件類型 | 事件代碼 | 事件動作 | 
| --- | --- | --- | 
| 執行個體停止 | instance-stop | 執行個體會在排程時間停止。當您再次啟動時，它會遷移到新的主機。僅適用於具有 Amazon EBS 根磁碟區的執行個體。 | 
| 執行個體淘汰 | instance-retirement | 在排程時間，如果執行個體具有 Amazon EBS 根磁碟區，則會停止，如果它具有執行個體儲存體根磁碟區，則會終止。 | 
| 重新啟動執行個體 | instance-reboot | 執行個體會在排程時間重新啟動。執行個體會保留在主機上，在重新啟動期間，主機會進行維護。這稱為就地重新啟動。 | 
| 系統重新開機 | system-reboot | 在排程時間，執行個體會重新啟動並移轉至新主機。這稱為重新啟動移轉。 | 
| 系統維護 | system-maintenance | 在排程時間，執行個體可能會因網路維護或電源維護而暫時受到影響。 | 

## 確定事件類型
<a name="scheduled-event-type"></a>

您可以檢查為執行個體排程的事件類型。

------
#### [ Console ]

**若要確定事件類型**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 在資料表中，事件代碼會出現在**事件類型**資料欄中。

1. 若要篩選資料表以僅顯示執行個體的事件，請在搜尋欄位中，從篩選條件清單中選擇**資源類型：執行個體**。

------
#### [ AWS CLI ]

**若要確定執行個體的事件類型**  
使用 [describe-instance-status](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-status.html) 命令。如果執行個體有相關聯的排程事件，輸出會提供排程事件的相關資訊。

```
aws ec2 describe-instance-status \
    --instance-id i-1234567890abcdef0 \
    --query InstanceStatuses[].Events
```

以下為範例輸出。排程事件代碼為 `system-reboot`。

```
[
    "Events": [
        {
            "InstanceEventId": "instance-event-0d59937288b749b32",
            "Code": "system-reboot",
            "Description": "The instance is scheduled for a reboot",
            "NotAfter": "2020-03-14T22:00:00.000Z",
            "NotBefore": "2020-03-14T20:00:00.000Z",
            "NotBeforeDeadline": "2020-04-05T11:00:00.000Z"
        }
    ]
]
```

------
#### [ PowerShell ]

**若要確定執行個體的事件類型**  
使用 [Get-EC2InstanceStatus](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceStatus.html) cmdlet。如果執行個體有相關聯的排程事件，輸出會提供排程事件的相關資訊。

```
(Get-EC2InstanceStatus `
    -InstanceId i-1234567890abcdef0).Events
```

以下為範例輸出。排程事件代碼為 `system-reboot`。

```
Code              : system-reboot
Description       : The instance is scheduled for a reboot
InstanceEventId   : instance-event-0d59937288b749b32
NotAfter          : 2020-03-14T22:00:00.000Z
NotBefore         : 2020-03-14T20:00:00.000Z
NotBeforeDeadline : 2020-04-05T11:00:00.000Z
```

------

**Topics**
+ [排程事件類型](#types-of-scheduled-events)
+ [確定事件類型](#scheduled-event-type)
+ [管理已排程為停止或淘汰的 Amazon EC2 執行個體](schedevents_actions_retire.md)
+ [管理已排程進行重新啟動的 Amazon EC2 執行個體](schedevents_actions_reboot.md)
+ [管理為維護排程的 Amazon EC2 執行個體](schedevents_actions_maintenance.md)
+ [檢視會影響 Amazon EC2 執行個體的排程事件](viewing_scheduled_events.md)
+ [自訂 EC2 執行個體的排程事件通知](customizing_scheduled_event_notifications.md)
+ [重新排程 EC2 執行個體的排程事件](reschedule-event.md)
+ [為影響 Amazon EC2 執行個體的排程事件建立自訂事件時段](event-windows.md)

# 管理已排程為停止或淘汰的 Amazon EC2 執行個體
<a name="schedevents_actions_retire"></a>

當 AWS 偵測到執行個體的基礎主機發生無法修復的故障時，會根據執行個體的根磁碟區類型，將執行個體排程為停止或終止。
+ 若執行個體具有 Amazon EBS 根磁碟區，則執行個體會排程為停止。
+ 若執行個體具有執行個體儲存體根磁碟區，則執行個體會排程為終止。

如需詳細資訊，請參閱[執行個體淘汰](instance-retirement.md)。

**重要**  
任何存放在執行個體存放區磁碟區的資料都會在執行個體停止、休眠或終止時遺失。這包含連接到擁有 EBS 根磁碟區之執行個體的執行個體儲存體磁碟區。請確認您已在執行個體停止、休眠或終止前，從您的執行個體存放區磁碟區儲存您稍後需要的資料。

## 您可以採取的動作
<a name="actions-you-can-take-for-scheduled-stop-or-retire-event"></a>

**對於具有 EBS 根磁碟區的執行個體，您可以採取的動作**

當您收到已排程的 `instance-stop` 事件通知時，可以採取下列其中一個動作：
+ **等待排程的停止：**您可以等待執行個體在其排程的維護時段內停止。
+ **執行手動停止和啟動：**您可以在適合您的時間自行停止和啟動執行個體，這會將其移轉至新主機。這與重新啟動執行個體不同。如需詳細資訊，請參閱[停止和啟動 Amazon EC2 執行個體](Stop_Start.md)。
+ **自動停止和啟動：**您可以將立即停止和啟動自動化，以回應排程的 `instance-stop` 事件。如需詳細資訊，請參閱「AWS Health 使用者指南」**中的[在 EC2 執行個體上自動執行操作以回應 AWS Health中的事件](https://docs.aws.amazon.com/health/latest/ug/automating-instance-actions.html)。

**對於具有執行個體儲存體根磁碟區的執行個體，您可以採取的動作**

當您收到已排程的 `system-retirement` 事件通知，並且您想要保留資料時，可以採取下列動作：

1. 從最近的 AMI 中啟動替代執行個體。

1. 在執行個體被排程為終止之前，將所有必要的資料移轉至替代執行個體。

1. 終止原始執行個體，或是等待執行個體依照排程終止。

如需有關您可採取的動作詳細資訊，請參閱[執行個體淘汰](instance-retirement.md)。

# 管理已排程進行重新啟動的 Amazon EC2 執行個體
<a name="schedevents_actions_reboot"></a>

當 AWS 必須執行安裝更新或維護基礎主機等任務時，可以排程執行個體重新啟動。在排程的重新啟動期間，執行個體會保留在相同的主機上，或移轉至不同的主機，具體取決於事件，如下所示：
+ `instance-reboot` 事件
  + 在重新啟動期間，執行個體會保留在主機上。這稱為*就地重新啟動*。
  + 目前的主機會進行維護。
  + 通常在幾秒鐘內完成。
+ `system-reboot` 事件
  + 在重新啟動期間，執行個體會移轉至新主機。這稱為*重新啟動移轉*。
  + 通常在幾分鐘內完成。

若要檢查為您的執行個體排程的事件類型，請參閱[確定事件類型](monitoring-instances-status-check_sched.md#scheduled-event-type)。

## 您可以採取的動作
<a name="actions-you-can-take-for-scheduled-reboot-event"></a>

當您收到排程的 `instance-reboot` 或 `system-reboot` 事件通知時，可以採取下列其中一個動作：
+ **等待排程的重新啟動：**您可以等待執行個體在其排程的維護時段內重新啟動。
+ **對重新啟動進行重新排程：**您可以將執行個體重新啟動[重新排程](reschedule-event.md)為適合您的日期和時間。
+ **執行使用者啟動的重新啟動：**您可以在適合您的時間自行手動[重新啟動](ec2-instance-reboot.md)執行個體。不過，結果取決於事件：
  + `instance-reboot` 事件 – 您的執行個體會保留在目前的硬體上 (就地重新啟動)，不會進行主機維護，而且事件會保持開啟狀態。
  + `system-reboot` 事件
    + 如果執行個體已啟用重新啟動移轉，則使用者啟動的重新啟動會嘗試將執行個體移轉至新硬體。如果成功，則會清除事件。如果失敗，將發生就地重新啟動，並且事件會按排程進行。
    + 如果執行個體已停用重新啟動移轉，則使用者啟動的重新啟動會將執行個體保留在相同的硬體上 (就地重新啟動)，不會執行主機維護，而且事件會保持排程狀態。當排程事件最終發生時， AWS 會將您的執行個體移至新硬體 （重新啟動遷移）。

** AWS 重新啟動執行個體之後**

 AWS 重新啟動執行個體後，以下適用：
+ 清除排程的事件。
+ 更新事件描述。
+ 對於 `instance-reboot` 事件：
  + 基礎主機的維護已完成。
+ 對於 `system-reboot` 事件：
  + 執行個體會移至新主機。
  + 執行個體會保留其 IP 位址和 DNS 名稱。
  + 不會保留本機執行個體儲存體磁碟區上的資料。
+ 您可以在執行個體完全啟動後使用它。

**替代選項**

如果您無法重新排程重新啟動事件或為使用者啟動的重新啟動啟用重新啟動移轉，但想要在排程的維護時段維持正常操作，可以執行下列動作：
+ **對於具有 EBS 根磁碟區的執行個體**
  + 手動停止並啟動執行個體，將其移轉至新主機。這與手動重新啟動執行個體不同，其中執行個體會保留在相同的主機上。
  + 也可以選擇將立即執行個體停止和啟動自動化，以回應已排程的重新啟動事件。如需詳細資訊，請參閱「AWS Health 使用者指南」**中的[在 EC2 執行個體上自動執行操作以回應 AWS Health中的事件](https://docs.aws.amazon.com/health/latest/ug/automating-instance-actions.html)。
**重要**  
在執行個體停止時，執行個體儲存體磁碟區上的資料會遺失。如需詳細資訊，請參閱[停止和啟動 Amazon EC2 執行個體](Stop_Start.md)。
+ **對於具有執行個體儲存體根磁碟區的執行個體**

  1. 從最近的 AMI 中啟動替代執行個體。

  1. 在排程的維護時段之前，將所有必要的資料移轉至取代執行個體。

  1. 終止原始執行個體。

## 啟用或停用重新啟動移轉
<a name="reboot-migration"></a>

為 `system-reboot` 事件排程執行個體時，可以在事件之前將其重新啟動。使用者啟動的重新啟動結果取決於執行個體的重新啟動移轉設定：
+ 已啟用 – 使用者啟動的重新啟動會嘗試將執行個體移轉至新硬體 (重新啟動移轉)。如果成功，則會清除事件。如果失敗，將發生就地重新啟動，並且事件會按排程進行。請注意，即使已啟用，只有在執行個體符合[重新啟動移轉需求](#requirements-for-reboot-migration)時，才能進行重新啟動移轉。
+ 已停用 - 使用者啟動的重新啟動會將執行個體保留在相同的硬體上 (就地重新啟動)，不會執行主機維護，而且事件會保持排程狀態。當排程事件最終發生時， AWS 會將您的執行個體移至新硬體 （重新啟動遷移）。

移轉後重新啟動需要的時間比就地重新啟動更長：
+ 就地重新啟動：約 30 秒
+ 移轉後重新啟動：數分鐘

**注意**  
預設會為使用者啟動的重新啟動移轉啟用可接收 `system-reboot` 事件通知的執行個體。

### 啟用重新啟動移轉的需求
<a name="requirements-for-reboot-migration"></a>

可以在滿足下列條件的執行個體上啟用重新啟動移轉：

**執行個體類型**  
並非所有執行個體類型都支援啟用重新啟動移轉。您可以檢視支援啟用重新啟動移轉的執行個體類型。  

**若要檢視支援啟用重新啟動移轉的執行個體類型**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在左側導覽窗格中選擇 **Instance Types** (執行個體類型)。

1. 在篩選列中，輸入**重新啟動移轉支援：支援**。當您輸入字元且篩選條件名稱出現時，可以選取它。

   **執行個體類型**資料表會顯示支援啟用重新啟動移轉的所有執行個體類型。
**若要檢視支援啟用重新啟動移轉的執行個體類型**  
使用 [describe-instance-types](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html) 命令並搭配 `reboot-migration-support` 篩選條件。

```
aws ec2 describe-instance-types \
    --filters Name=reboot-migration-support,Values=supported \
    --query "InstanceTypes[*].[InstanceType]" \
    --output text | sort
```
**若要檢視支援啟用重新啟動移轉的執行個體類型**  
使用 [Get-EC2InstanceType](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceType.html) cmdlet 搭配 `reboot-migration-support` 篩選條件。

```
Get-EC2InstanceType `
    -Filter @{Name="reboot-migration-support";Values="true"} | `
    Select InstanceType | Sort-Object InstanceType
```

**租用**  
+ 共同
+ Dedicated Instance
如需詳細資訊，請參閱[Amazon EC2 專用執行個體](dedicated-instance.md)。

**限制**

具有下列特性的執行個體**不**支援重新啟動移轉：
+ 平台：在 Xen Hypervisor 上原生執行的執行個體
+ 執行個體大小：`metal` 執行個體
+ 租用：專用主機。對於專用主機，改用[專用主機自動復原](dedicated-hosts-recovery.md)。
+ 儲存：具有執行個體儲存體磁碟區的執行個體
+ 聯網：使用 Elastic Fabric Adapter 的執行個體
+ 自動擴展：屬於 Auto Scaling 群組的執行個體

### 啟用或停用重新啟動移轉的步驟
<a name="configure-reboot-migration-behavior"></a>

當執行個體收到 `system-reboot` 事件時，預設會啟用重新啟動移轉。可以停用重新啟動移轉，以便在使用者啟動的重新啟動期間，執行個體會保持在相同的硬體上 (就地重新啟動)。

`default` 組態不會為不支援的執行個體啟用重新啟動移轉。如需詳細資訊，請參閱[啟用重新啟動移轉的需求](#requirements-for-reboot-migration)。

您可以在執行中或已停止的執行個體上停用或啟用重新啟動移轉。

------
#### [ AWS CLI ]

**停用重新啟動移轉**  
使用 [modify-instance-maintenance-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-maintenance-options.html) 命令，並將 `--reboot-migration` 參數設定為 `disabled`。

```
aws ec2 modify-instance-maintenance-options \ 
    --instance-id i-0abcdef1234567890 \ 
    --reboot-migration disabled
```

**若要啟用重新啟動移轉**  
使用 [modify-instance-maintenance-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-maintenance-options.html) 命令，並將 `--reboot-migration` 參數設定為 `default`。

```
aws ec2 modify-instance-maintenance-options \ 
    --instance-id i-0abcdef1234567890 \ 
    --reboot-migration default
```

------
#### [ PowerShell ]

**停用重新啟動移轉**  
使用 [Edit-EC2InstanceMaintenanceOption](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceMaintenanceOption.html) cmdlet。

```
Edit-EC2InstanceMaintenanceOption `
    -InstanceId  `
    -RebootMigration Disabled
```

**若要啟用重新啟動移轉**  
使用 [Edit-EC2InstanceMaintenanceOption](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceMaintenanceOption.html) cmdlet。

```
Edit-EC2InstanceMaintenanceOption `
    -InstanceId i-1234567890abcdef0 `
    -RebootMigration Enabled
```

------

# 管理為維護排程的 Amazon EC2 執行個體
<a name="schedevents_actions_maintenance"></a>

當 AWS 必須維護執行個體的基礎主機時，它會排程執行個體進行維護。有兩種維護事件類型：網路維護及電源維護。
+ 在網路維護期間，排程執行個體會暫時遺失網路連線能力。維護完成後，便會還原您執行個體的一般網路連線能力。
+ 在電源維護期間，排程執行個體會暫時離線，然後重新開機。當執行重新開機時，會保留所有您執行個體的組態設定。

在您的執行個體重新開機後 (通常需要數分鐘)，確認您的應用程式正以預期的方式正常運作。此時，您的執行個體應該不會再有任何相關聯的排程事件，或若是如此，則排程事件描述的開頭為 **[Completed] ([已完成])**。有時需要最多 1 個小時，才會更新執行個體狀態描述。完成的維護事件會在 Amazon EC2 主控台儀表板上顯示最多一週。

## 您可以採取的動作
<a name="actions-you-can-take-for-scheduled-maintenance-event"></a>

**對於具有 EBS 根磁碟區的執行個體，您可以採取的動作**

當您收到 `system-maintenance` 事件通知時，可以採取下列其中一個動作：
+ **等待已排程的維護：**可以等待維護按排程進行。
+ **執行手動停止和啟動：**可以停止和啟動執行個體，將其移轉到新主機。這與重新啟動執行個體不同。如需詳細資訊，請參閱[停止和啟動 Amazon EC2 執行個體](Stop_Start.md)。
+ **自動化停止和啟動**：可以將立即停止和啟動進行自動化，以回應排程的維護事件。如需詳細資訊，請參閱「AWS Health 使用者指南」**中的[在 EC2 執行個體上自動執行操作以回應 AWS Health中的事件](https://docs.aws.amazon.com/health/latest/ug/automating-instance-actions.html)。

**對於具有執行個體儲存體根磁碟區的執行個體，您可以採取的動作**

當您收到 `system-maintenance` 事件通知時，可以採取下列其中一個動作：
+ **等待已排程的維護：**可以等待維護按排程進行。
+ **啟動替代執行個體：**如果您想要在排程的維護時段維持正常操作：

  1. 從最近的 AMI 中啟動替代執行個體。

  1. 在排程的維護時段之前，將所有必要的資料移轉至取代執行個體。

  1. 終止原始執行個體。

# 檢視會影響 Amazon EC2 執行個體的排程事件
<a name="viewing_scheduled_events"></a>

除了在電子郵件中接收排程事件的通知，您可以檢查排程事件。

------
#### [ Console ]

**檢視執行個體的排程事件**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 儀表板會在**排程事件**下方顯示任何與事件相關聯的資源。  
![\[使用儀表板檢視事件。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/dashboard-scheduled-events.png)

1. 如需更多詳細資訊，在導覽窗格中選擇**事件**。此時會顯示任何與事件相關聯的資源。您可以依特性 (例如事件類型、資源類型和可用區域) 進行篩選。  
![\[使用 Events (事件) 頁面檢視事件。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/events-instance-scheduled-stop.png)

------
#### [ AWS CLI ]

**檢視執行個體的排程事件**  
使用 [describe-instance-status](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-status.html) 命令。

```
aws ec2 describe-instance-status \
    --instance-id i-1234567890abcdef0 \
    --query "InstanceStatuses[].Events"
```

下列範例輸出顯示重新開機事件。

```
[
    "Events": [
        {
            "InstanceEventId": "instance-event-0d59937288b749b32",
            "Code": "system-reboot",
            "Description": "The instance is scheduled for a reboot",
            "NotAfter": "2019-03-15T22:00:00.000Z",
            "NotBefore": "2019-03-14T20:00:00.000Z",
            "NotBeforeDeadline": "2019-04-05T11:00:00.000Z"
         }

    ]
]
```

下列為顯示執行個體淘汰事件的範例輸出。

```
[
    "Events": [
        {
            "InstanceEventId": "instance-event-0e439355b779n26",                        
            "Code": "instance-stop",
            "Description": "The instance is running on degraded hardware",
            "NotBefore": "2015-05-23T00:00:00.000Z"
        }
    ]
]
```

------
#### [ PowerShell ]

**檢視執行個體的排程事件**  
使用下列 [Get-EC2InstanceStatus](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceStatus.html) 命令。

```
(Get-EC2InstanceStatus -InstanceId i-1234567890abcdef0).Events
```

下列為顯示執行個體淘汰事件的範例輸出。

```
Code         : instance-stop
Description  : The instance is running on degraded hardware
NotBefore    : 5/23/2015 12:00:00 AM
```

------
#### [ Instance metadata ]

**使用執行個體中繼資料檢視您執行個體的排程事件**  
您可以使用執行個體中繼資料服務第 2 版或執行個體中繼資料服務第 1 版，從[執行個體中繼資料](ec2-instance-metadata.md)擷取有關執行個體之作用中維護事件的資訊。

**IMDSV2**

```
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/events/maintenance/scheduled
```

**IMDSv1**

```
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/events/maintenance/scheduled
```

以下範例輸出包含排程系統重新開機事件的資訊 (採用 JSON 格式)。

```
[ 
  {
    "NotBefore" : "21 Jan 2019 09:00:43 GMT",
    "Code" : "system-reboot",
    "Description" : "scheduled reboot",
    "EventId" : "instance-event-0d59937288b749b32",
    "NotAfter" : "21 Jan 2019 09:17:23 GMT",
    "State" : "active"
  } 
]
```

**使用執行個體中繼資料檢視執行個體已完成或已取消事件的事件歷史記錄**  
您可以使用執行個體中繼資料服務第 2 版或執行個體中繼資料服務第 1 版，從[執行個體中繼資料](ec2-instance-metadata.md)擷取有關已完成或已取消之執行個體事件的資訊。

**IMDSV2**

```
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/events/maintenance/history
```

**IMDSv1**

```
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/events/maintenance/history
```

以下範例輸出包含已取消之系統重新開機事件和已完成之系統重新開機事件的資訊 (採用 JSON 格式)。

```
[ 
  {
    "NotBefore" : "21 Jan 2019 09:00:43 GMT",
    "Code" : "system-reboot",
    "Description" : "[Canceled] scheduled reboot",
    "EventId" : "instance-event-0d59937288b749b32",
    "NotAfter" : "21 Jan 2019 09:17:23 GMT",
    "State" : "canceled"
  }, 
  {
    "NotBefore" : "29 Jan 2019 09:00:43 GMT",
    "Code" : "system-reboot",
    "Description" : "[Completed] scheduled reboot",
    "EventId" : "instance-event-0d59937288b749b32",
    "NotAfter" : "29 Jan 2019 09:17:23 GMT",
    "State" : "completed"
  }
]
```

------
#### [ AWS Health ]

您可以使用 AWS Health 儀板表 來了解可能影響執行個體的事件。會將問題 Health 儀板表 整理成三個群組：開啟問題、排程變更和其他通知。排定的變更包含進行中或即將進行的項目。

如需詳細資訊，請參閱「指南」中的「AWS Health **[AWS Health 儀板表入門](https://docs.aws.amazon.com/health/latest/ug/getting-started-health-dashboard.html)」。

------

# 自訂 EC2 執行個體的排程事件通知
<a name="customizing_scheduled_event_notifications"></a>

您可以自訂排程事件通知，以便在電子郵件通知中包含標籤。如此可以更輕鬆地識別受影響的資源 (執行個體或 專用執行個體)，並為即將到來的事件排定動作的優先順序。

當您自訂事件通知以包含標籤時，您可以選擇包含：
+ 與受影響資源關聯的所有標籤
+ 僅與受影響資源關聯的特定標籤

例如，假設您將 `application`、`costcenter`、`project`，和 `owner` 標籤指派給所有執行個體。您可以選擇在事件通知中包含所有標籤。或者，如果您只想在事件通知中看到 `owner` 和 `project` 標籤，則可以選擇只包含這些標籤。

選取要包含的標籤之後，事件通知將包含資源 ID (執行個體 ID 或 專用執行個體 ID)，以及與受影響資源關聯的標籤金鑰和值組。

**Topics**
+ [在事件通知中包含標籤](#register-tags)
+ [從事件通知中移除標籤](#deregister-tags)
+ [檢視要包含在事件通知中的標籤](#view-tags)

## 在事件通知中包含標籤
<a name="register-tags"></a>

您選擇要包含的標籤會套用至所選區域的所有資源 (執行個體和 專用執行個體)。若要自訂其他區域中的事件通知，請先選取所需的區域，然後執行下列步驟。

------
#### [ Console ]

**在事件通知中包含標籤**

1. 在 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 選擇 **Actions (動作)**、**Manage event notifications (管理事件通知)**。

1. 開啟**在事件通知中包含標籤**。

1. 根據您要包含在事件通知中的標籤，執行下列其中一項動作：
   + 若要包含與受影響執行個體或專用執行個體相關聯的所有標籤，請選取**包含所有資源標籤**。
   + 如需選取要包含的標籤，請選取**選擇要包含的標籤**，然後選取或輸入標籤索引鍵。

1. 選擇**儲存**。

------
#### [ AWS CLI ]

**在事件通知中包含所有標籤**  
使用 [register-instance-event-notification-attributes](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-instance-event-notification-attributes.html) 命令並將 `IncludeAllTagsOfInstance` 參數設定為 `true`。

```
aws ec2 register-instance-event-notification-attributes \
    --instance-tag-attribute "IncludeAllTagsOfInstance=true"
```

**在事件通知中包含特定標籤**  
使用 [register-instance-event-notification-attributes](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-instance-event-notification-attributes.html) 命令，並使用 `InstanceTagKeys` 參數指定要包含的標籤。

```
aws ec2 register-instance-event-notification-attributes \
    --instance-tag-attribute 'InstanceTagKeys=["tag_key_1", "tag_key_2", "tag_key_3"]'
```

------
#### [ PowerShell ]

**在事件通知中包含所有標籤**  
使用 [Register-EC2InstanceEventNotificationAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2InstanceEventNotificationAttribute.html) cmdlet。

```
Register-EC2InstanceEventNotificationAttribute `
    -InstanceTagAttribute_IncludeAllTagsOfInstance $true
```

**在事件通知中包含特定標籤**  
使用 [Register-EC2InstanceEventNotificationAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2InstanceEventNotificationAttribute.html) cmdlet。

```
Register-EC2InstanceEventNotificationAttribute `
    -InstanceTagAttribute_InstanceTagKey tag_key_1, tag_key_2, tag_key_3
```

------

## 從事件通知中移除標籤
<a name="deregister-tags"></a>

可從事件通知中移除標籤。

------
#### [ Console ]

**從事件通知中移除標籤**

1. 在 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 選擇 **Actions (動作)**、**Manage event notifications (管理事件通知)**。

1. 若要從事件通知中移除所有標籤，請關閉**在事件通知中包含資源標籤**。

1. 若要從事件通知中移除特定標籤，請為對應的標籤索引鍵選擇 **X**)。

1. 選擇**儲存**。

------
#### [ AWS CLI ]

**從事件通知中移除所有標籤**  
使用 [deregister-instance-event-notification-attributes](https://docs.aws.amazon.com/cli/latest/reference/ec2/deregister-instance-event-notification-attributes.html) 命令並將 `IncludeAllTagsOfInstance` 參數設定為 `false`。

```
aws ec2 deregister-instance-event-notification-attributes \
    --instance-tag-attribute "IncludeAllTagsOfInstance=false"
```

**從事件通知中移除標籤**  
使用 [deregister-instance-event-notification-attributes](https://docs.aws.amazon.com/cli/latest/reference/ec2/deregister-instance-event-notification-attributes.html) 命令，並使用 `InstanceTagKeys` 參數指定要移除的標籤。

```
aws ec2 deregister-instance-event-notification-attributes \
    --instance-tag-attribute 'InstanceTagKeys=["tag_key_3"]'
```

------
#### [ PowerShell ]

**從事件通知中移除所有標籤**  
使用 [Unregister-EC2InstanceEventNotificationAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2InstanceEventNotificationAttribute.html) cmdlet。

```
Unregister-EC2InstanceEventNotificationAttribute `
    -InstanceTagAttribute_IncludeAllTagsOfInstance $false
```

**從事件通知中移除標籤**  
使用 [Unregister-EC2InstanceEventNotificationAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2InstanceEventNotificationAttribute.html) cmdlet。

```
Unregister-EC2InstanceEventNotificationAttribute `
    -InstanceTagAttribute_InstanceTagKey tag_key_3
```

------

## 檢視要包含在事件通知中的標籤
<a name="view-tags"></a>

可檢視要包含在事件通知中的標籤。

------
#### [ Console ]

**檢視要包含在事件通知中的標籤**

1. 在 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 選擇 **Actions (動作)**、**Manage event notifications (管理事件通知)**。

------
#### [ AWS CLI ]

**若要檢視要包含在事件通知中的標籤**  
使用 [describe-instance-event-notification-attributes](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-event-notification-attributes.html) 命令。

```
aws ec2 describe-instance-event-notification-attributes
```

------
#### [ PowerShell ]

**若要檢視要包含在事件通知中的標籤**  
使用 [Get-EC2InstanceEventNotificationAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceEventNotificationAttribute.html) cmdlet。

```
Get-EC2InstanceEventNotificationAttribute
```

------

# 重新排程 EC2 執行個體的排程事件
<a name="reschedule-event"></a>

您可以重新排程事件，使其發生在適合您的特定日期和時間。對事件進行重新排程後，可能需要一到兩分鐘才會顯示更新的日期。

**限制**
+ 只能重新排程有事件截止日期的事件。事件最晚可以重新排程到事件截止日期。**截止日期**資料欄 (主控台) 和 `NotBeforeDeadline` 欄位 (AWS CLI) 會顯示事件截止日期。
+ 只能重新排程尚未開始的事件。**開始時間**資料欄 (主控台) 和 `NotBefore` 欄位 (AWS CLI) 會顯示開始時間。已排程在接下來 5 分鐘內開始的事件不能重新排程。
+ 新的事件開始時間與目前時間至少必須相隔 60 分鐘。
+ 如果您使用主控台重新排程多個事件，則由具有最早事件截止日期的事件決定事件截止日期。

------
#### [ Console ]

**重新排程事件**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 從篩選清單中選擇 **Resource type: instance (資源類型：執行個體)**。

1. 選取一或多個執行個體，然後選擇 **Actions (動作)**、**Schedule event (排程事件)**。

   只能重新排程有事件截止日期 (由 **Deadline (截止日期)** 的值指出) 的事件。如果其中一個選取的事件沒有截止日期，則會停用 **Actions (動作)**、**Schedule event (排程事件)**。

1. 對於 **New start time (新增開始時間)**，輸入事件的新日期和時間。新的日期和時間必須發生在 **Event deadline (事件截止日期)** 之前。

1. 選擇**儲存**。

   更新後的事件開始時間可能需要一兩分鐘才會反映在主控台中。

------
#### [ AWS CLI ]

**重新排程事件**  
使用 [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-event-start-time.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-event-start-time.html) 命令。

```
aws ec2 modify-instance-event-start-time \
    --instance-id i-1234567890abcdef0 \
    --instance-event-id instance-event-0d59937288b749b32 \
    --not-before 2020-03-25T10:00:00.000
```

------
#### [ PowerShell ]

**重新排程事件**  
使用 [Edit-EC2InstanceEventStartTime](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceEventStartTime.html) cmdlet。

```
Edit-EC2InstanceEventStartTime `
    -InstanceId i-1234567890abcdef0 `
    -InstanceEventId instance-event-0d59937288b749b32 `
    -NotBefore 2020-03-25T10:00:00.000
```

------

# 為影響 Amazon EC2 執行個體的排程事件建立自訂事件時段
<a name="event-windows"></a>

您可以為重新啟動、停止或終止 Amazon EC2 執行個體的排程事件定義自訂每週重複的事件時段。您可以將一或多個執行個體關聯到事件時段。如果已計劃這些執行個體的排程事件， AWS 會在相關聯的事件時段中排程事件。

您可以使用事件時段，透過指定在工作負載離峰期間出現的事件時段，將工作負載可用性最大化。您也可以調整事件時段與內部維護排程。

可以透過指定一組時間範圍來定義事件時段。最短時間範圍為 2 小時。合併的時間範圍總計必須至少 4 小時。

您可以使用執行個體 ID 或執行個體標籤，將一或多個執行個體與事件時段建立關聯。您也可以使用主機 ID，將專用執行個體與事件時段建立關聯。

**警告**  
事件時段僅適用於停止、重新啟動或終止執行個體的排程事件。  
事件時段不適用於：  
快速排程事件和網路維護事件。
未排程的維護 (例如[自動執行個體復原](ec2-instance-recover.md)) 和未計劃的重新啟動。

**Topics**
+ [考量事項](#event-windows-considerations)
+ [建立事件時段](#create-event-windows)
+ [將目標與事件時段關聯](#associate-target-event-window)
+ [解除目標與事件時段的關聯](#disassociate-target-event-window)
+ [修改事件時段](#modify-event-windows)
+ [刪除事件時段](#delete-event-windows)

## 考量事項
<a name="event-windows-considerations"></a>
+ 所有事件時段的時間皆為 UTC 格式。
+ 事件時段可以包含多個時間範圍。雖然每個單獨範圍必須至少為 2 小時，但所有範圍的總持續時間必須至少為 4 小時。
+ 只有一個目標類型 (執行個體 ID、專用執行個體 ID 或執行個體標籤) 可以與事件時段關聯。
+ 一個目標類型 (執行個體 ID、專用執行個體 ID 或執行個體標籤) 只能與一個事件時段關聯。
+ 事件時段最多可與 100 個執行個體 ID 或 50 個專用執行個體 ID 或 50 個執行個體標籤相關聯。執行個體標籤可與任意數量的執行個體關聯。
+ 每個 AWS 區域最多可建立 200 個事件時段。
+ 與事件時段相關聯的多個執行個體可能會同時發生排程事件。
+ 如果 AWS 已排程事件，修改事件時段不會變更排程事件的時間。如果事件有截止日期，您可以[重新排程事件](reschedule-event.md)。
+ 可以在排程事件之前停止和啟動執行個體。這會將執行個體移轉至新主機並清除事件。

## 建立事件時段
<a name="create-event-windows"></a>

您可以建立一或多個事件時段。對於每個事件時段，您可以指定一個或多個時間段。例如，您可以建立一個事件時段，其時間段為每天凌晨 4 點開始，持續 2 小時。或者，您可以建立一個事件時段，其時間段為星期日凌晨 2 點到凌晨 4 點和星期三凌晨 3 點到凌晨 5 點。

事件時段會每週重複出現，直到您刪除為止。

------
#### [ Console ]

**建立事件時段**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 選擇 **Actions** (動作)、**Manage event windows** (管理事件時段)。

1. 選擇 **Create instance event window** (建立執行個體事件時段)。

1. 對於 **Event window name** (事件時段名稱)，輸入事件時段的描述性名稱。

1. 對於 **Event window schedule** (事件時段排程)，透過使用 cron 排程建置器或指定時間範圍，進行選擇以在事件時段中指定時間段。
   + 如果選擇 **Cron schedule builder** (Cron 排程建置器)，請指定以下內容：

     1. 對於 **Days (UTC)** (天 (UTC))，指定事件時段發生的星期日。

     1. 對於 **Start time (UTC)** (開始時間 (UTC))，指定事件時段開始的時間。

     1. 對於 **Duration** (持續時間)，在事件時段中指定時間段的持續時間。每個時間段的最短持續時間為 2 小時。事件時段的最短持續時間總計必須等於或超過 4 小時。所有時間均以 UTC 表示。
   + 如果選擇 **Time ranges** (時間範圍)，請選擇 **Add new time range** (新增時間範圍)，然後指定開始日期和時間以及結束日期和時間。對每個時間範圍重複此步驟。每個時間範圍的最短持續時間為 2 小時。所有時間範圍合併的最小持續時間總計必須等於或超過 4 小時。

1. (選用) 如需**目標詳細資訊**，請將一個或多個執行個體與事件時段建立關聯。使用執行個體 ID 或執行個體標籤來關聯執行個體。使用主機 ID 來關聯專用主機。當對這些目標進行排程以進行維護時，事件將在此事件時段期間出現。

   請注意，您可以建立事件時段，而無需將目標與時段建立關聯。稍後，您可以修改時段以關聯一個或多個目標。

1. (選用) 對於 **Event window tags** (事件時段標籤)，選擇 **Add tag** (新增標籤)，然後輸入標籤的金鑰和值。針對每個標籤，重複執行上述動作。

1. 選擇 **Create event window** (建立事件時段)。

------
#### [ AWS CLI ]

**建立具有時間範圍的事件時段**  
使用 [create-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-instance-event-window.html) 命令。

```
aws ec2 create-instance-event-window \
    --time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8 \
    --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1}]" \
    --name myEventWindowName
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "TimeRanges": [
            {
                "StartWeekDay": "monday",
                "StartHour": 2,
                "EndWeekDay": "wednesday",
                "EndHour": 8
            }
        ],
        "Name": "myEventWindowName",
        "State": "creating",
        "Tags": [
            {
                "Key": "K1",
                "Value": "V1"
            }
        ]
    }
}
```

**透過 cron 表達式建立事件時段**  
使用 [create-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-instance-event-window.html) 命令。

```
aws ec2 create-instance-event-window \
    --cron-expression "* 21-23 * * 2,3" \
    --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1}]" \
    --name myEventWindowName
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "State": "creating",
        "Tags": [
            {
                "Key": "K1",
                "Value": "V1"
            }
        ]
    }
}
```

------
#### [ PowerShell ]

**建立具有時間範圍的事件時段**  
使用 [New-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2InstanceEventWindow.html) cmdlet。

```
$timeRange = New-Object Amazon.EC2.Model.InstanceEventWindowTimeRangeRequest
$timeRange.StartWeekDay = "monday"
$timeRange.EndWeekDay = "wednesday"
$timeRange.StartHour = 2
$timeRange.EndHour = 8
$tag = @{Key="key1"; Value="value1"}
$tagspec = New-Object Amazon.EC2.Model.TagSpecification
$tagspec.ResourceType = "instance-event-window"
$tagspec.Tags.Add($tag)
New-EC2InstanceEventWindow `
    -Name my-event-window `
    -TagSpecification $tagspec `
    -TimeRange @($timeRange)
```

以下為範例輸出。

```
AssociationTarget     : 
CronExpression        : 
InstanceEventWindowId : iew-0abcdef1234567890
Name                  : my-event-window
State                 : creating
Tags                  : {key1}
TimeRanges            : {Amazon.EC2.Model.InstanceEventWindowTimeRange}
```

**透過 cron 表達式建立事件時段**  
使用 [New-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2InstanceEventWindow.html) cmdlet。

```
$tag = @{Key="key1"; Value="value1"}
$tagspec = New-Object Amazon.EC2.Model.TagSpecification
$tagspec.ResourceType = "instance-event-window"
$tagspec.Tags.Add($tag)
New-EC2InstanceEventWindow `
    -Name my-event-window `
    -TagSpecification $tagspec`
    -CronExpression "* 21-23 * * 2,3"
```

以下為範例輸出。

```
AssociationTarget     : 
CronExpression        : * 21-23 * * 2,3
InstanceEventWindowId : iew-0abcdef1234567890
Name                  : my-event-window
State                 : creating
Tags                  : {key1}
TimeRanges            : {}
```

------

## 將目標與事件時段關聯
<a name="associate-target-event-window"></a>

建立事件時段後，可以將目標與事件時段建立關聯。只能將一種類型的目標與事件時段建立關聯。可以指定執行個體 ID、專用主機 ID 或執行個體標籤。

------
#### [ Console ]

**若要將目標與事件時段關聯**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 選取要修改的事件時段。

1. 選擇**動作**、**修改執行個體事件時段**。

------
#### [ AWS CLI ]

**將執行個體標籤與事件時段關聯**  
使用 [associate-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-instance-event-window.html) 命令。

```
aws ec2 associate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "InstanceTags=[{Key=k2,Value=v2},{Key=k1,Value=v1}]"
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [],
            "Tags": [
                {
                    "Key": "k2",
                    "Value": "v2"
                },
                {
                    "Key": "k1",
                    "Value": "v1"
                }
            ],
            "DedicatedHostIds": []
        },
        "State": "creating"
    }
}
```

**若要將執行個體 ID 與事件時段建立關聯**  
使用 [associate-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-instance-event-window.html) 命令。

```
aws ec2 associate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "InstanceIds=i-1234567890abcdef0,i-0598c7d356eba48d7"
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [
                "i-1234567890abcdef0",
                "i-0598c7d356eba48d7"
            ],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating"
    }
}
```

**將專用執行個體與事件時段關聯**  
使用 [associate-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-instance-event-window.html) 命令。

```
aws ec2 associate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "DedicatedHostIds=h-029fa35a02b99801d"
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [],
            "Tags": [],
            "DedicatedHostIds": [
                "h-029fa35a02b99801d"
            ]
        },
        "State": "creating"
    }
}
```

------
#### [ PowerShell ]

**將執行個體標籤與事件時段關聯**  
使用 [Register-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2InstanceEventWindow.html) cmdlet。

```
$tag1 = @{Key="key1"; Value="value1"}
$tag2 = @{Key="key2"; Value="value2"}
Register-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -AssociationTarget_InstanceTag @($tag1,$tag2)
```

**若要將執行個體 ID 與事件時段建立關聯**  
使用 [Register-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2InstanceEventWindow.html) cmdlet。

```
Register-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -AssociationTarget_InstanceId i-1234567890abcdef0, i-0598c7d356eba48d7
```

**將專用執行個體與事件時段關聯**  
使用 [Register-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2InstanceEventWindow.html) cmdlet。

```
Register-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -AssociationTarget_DedicatedHostId h-029fa35a02b99801d
```

------

## 解除目標與事件時段的關聯
<a name="disassociate-target-event-window"></a>

------
#### [ Console ]

**若要解除目標與事件時段的關聯**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 選取要修改的事件時段。

1. 選擇**動作**、**修改執行個體事件時段**。

------
#### [ AWS CLI ]

**解除執行個體標籤與事件時段的關聯**  
使用 [disassociate-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference//ec2/disassociate-instance-event-window.html) 命令。

```
aws ec2 disassociate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "InstanceTags=[{Key=k2,Value=v2},{Key=k1,Value=v1}]"
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating"
    }
}
```

**若要解除執行個體 ID 與事件時段的關聯**  
使用 [disassociate-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/disassociate-instance-event-window.html) 命令。

```
aws ec2 disassociate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "InstanceIds=i-1234567890abcdef0,i-0598c7d356eba48d7"
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating"
    }
}
```

**解除專用執行個體與事件時段的關聯**  
使用 [disassociate-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/disassociate-instance-event-window.html) 命令。

```
aws ec2 disassociate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target DedicatedHostIds=h-029fa35a02b99801d
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating"
    }
}
```

------
#### [ PowerShell ]

**解除執行個體標籤與事件時段的關聯**  
使用 [Unregister-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2InstanceEventWindow.html) cmdlet。

```
$tag1 = @{Key="key1"; Value="value1"}
$tag2 = @{Key="key2"; Value="value2"}
Unregister-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -AssociationTarget_InstanceTag @($tag1, $tag2)
```

**若要解除執行個體 ID 與事件時段的關聯**  
使用 [Unregister-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2InstanceEventWindow.html) cmdlet。

```
Unregister-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -AssociationTarget_InstanceId i-1234567890abcdef0, i-0598c7d356eba48d7
```

**解除專用執行個體與事件時段的關聯**  
使用 [Unregister-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2InstanceEventWindow.html) cmdlet。

```
Unregister-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -AssociationTarget_DedicatedHostId h-029fa35a02b99801d
```

------

## 修改事件時段
<a name="modify-event-windows"></a>

您可以修改事件時段的所有欄位，但其 ID 除外。例如，當日光節約時間開始時，您可能想要修改事件時段排程。對於現有事件時段，您可能會想要新增或移除目標。

您可以在修改事件時段時修改時間範圍或 cron 表達式，但不能同時修改兩者。

------
#### [ Console ]

**修改事件時段**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 選擇 **Actions** (動作)、**Manage event windows** (管理事件時段)。

1. 選取要修改的事件時段，然後選擇 **Actions** (動作)、**Modify instance event window** (修改執行個體事件時段)。

1. 修改事件時段中的欄位，然後選擇 **Modify event window** (修改事件時段)。

------
#### [ AWS CLI ]

**修改事件時段的時間範圍**  
使用 [modify-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-event-window.html) 命令。

```
aws ec2 modify-instance-event-window 
    --instance-event-window-id iew-0abcdef1234567890 \
    --time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "TimeRanges": [
            {
                "StartWeekDay": "monday",
                "StartHour": 2,
                "EndWeekDay": "wednesday",
                "EndHour": 8
            }
        ],
        "Name": "myEventWindowName",
        "AssociationTarget": {
            "InstanceIds": [
                "i-0abcdef1234567890",
                "i-0be35f9acb8ba01f0"
            ],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating",
        "Tags": [
            {
                "Key": "K1",
                "Value": "V1"
            }
        ]
    }
}
```

**修改事件時段的一組時間範圍**  
使用 [modify-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-event-window.html) 命令。

```
aws ec2 modify-instance-event-window 
    --instance-event-window-id iew-0abcdef1234567890 \
    --time-range '[{"StartWeekDay": "monday", "StartHour": 2, "EndWeekDay": "wednesday", "EndHour": 8},
	  {"StartWeekDay": "thursday", "StartHour": 2, "EndWeekDay": "friday", "EndHour": 8}]'
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "TimeRanges": [
            {
                "StartWeekDay": "monday",
                "StartHour": 2,
                "EndWeekDay": "wednesday",
                "EndHour": 8
            },
            {
                "StartWeekDay": "thursday",
                "StartHour": 2,
                "EndWeekDay": "friday",
                "EndHour": 8
            }
        ],
        "Name": "myEventWindowName",
        "AssociationTarget": {
            "InstanceIds": [
                "i-0abcdef1234567890",
                "i-0be35f9acb8ba01f0"
            ],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating",
        "Tags": [
            {
                "Key": "K1",
                "Value": "V1"
            }
        ]
    }
}
```

**修改事件時段的 cron 表達式**  
使用 [modify-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-event-window.html) 命令。

```
aws ec2 modify-instance-event-window 
    --instance-event-window-id iew-0abcdef1234567890 \
    --cron-expression "* 21-23 * * 2,3"
```

以下為範例輸出。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [
                "i-0abcdef1234567890",
                "i-0be35f9acb8ba01f0"
            ],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating",
        "Tags": [
            {
                "Key": "K1",
                "Value": "V1"
            }
        ]
    }
}
```

------
#### [ PowerShell ]

**修改事件時段的時間範圍**  
使用 [Edit-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceEventWindow.html) cmdlet。

```
$timeRange1 = New-Object Amazon.EC2.Model.InstanceEventWindowTimeRangeRequest
$timeRange1.StartWeekDay = "monday"
$timeRange1.EndWeekDay = "wednesday"
$timeRange1.StartHour = 2
$timeRange1.EndHour = 8
$timeRange2 = New-Object Amazon.EC2.Model.InstanceEventWindowTimeRangeRequest
$timeRange2.StartWeekDay = "thursday"
$timeRange2.EndWeekDay = "friday"
$timeRange2.StartHour = 1
$timeRange2.EndHour = 6
Edit-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -TimeRange @($timeRange1, $timeRange2)
```

**修改事件時段的 cron 表達式**  
使用 [Edit-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceEventWindow.html) cmdlet。

```
Edit-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -CronExpression "* 21-23 * * 2,3"
```

------

## 刪除事件時段
<a name="delete-event-windows"></a>

可以一次刪除一個事件時段。

------
#### [ Console ]

**刪除事件時段**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Events** (事件)。

1. 選擇 **Actions** (動作)、**Manage event windows** (管理事件時段)。

1. 選取要刪除的事件時段，然後選擇 **Actions** (動作)、**Delete instance event window** (刪除執行個體事件時段)。

1. 當出現提示時，輸入 **delete**，然後選擇 **Delete (刪除)**。

------
#### [ AWS CLI ]

**刪除事件時段**  
使用 [delete-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-instance-event-window.html) 命令，然後指定要刪除的事件時段。

```
aws ec2 delete-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890
```

**若要強制刪除事件時段**  
使用 `--force-delete` 參數 (如果事件時段目前與目標相關聯)。

```
aws ec2 delete-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --force-delete
```

------
#### [ PowerShell ]

**刪除事件時段**  
使用 [Remove-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2InstanceEventWindow.html) cmdlet。

```
Remove-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890
```

**若要強制刪除事件時段**  
使用 [Remove-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2InstanceEventWindow.html) cmdlet。

```
Remove-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -ForceDelete $true
```

------