

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

# 在 EC2 執行個體上自動執行操作，以回應 中的事件 AWS Health
<a name="automating-instance-actions"></a>

您可以自動化回應 Amazon EC2 執行個體排程事件的動作。當 AWS Health 將事件傳送到 AWS 您的帳戶時，您的 EventBridge 規則接著可以叫用 AWS Systems Manager 自動化文件等目標，以代表您自動執行動作。

例如，當排程 Amazon EC2執行個體的 Amazon EC2 執行個體淘汰事件時， AWS Health 會將`AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED`事件類型傳送至您的 AWS Health Dashboard。當您的規則偵測到此事件類型時，您可以自動停止和啟動執行個體。如此一來，您就不必手動執行這些動作。

**注意**  
若要自動化 Amazon EC2 執行個體的動作，執行個體必須由 Systems Manager 管理。

如需詳細資訊，請參閱《[Amazon EC2 使用者指南》中的使用 EventBridge 自動化](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/automating_with_cloudwatch_events.html) Amazon EC2。 *Amazon EC2 *

## 先決條件
<a name="prerequisites-automation-ec2-instances"></a>

您必須建立 AWS Identity and Access Management (IAM) 政策、建立 IAM 角色，以及更新角色的信任政策，才能建立規則。

### 建立 IAM 政策
<a name="create-iam-role-for-ssm-automation"></a>

請遵循此程序，為您的角色建立客戶管理政策。此政策提供角色代表您執行動作的許可。此程序在 IAM 主控台中使用 JSON 政策編輯器。

**建立 IAM 政策**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台。

1. 在導覽窗格中，選擇**政策**。

1. 選擇 **Create policy** (建立政策)。

1. 請選擇 **JSON** 標籤。

1. 複製下列 JSON，然後在編輯器中取代預設 JSON。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "ec2:StartInstances",
           "ec2:StopInstances",
           "ec2:DescribeInstanceStatus"
         ],
         "Resource": [
           "*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "ssm:*"
         ],
         "Resource": [
           "*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "sns:Publish"
         ],
         "Resource": [
           "arn:aws:sns:*:*:Automation*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "iam:PassRole"
         ],
         "Resource": "arn:aws:iam::123456789012:role/AutomationEVRole"
       }
     ]
   }
   ```

------

   1. 在 `Resource` 參數中，針對 Amazon Resource Name (ARN) 輸入 AWS 您的帳戶 ID。

   1. 您也可以取代角色名稱或使用預設值。此範例使用 *AutomationEVRole*。

1. 選擇下**一步：標籤**。

1. (選用) 您可使用標籤作為金鑰值對，將中繼資料新增至政策。

1. 選擇下**一步：檢閱**。

1. 在**檢閱政策**頁面上，輸入**名稱**，例如 *AutomationEVRolePolicy* 和選用的**描述**。

1. 檢閱**摘要**頁面以查看政策允許的許可。如果您對政策感到滿意，請選擇**建立政策**。

此政策定義角色可以採取的動作。若需詳細資訊，請參閱《IAM 使用者指南》中的[建立 IAM 政策 (主控台)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)。

### 建立 IAM 角色
<a name="creating-an-iam-role-for-ssm-automation"></a>

建立政策之後，必須建立 IAM 角色，並將政策連接到該角色。

**為 AWS 服務建立角色**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台。

1. 在導覽窗格中，選擇**角色**，然後選擇**建立角色**。

1. 對於 **Select type of trusted entity (選取信任的實體類型)**，選擇 **AWS service ( 服務)**。

1. 為您要允許 擔任此角色的服務選擇 **EC2**。

1. 選擇**下一步：許可**。

1. 輸入您建立的政策名稱，例如 *AutomationEVRolePolicy*，然後選取政策旁的核取方塊。

1. 選擇下**一步：標籤**。

1. (選用) 您可使用標籤作為金鑰值對，將中繼資料新增至角色。

1. 選擇下**一步：檢閱**。

1. 針對**角色名稱**，輸入 *AutomationEVRole*。此名稱必須與您建立之 IAM 政策的 ARN 中出現的名稱相同。

1. (選用) 在 **Role description (角色說明)** 中，輸入角色的說明。

1. 檢閱角色，然後選擇**建立角色**。

如需詳細資訊，請參閱《*IAM 使用者指南*》中的[為 AWS 服務建立角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console)。

### 更新信任政策
<a name="modify-trust-policy"></a>

最後，您可以更新所建立角色的信任政策。您必須完成此程序，才能在 EventBridge 主控台中選擇此角色。

**更新角色的信任政策**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台。

1. 在導覽窗格中，選擇**角色**。

1. 在 AWS 帳戶中的角色清單中，選擇您建立的角色名稱，例如 *AutomationEVRole*。

1. 選擇 **Trust Relationships (信任關係)** 標籤，然後選擇 **Edit Trust Relationship (編輯信任關係)**。

1. 針對**政策文件**，複製下列 JSON、移除預設政策，並將複製的 JSON 貼到其位置。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "ssm.amazonaws.com",
                       "events.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. 選擇 **Update Trust Policy** (更新信任政策)。

如需詳細資訊，請參閱《*IAM 使用者指南*》中的[修改角色信任政策 （主控台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy)。

## 建立 EventBridge 的規則
<a name="create-rule-for-ssm-automation"></a>

請依照此程序在 EventBridge 主控台中建立規則，以便您可以自動停止和啟動排程淘汰的 EC2 執行個體。

**建立適用於 Systems Manager 自動化動作的 EventBridge 規則**

1. 造訪 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在導覽窗格的 **Events** (事件) 下，選擇 **Rules** (規則)。

1. 在**建立規則**頁面上，輸入規則**的名稱**和**描述**。

1. 在 **Define pattern** (定義模式) 下，選擇 **Event pattern** (事件模式)，然後選擇 **Pre-defined pattern by service** (依服務預先定義模式)。

1. 針對**服務供應商**，選擇 **AWS**。

1. 針對**服務名稱**，選擇**運作狀態**。

1. 針對**事件類型**，選擇**特定運作狀態事件**。

1. 選擇**特定 （特定） 服務**，然後選擇 **EC2**。

1. 選擇**特定事件類型類別 (s)**，然後選擇 **scheduledChange**。

1. 選擇**特定事件類型程式碼 （程式碼）**，然後選擇事件類型程式碼。

   例如，對於 Amazon EC2 EBS 支援的執行個體，選擇 **`AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED`**。針對 Amazon EC2 執行個體後端執行個體，選擇 **`AWS_EC2_INSTANCE_RETIREMENT_SCHEDULED`**。

1. 選擇 **Any resource (任何資源)**。

   您的**事件模式**看起來會與下列範例類似。  
**Example**  

   ```
   {
     "source": [
       "aws.health"
     ],
     "detail-type": [
       "AWS Health Event"
     ],
     "detail": {
       "service": [
         "EC2"
       ],
       "eventTypeCategory": [
         "scheduledChange"
       ],
       "eventTypeCode": [
         "AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED"
       ]
     }
   }
   ```

1. 新增 Systems Manager Automation 文件目標。在**選取目標**下，針對**目標**選擇 **SSM 自動化**。

1. 對於 **Document** (文件)，請選擇 `AWS-RestartEC2Instance`。

1. 展開**設定自動化參數 （設定）**，然後選擇**輸入轉換器**。

1. 在**輸入路徑**欄位中，輸入 **`{"Instances":"$.resources"}`**。

1. 針對第二個欄位，輸入 **`{"InstanceId": <Instances>}`**。

1. 選擇**使用現有角色**，然後選擇您建立的 IAM 角色，例如 *AutomationEVRole*。

   您的目標看起來應該如下範例所示。  
![\[EventBridge 主控台中 "SSM Automation" 範例的螢幕擷取畫面。\]](http://docs.aws.amazon.com/zh_tw/health/latest/ug/images/event-bridge-event-pattern-ssm-automation.png)
**注意**  
如果您沒有具有必要 EC2 和 Systems Manager 許可和信任關係的現有 IAM 角色，您的角色將不會出現在清單中。如需詳細資訊，請參閱[先決條件](#prerequisites-automation-ec2-instances)。

1. 選擇**建立**。

   如果您的帳戶中發生符合您規則的事件，EventBridge 會將事件傳送至您指定的目標。