

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

# 使用 Amazon EventBridge 監控和以程式設計方式回應 EC2 機群或 Spot 機群發出的事件
<a name="monitor-ec2-fleet-using-eventbridge"></a>

當 EC2 機群或 Spot 機群的狀態發生變化時，機群會發出通知。通知會以傳送至 Amazon EventBridge (先前稱為 Amazon CloudWatch Events) 的事件形式提供使用。盡可能發出事件。

使用 Amazon EventBridge，您可以建立觸發程式設計動作以回應事件的規則。例如，您可以建立兩個 EventBridge 規則：一個是在機群狀態變更時觸發的規則，另一個是在機群中的執行個體終止時觸發的規則。在此例中，如果機群狀態變化，您可以設定第一個規則，以便規則可叫用 SNS 主題來向您傳送電子郵件通知。如果機群中的執行個體終止，您可以設定第二個規則，以便規則可叫用 Lambda 函數來啟動新執行個體。

**注意**  
只有類型 `maintain` 和 `request` 的機群會發出事件。類型 `instant` 的機群不會發出事件，因為它們提交一次性的同步請求，而且在回應中會立即知道機群的狀態。若要使用 Amazon EventBridge 監控機群事件，請求類型必須為 `maintain` 或 `request`。

如需如何描述機群事件歷史記錄的說明，請參閱 [說明 EC2 機群的事件歷史記錄](describe-ec2-fleet.md#describe-ec2-fleet-event-history)。

**Topics**
+ [建立 Amazon EventBridge 規則來監控 EC2 機群或 Spot 機群事件](#fleet_create-eventbridge-rules)
+ [EC2 機群 事件類型](#ec2-fleet-event-types)
+ [Spot 機群事件類型](#spot-fleet-event-types)

## 建立 Amazon EventBridge 規則來監控 EC2 機群或 Spot 機群事件
<a name="fleet_create-eventbridge-rules"></a>

當發出 EC2 機群或 Spot 機群的狀態變化通知時，該通知會以 JSON 檔案，以事件的形式傳送至 Amazon EventBridge。如果 EventBridge 偵測到事件模式符合規則中定義的模式，EventBridge 會叫用規則中指定的目標 (或多個目標)。

您可以撰寫 EventBridge 規則，根據相符的事件模式自動執行動作。

事件中的下列欄位會形成規則中定義的事件模式：

`"source": "aws.ec2fleet"`  
識別事件來自 EC2 機群。

`"detail-type": "EC2 Fleet State Change"`  
識別事件類型。

`"detail": { "sub-type": "submitted" }`  
識別事件子類型。

如需 EC2 機群和 Spot 機群事件和範例事件資料的清單，請參閱 [EC2 機群 事件類型](#ec2-fleet-event-types) 和 [Spot 機群事件類型](#spot-fleet-event-types)。

**Topics**
+ [建立傳送通知的 EventBridge 規則](#eventbridge-send-notification)
+ [建立一個 EventBridge 規則來觸發 Lambda 函數](#eventbridge-trigger-lambda)

### 建立傳送通知的 EventBridge 規則
<a name="eventbridge-send-notification"></a>

下列範例會建立 EventBridge 規則，以在每次 Amazon EC2 發出 EC2 機群狀態變更通知時傳送電子郵件、文字訊息或行動推送通知。將發出此範例中的訊號作為 `EC2 Fleet State Change` 事件，這會觸發規則定義的動作。

**先決條件**  
建立 EventBridge 規則之前，您必須針對電子郵件、文字訊息或行動推送通知建立 Amazon SNS 主題。

**建立 EventBridge 規則以在 EC2 機群狀態變更時傳送通知**

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

1. 選擇 **Create rule** (建立規則)。

1. 針對 **Define rule detail** (定義規則詳細資訊) 執行下列動作：

   1. 輸入規則的**Name (名稱)**，或者輸入描述。

      在同一個區域和同一個事件匯流排上，規則不能與另一個規則同名。

   1. 針對**事件匯流排**選擇**預設值**。當您帳戶中 AWS 的服務產生事件時，一律會前往您帳戶的預設事件匯流排。

   1. 針對**規則類型**，選擇**具有事件模式的規則**。

   1. 選擇**下一步**。

1. 針對 **Build event pattern** (建置事件模式) 執行下列動作：

   1. 在 **Event source** (事件來源) 欄位中，選擇 **AWS events or EventBridge partner events** (事件或 EventBridge 合作夥伴事件)。

   1. 針對此範例的 **Event pattern** (事件模式)，您需指定下列事件模式，以便與 `EC2 Fleet Instance Change` 事件相符。

      ```
      {
       "source": ["aws.ec2fleet"],
       "detail-type": ["EC2 Fleet Instance Change"]
      }
      ```

      若要新增事件模式，您可以透過選擇 **Event pattern form** (事件模式表單) 使用範本，或者透過選擇 **Custom pattern (JSON editor)** (自定義模式 (JSON 編輯器)) 指定自有模式，如下：

      1. 若要使用範本建立事件模式，請執行下列動作：

         1. 選擇 **Event pattern form** (事件模式表單)。

         1. 在 **Event source** (事件來源) 欄位中，選擇 **AWS services** (服務)。

         1. 針對 **AWS Service** (服務)，請選擇 **EC2 Fleet** (EC2 機群)。

         1. 針對 **Event type** (事件類型)，選擇 **EC2 Fleet Instance Change** (EC2 機群執行個體變更)。

         1. 若要自訂範本，請選擇 **Edit pattern** (編輯模式) 並進行變更以與範例事件模式相符。

      1. (替代) 若要指定自訂事件模式，請執行下列動作：

         1. 選擇 **Custom pattern (JSON editor)** (自訂模式 (JSON 編輯器))。

         1. 在 **Event pattern** (事件模式) 方塊中，為此範例新增事件模式。

   1. 選擇**下一步**。

1. 針對 **Select target(s)** (選取目標) 執行下列動作：

   1. 在 **Target types** (目標類型) 欄位中，選擇 **AWS service** (服務)。

   1. 針對 **Select a target** (選取目標) 選取 ** SNS topic** (SNS 主題)，以便在事件發生時傳送電子郵件、簡訊或行動裝置推送通知。

   1. 針對 **Topic (主題)**，請選擇現有的主題。您首先需要使用 Amazon SNS 主控台建立 Amazon SNS 主題。如需詳細資料，請參閱「Amazon Simple Notification Service 開發人員指南」**中的[使用 Amazon SNS 進行應用程式至人員 (A2P) 訊息](https://docs.aws.amazon.com//sns/latest/dg/sns-user-notifications.html)。

   1. (選用) 在 **Additional settings** (其他設定) 下，您可以選擇性地設定其他設定。如需詳細資訊，請參閱「Amazon EventBridge 使用者指南」**中的[建立對事件做出反應的 Amazon EventBridge 規則](https://docs.aws.amazon.com//eventbridge/latest/userguide/eb-create-rule.html) (步驟 16)。

   1. 選擇**下一步**。

1. (選用) 針對 **Tags** (標籤)，您可以選擇性地將一或多個標籤指派給您的規則，然後選擇 **Next** (下一步)。

1. 針對 **Review and create** (檢閱和建立) 執行下列動作：

   1. 檢閱規則的詳細資訊，然後視需求進行修改。

   1. 選擇**建立規則**。

如需詳細資訊，請參閱 *Amazon EventBridge 使用者指南*中的 [Amazon EventBridge 規則](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)和 [Amazon EventBridge 事件模式](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)。

### 建立一個 EventBridge 規則來觸發 Lambda 函數
<a name="eventbridge-trigger-lambda"></a>

下列範例會建立 EventBridge 規則，以在每次 Amazon EC2 因執行個體啟動時發出 EC2 機群執行個體變更通知時觸發 Lambda 函數。將發出此範例中的訊號作為 `EC2 Fleet Instance Change` 事件 (子類型 `launched`)，這會觸發規則定義的動作。

在建立 EventBridge 規則之前，您必須建立 Lambda 函數。

**建立要在 EventBridge 規則中使用的 Lambda 函數**

1. 在 https：//[https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/) 開啟 AWS Lambda 主控台。

1. 選擇 **Create function** (建立函式)。

1. 輸入函數的名稱、設定程式碼，然後選擇 **Create function (建立函數)**。

   如需詳細資訊，請參閱《*AWS Lambda 開發人員指南*》中的[建立您的第一個 Lambda 函式](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html)。

**建立 EventBridge 規則以在執行個體處於 EC2 機群變更狀態時觸發 Lambda 函數**

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

1. 選擇 **Create rule** (建立規則)。

1. 針對 **Define rule detail** (定義規則詳細資訊) 執行下列動作：

   1. 輸入規則的**Name (名稱)**，或者輸入描述。

      在同一個區域和同一個事件匯流排上，規則不能與另一個規則同名。

   1. 針對**事件匯流排**選擇**預設值**。當您帳戶中 AWS 的服務產生事件時，一律會前往您帳戶的預設事件匯流排。

   1. 針對**規則類型**，選擇**具有事件模式的規則**。

   1. 選擇**下一步**。

1. 針對 **Build event pattern** (建置事件模式) 執行下列動作：

   1. 在 **Event source** (事件來源) 欄位中，選擇 **AWS events or EventBridge partner events** (事件或 EventBridge 合作夥伴事件)。

   1. 針對此範例的 **Event pattern** (事件模式)，您需指定下列事件模式，以便與 `EC2 Fleet Instance Change` 事件和 `launched` 子類型相符。

      ```
      {
       "source": ["aws.ec2fleet"],
       "detail-type": ["EC2 Fleet Instance Change"],
       "detail": {
         "sub-type": ["launched"]
      }
      ```

      若要新增事件模式，您可以透過選擇 **Event pattern form** (事件模式表單) 使用範本，或者透過選擇 **Custom pattern (JSON editor)** (自定義模式 (JSON 編輯器)) 指定自有模式，如下：

      1. 若要使用範本建立事件模式，請執行下列動作：

         1. 選擇 **Event pattern form** (事件模式表單)。

         1. 在 **Event source** (事件來源) 欄位中，選擇 **AWS services** (服務)。

         1. 針對 **AWS Service** (服務)，請選擇 **EC2 Fleet** (EC2 機群)。

         1. 針對 **Event type** (事件類型)，選擇 **EC2 Fleet Instance Change** (EC2 機群執行個體變更)。

         1. 選擇 **Edit pattern** (編輯模式)，並新增 `"detail": {"sub-type": ["launched"]` 以符合範例事件模式。若要獲得正確的 JSON 格式，請在前方括號 (`]`) 之後插入一個逗號 (`,`)。

      1. (替代) 若要指定自訂事件模式，請執行下列動作：

         1. 選擇 **Custom pattern (JSON editor)** (自訂模式 (JSON 編輯器))。

         1. 在 **Event pattern** (事件模式) 方塊中，為此範例新增事件模式。

   1. 選擇**下一步**。

1. 針對 **Select target(s)** (選取目標) 執行下列動作：

   1. 在 **Target types** (目標類型) 欄位中，選擇 **AWS service** (服務)。

   1. 針對 **Select a target** (選取目標) 選取 ** SNS topic** (SNS 主題)，以便在事件發生時傳送電子郵件、簡訊或行動裝置推送通知。

   1. 針對 **Topic** (主題)，請選擇 **Lambda function** (Lambda 函數)，然後在 **Function** (函數) 中選擇您建立的函數，以便在事件發生時回應。

   1. (選用) 在 **Additional settings** (其他設定) 下，您可以選擇性地設定其他設定。如需詳細資訊，請參閱「Amazon EventBridge 使用者指南」**中的[建立對事件做出反應的 Amazon EventBridge 規則](https://docs.aws.amazon.com//eventbridge/latest/userguide/eb-create-rule.html) (步驟 16)。

   1. 選擇**下一步**。

1. (選用) 針對 **Tags** (標籤)，您可以選擇性地將一或多個標籤指派給您的規則，然後選擇 **Next** (下一步)。

1. 針對 **Review and create** (檢閱和建立) 執行下列動作：

   1. 檢閱規則的詳細資訊，然後視需求進行修改。

   1. 選擇**建立規則**。

如需如何建立 Lambda 函數和執行 Lambda 函數的 EventBridge 規則的教學課程，請參閱 *AWS Lambda 開發人員指南*中的[教學課程：使用 EventBridge 記錄 Amazon EC2 執行個體的狀態](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-log-ec2-instance-state.html)。

## EC2 機群 事件類型
<a name="ec2-fleet-event-types"></a>

有五種 EC2 機群 事件類型。每個事件類型都有數個子類型。

**Topics**
+ [EC2 機群狀態變更](#ec2-fleet-state-change)
+ [EC2 機群Spot 執行個體請求變更](#ec2-fleet-spot-instance-request-change)
+ [EC2 機群執行個體變更](#ec2-fleet-instance-change)
+ [EC2 機群資訊](#ec2-fleet-info)
+ [EC2 機群錯誤](#ec2-fleet-config-not-valid)

### EC2 機群狀態變更
<a name="ec2-fleet-state-change"></a>

EC2 機群會在 EC2 機群變更狀態時將 `EC2 Fleet State Change` 事件傳送至 Amazon EventBridge。

以下是此事件的範例資料。

```
{
    "version": "0",
    "id": "715ed6b3-b8fc-27fe-fad6-528c7b8bf8a2",
    "detail-type": "EC2 Fleet State Change",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-11-09T09:00:20Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-598fb973-87b7-422d-be4d-6b0809bfff0a"
    ],
    "detail": {
        "sub-type": "active"
    }
}
```

`sub-type` 的可能值為：

`active`  
EC2 機群請求已驗證且 Amazon EC2 正在嘗試維持執行中的執行個體目標數目。

`deleted`  
EC2 機群 請求已刪除，且無執行中的執行個體。EC2 機群 會在其執行個體終止之後兩天刪除。

`deleted_running`  
EC2 機群 請求已刪除，且不會啟動其他執行個體。其現有執行個體將繼續執行直到中斷或終止。此請求會一直維持在該狀態，直到所有執行個體中斷或終止。

`deleted_terminating`  
EC2 機群請求已刪除，且其執行個體已終止。此請求會一直維持在該狀態，直到所有執行個體終止。

`expired`  
EC2 機群請求已過期。如果請求是使用 `TerminateInstancesWithExpiration` 集建立的，後續 `terminated` 事件會指出已終止執行個體。

`modify_in_progress`  
正在修改 EC2 機群請求。請求會一直維持在此狀態，直到已完成修改。

`modify_succeeded`  
EC2 機群請求已修改。

`submitted`  
正在評估 EC2 機群請求且 Amazon EC2 正準備啟動執行個體的目標數量。

`progress`  
EC2 機群請求正在履行的過程中。

### EC2 機群Spot 執行個體請求變更
<a name="ec2-fleet-spot-instance-request-change"></a>

EC2 機群會在機群中的 Spot 執行個體請求變更狀態時將 `EC2 Fleet Spot Instance Request Change` 事件傳送至 Amazon EventBridge。

以下是此事件的範例資料。

```
{
    "version": "0",
    "id": "19331f74-bf4b-a3dd-0f1b-ddb1422032b9",
    "detail-type": "EC2 Fleet Spot Instance Request Change",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-11-09T09:00:05Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-83fd4e48-552a-40ef-9532-82a3acca5f10"
    ],
    "detail": {
        "spot-instance-request-id": "sir-rmqske6h",
        "description": "SpotInstanceRequestId sir-rmqske6h, PreviousState: cancelled_running",
        "sub-type": "cancelled"
    }
}
```

`sub-type` 的可能值為：

`active`  
Spot 執行個體請求已履行，並具有關聯的 Spot 執行個體。

`cancelled`  
您已取消 Spot 執行個體請求，或 Spot 執行個體請求已過期。

`disabled`  
您已停用 Spot 執行個體。

`submitted`  
已提交 Spot 執行個體請求。

### EC2 機群執行個體變更
<a name="ec2-fleet-instance-change"></a>

EC2 機群會在機群中的執行個體變更狀態時將 `EC2 Fleet Instance Change` 事件傳送至 Amazon EventBridge。

以下是此事件的範例資料。

```
{
    "version": "0",
    "id": "542ce428-c8f1-0608-c015-e8ed6522c5bc",
    "detail-type": "EC2 Fleet Instance Change",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-11-09T09:00:23Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-598fb973-87b7-422d-be4d-6b0809bfff0a"
    ],
    "detail": {
        "instance-id": "i-0c594155dd5ff1829",
        "description": "{\"instanceType\":\"c5.large\",\"image\":\"ami-6057e21a\",\"productDescription\":\"Linux/UNIX\",\"availabilityZone\":\"us-east-1d\"}",
        "sub-type": "launched"
    }
}
```

`sub-type` 的可能值為：

`launched`  
已啟動新執行個體。

`terminated`  
已終止執行個體。

`termination_notified`  
Amazon EC2 在縮減規模期間終止 Spot 執行個體，也就是機群的目標容量向下修改 (例如，從目標容量 4 變為 3) 時，系統會傳送執行個體終止通知。

### EC2 機群資訊
<a name="ec2-fleet-info"></a>

EC2 機群會在履行期間發生錯誤時傳送 `EC2 Fleet Information` 事件至 Amazon EventBridge。此資訊事件不會封鎖機群嘗試履行其目標容量。

以下是此事件的範例資料。

```
{
    "version": "0",
    "id": "76529817-d605-4571-7224-d36cc1b2c0c4",
    "detail-type": "EC2 Fleet Information",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-11-09T08:17:07Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-8becf5fe-bb9e-415d-8f54-3fa5a8628b91"
    ],
    "detail": {
        "description": "c4.xlarge, ami-0947d2ba12ee1ff75, Linux/UNIX, us-east-1a, Spot price in either SpotFleetRequestConfigData or SpotFleetLaunchSpecification or LaunchTemplate or LaunchTemplateOverrides is less than Spot market price $0.0619",
        "sub-type": "launchSpecUnusable"
    }
}
```

`sub-type` 的可能值為：

`fleetProgressHalted`  
每個啟動規格中的價格無效，因為價格低於 Spot 價格 (所有啟動規格都已產生 `launchSpecUnusable` 事件)。如果 Spot 價格變動，啟動規格則可能會變成有效。

`launchSpecTemporarilyBlacklisted`  
組態無效，且多次嘗試啟動執行個體失敗。如需詳細資訊，請參閱事件的描述。

`launchSpecUnusable`  
啟動規格中的價格無效，因為價格低於 Spot 價格。

`registerWithLoadBalancersFailed`  
嘗試在負載平衡器失敗時註冊執行個體。如需詳細資訊，請參閱事件的描述。

### EC2 機群錯誤
<a name="ec2-fleet-config-not-valid"></a>

EC2 機群會在履行期間發生錯誤時傳送 `EC2 Fleet Error` 事件至 Amazon EventBridge。錯誤事件會阻止機群嘗試履行其目標容量。

以下是此事件的範例資料。

```
{
    "version": "0",
    "id": "69849a22-6d0f-d4ce-602b-b47c1c98240e",
    "detail-type": "EC2 Fleet Error",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-10-07T01:44:24Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-9bb19bc6-60d3-4fd2-ae47-d33e68eafa08"
    ],
    "detail": {
        "description": "m3.large, ami-00068cd7555f543d5, Linux/UNIX: IPv6 is not supported for the instance type 'm3.large'. ",
        "sub-type": "spotFleetRequestConfigurationInvalid"
    }
}
```

`sub-type` 的可能值為：

`iamFleetRoleInvalid`  
EC2 機群沒有啟動或終止執行個體所需的許可。

`allLaunchSpecsTemporarilyBlacklisted`  
沒有任何組態是有效的，且多次嘗試啟動執行個體失敗。如需詳細資訊，請參閱事件的描述。

`spotInstanceCountLimitExceeded`  
您已達到可啟動 Spot 執行個體的數目上限。

`spotFleetRequestConfigurationInvalid`  
組態無效。如需詳細資訊，請參閱事件的描述。

## Spot 機群事件類型
<a name="spot-fleet-event-types"></a>

有五種 Spot 機群事件類型。每個事件類型都有數個子類型。

**Topics**
+ [EC2 Spot 機群狀態變更](#spot-fleet-state-change)
+ [EC2 Spot 機群Spot 執行個體請求變更](#spot-fleet-spot-instance-request-change)
+ [EC2 Spot 機群執行個體變更](#spot-fleet-instance-change)
+ [EC2 Spot 機群資訊](#spot-fleet-info)
+ [EC2 Spot 機群錯誤](#spot-fleet-config-not-valid)

### EC2 Spot 機群狀態變更
<a name="spot-fleet-state-change"></a>

Spot 機群會在 Spot 機群變更狀態時將 `EC2 Spot Fleet State Change` 事件傳送至 Amazon EventBridge 。

以下是此事件的範例資料。

```
{
    "version": "0",
    "id": "d1af1091-6cc3-2e24-203a-3b870e455d5b",
    "detail-type": "EC2 Spot Fleet State Change",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-09T08:57:06Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-4b6d274d-0cea-4b2c-b3be-9dc627ad1f55"
    ],
    "detail": {
        "sub-type": "submitted"
    }
}
```

`sub-type` 的可能值為：

`active`  
已驗證 Spot 機群請求，且 Amazon EC2 正在嘗試維持執行中的執行個體目標數目。

`cancelled`  
Spot 機群請求已取消，且無執行中的執行個體。Spot 機群將會在其執行個體終止後兩天刪除。

`cancelled_running`  
Spot 機群請求已取消，不會啟動其他執行個體。其現有執行個體將繼續執行直到中斷或終止。此請求會一直維持在該狀態，直到所有執行個體中斷或終止。

`cancelled_terminating`  
Spot 機群請求已取消，其執行個體正在終止。此請求會一直維持在該狀態，直到所有執行個體終止。

`expired`  
Spot 機群請求已過期。如果請求是使用 `TerminateInstancesWithExpiration` 集建立的，後續 `terminated` 事件會指出已終止執行個體。

`modify_in_progress`  
正在修改 Spot 機群請求。請求會一直維持在此狀態，直到已完成修改。

`modify_succeeded`  
已修改 Spot 機群請求。

`submitted`  
正在評估 Spot 機群請求且 Amazon EC2 正準備啟動執行個體的目標數量。

`progress`  
正在履行 Spot 機群請求。

### EC2 Spot 機群Spot 執行個體請求變更
<a name="spot-fleet-spot-instance-request-change"></a>

Spot 機群會在機群中的 Spot 執行個體請求變更狀態時將 `EC2 Spot Fleet Spot Instance Request Change` 事件傳送至 Amazon EventBridge。

以下是此事件的範例資料。

```
{
    "version": "0",
    "id": "cd141ef0-14af-d670-a71d-fe46e9971bd2",
    "detail-type": "EC2 Spot Fleet Spot Instance Request Change",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-09T08:53:21Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-a98d2133-941a-47dc-8b03-0f94c6852ad1"
    ],
    "detail": {
        "spot-instance-request-id": "sir-a2w9gc5h",
        "description": "SpotInstanceRequestId sir-a2w9gc5h, PreviousState: cancelled_running",
        "sub-type": "cancelled"
    }
}
```

`sub-type` 的可能值為：

`active`  
Spot 執行個體請求已履行，並具有關聯的 Spot 執行個體。

`cancelled`  
您已取消 Spot 執行個體請求，或 Spot 執行個體請求已過期。

`disabled`  
您已停用 Spot 執行個體。

`submitted`  
已提交 Spot 執行個體請求。

### EC2 Spot 機群執行個體變更
<a name="spot-fleet-instance-change"></a>

Spot 機群會在機群中的執行個體變更狀態時將 `EC2 Spot Fleet Instance Change` 事件傳送至 Amazon EventBridge 。

以下是此事件的範例資料。

```
{
    "version": "0",
    "id": "11591686-5bd7-bbaa-eb40-d46529c2710f",
    "detail-type": "EC2 Spot Fleet Instance Change",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-09T07:25:02Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-c8a764a4-bedc-4b62-af9c-0095e6e3ba61"
    ],
    "detail": {
        "instance-id": "i-08b90df1e09c30c9b",
        "description": "{\"instanceType\":\"r4.2xlarge\",\"image\":\"ami-032930428bf1abbff\",\"productDescription\":\"Linux/UNIX\",\"availabilityZone\":\"us-east-1a\"}",
        "sub-type": "launched"
    }
}
```

`sub-type` 的可能值為：

`launched`  
已啟動新執行個體。

`terminated`  
已終止執行個體。

`termination_notified`  
Amazon EC2 在縮減規模期間終止 Spot 執行個體，也就是機群的目標容量向下修改 (例如，從目標容量 4 變為 3) 時，系統會傳送執行個體終止通知。

### EC2 Spot 機群資訊
<a name="spot-fleet-info"></a>

當履行期間發生錯誤時，Spot 機群將 `EC2 Spot Fleet Information` 事件傳送至 Amazon EventBridge。此資訊事件不會封鎖機群嘗試履行其目標容量。

以下是此事件的範例資料。

```
{
    "version": "0",
    "id": "73a60f70-3409-a66c-635c-7f66c5f5b669",
    "detail-type": "EC2 Spot Fleet Information",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-08T20:56:12Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-2531ea06-af18-4647-8757-7d69c94971b1"
    ],
    "detail": {
        "description": "r3.8xlarge, ami-032930428bf1abbff, Linux/UNIX, us-east-1a, Spot bid price is less than Spot market price $0.5291",
        "sub-type": "launchSpecUnusable"
    }
}
```

`sub-type` 的可能值為：

`fleetProgressHalted`  
每個啟動規格中的價格無效，因為價格低於 Spot 價格 (所有啟動規格都已產生 `launchSpecUnusable` 事件)。如果 Spot 價格變動，啟動規格則可能會變成有效。

`launchSpecTemporarilyBlacklisted`  
組態無效，且多次嘗試啟動執行個體失敗。如需詳細資訊，請參閱事件的描述。

`launchSpecUnusable`  
啟動規格中的價格無效，因為價格低於 Spot 價格。

`registerWithLoadBalancersFailed`  
嘗試在負載平衡器失敗時註冊執行個體。如需詳細資訊，請參閱事件的描述。

### EC2 Spot 機群錯誤
<a name="spot-fleet-config-not-valid"></a>

當履行期間發生錯誤時，Spot 機群將 `EC2 Spot Fleet Error` 事件傳送至 Amazon EventBridge。錯誤事件會阻止機群嘗試履行其目標容量。

以下是此事件的範例資料。

```
{
    "version": "0",
    "id": "10adc4e7-675c-643e-125c-5bfa1b1ba5d2",
    "detail-type": "EC2 Spot Fleet Error",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-09T06:56:07Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-38725d30-25f1-4f30-83ce-2907c56dba17"
    ],
    "detail": {
        "description": "r4.2xlarge, ami-032930428bf1abbff, Linux/UNIX: The associatePublicIPAddress parameter can only be specified for the network interface with DeviceIndex 0. ",
        "sub-type": "spotFleetRequestConfigurationInvalid"
    }
}
```

`sub-type` 的可能值為：

`iamFleetRoleInvalid`  
Spot 機群沒有啟動或終止執行個體所需的許可。

`allLaunchSpecsTemporarilyBlacklisted`  
沒有任何組態是有效的，且多次嘗試啟動執行個體失敗。如需詳細資訊，請參閱事件的描述。

`spotInstanceCountLimitExceeded`  
您已達到可啟動 Spot 執行個體的數目上限。

`spotFleetRequestConfigurationInvalid`  
組態無效。如需詳細資訊，請參閱事件的描述。