建立 Amazon EventBridge 規則以監控競價型叢集事件 - Amazon Elastic Compute Cloud

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

建立 Amazon EventBridge 規則以監控競價型叢集事件

當針對競價型叢集發出狀態變更通知時,通知的事件會以 JSON 檔案 EventBridge 的形式傳送至 Amazon。您可以撰寫 EventBridge 規則來自動化事件模式與規則相符時要採取的動作。如果 EventBridge 偵測到符合規則中定義的模式的事件模式,則會 EventBridge 叫用規則中指定的目標 (或多個目標)。

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

"source": "aws.ec2spotfleet"

識別事件來自 Spot Fleet。

"detail-type": "EC2 Spot Fleet State Change"

識別事件類型。

"detail": { "sub-type": "submitted" }

識別事件子類型。

如需 Spot Fleet 事件和範例事件資料的清單,請參閱 Spot Fleet 事件類型

建立 EventBridge 規則以傳送通知

下列範例會建立 EventBridge 規則,以便在每次 Amazon EC2 發出 Spot 叢集狀態變更通知時傳送電子郵件、文字訊息或行動推播通知。將發出此範例中的訊號作為 EC2 Spot Fleet State Change 事件,這會觸發規則定義的動作。在建立 EventBridge 規則之前,您必須為電子郵件、文字訊息或行動推播通知建立 Amazon SNS 主題。

若要建立 EventBridge 規則,以便在 Spot 叢集狀態變更時傳送通知
  1. 在以下位置打開 Amazon EventBridge 控制台 https://console.aws.amazon.com/events/

  2. 選擇建立規則

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

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

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

    2. 針對 Event bus (事件匯流排) 選擇 default (預設值)。當您帳戶中的 AWS 服務產生事件時,一律會前往您帳戶的預設事件匯流排。

    3. 針對 Rule type (規則類型) 選擇 Rule with an event pattern (具有事件模式的規則)。

    4. 選擇下一步

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

    1. 對於事件來源,請選擇AWS 事件或 EventBridge合作夥伴事件。

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

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

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

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

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

        2. Event source (事件來源) 欄位中,選擇 AWS services (服務)。

        3. 針對 AWS Service (服務),請選擇 EC2 Spot Fleet (EC2 Spot 機群)。

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

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

      2. (替代) 若要指定自訂事件模式,請執行下列動作:

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

        2. Event pattern (事件模式) 方塊中,為此範例新增事件模式。

    3. 選擇下一步

  5. 針對 Select target(s) (選取目標) 執行下列動作:

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

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

    3. 針對 Topic (主題),請選擇現有的主題。您首先需要使用 Amazon SNS 主控台建立 Amazon SNS 主題。如需詳細資訊,請參閱 Amazon 簡單通知服務開發人員指南中的使用 Amazon SNS 進行 application-to-person (A2P) 簡

    4. (選用) 在 Additional settings (其他設定) 下,您可以選擇性地設定其他設定。如需詳細資訊,請參閱 Amazon EventBridge 使用者指南中的建立對事件做出反應的 Amazon EventBridge 規則 (步驟 16)。

    5. 選擇下一步

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

  7. 針對 Review and create (檢閱和建立) 執行下列動作:

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

    2. 選擇建立規則

有關更多信息,請參閱 Amazon EventBridge 用戶指南中的 Amazon EventBridge 規則和 Amazon EventBridge 事件模式

建立 EventBridge 規則以觸發 Lambda 函數

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

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

若要建立要在 EventBridge 規則中使用的 Lambda 函數
  1. 開啟主 AWS Lambda 控台,網址為 https://console.aws.amazon.com/lambda/

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

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

    如需有關使用 Lambda 的詳細資訊,請參閱 AWS Lambda 開發人員指南中的使用主控台建立 Lambda 函數

若要建立 EventBridge 規則以在競價型叢集中的執行個體變更狀態時觸發 Lambda 函數
  1. 在以下位置打開 Amazon EventBridge 控制台 https://console.aws.amazon.com/events/

  2. 選擇建立規則

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

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

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

    2. 針對 Event bus (事件匯流排) 選擇 default (預設值)。當您帳戶中的 AWS 服務產生事件時,一律會前往您帳戶的預設事件匯流排。

    3. 針對 Rule type (規則類型) 選擇 Rule with an event pattern (具有事件模式的規則)。

    4. 選擇下一步

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

    1. 對於事件來源,請選擇AWS 事件或 EventBridge合作夥伴事件。

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

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

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

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

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

        2. Event source (事件來源) 欄位中,選擇 AWS services (服務)。

        3. 針對 AWS Service (服務),請選擇 EC2 Spot Fleet (EC2 Spot 機群)。

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

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

      2. (替代) 若要指定自訂事件模式,請執行下列動作:

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

        2. Event pattern (事件模式) 方塊中,為此範例新增事件模式。

    3. 選擇下一步

  5. 針對 Select target(s) (選取目標) 執行下列動作:

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

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

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

    4. (選用) 在 Additional settings (其他設定) 下,您可以選擇性地設定其他設定。如需詳細資訊,請參閱 Amazon EventBridge 使用者指南中的建立對事件做出反應的 Amazon EventBridge 規則 (步驟 16)。

    5. 選擇下一步

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

  7. 針對 Review and create (檢閱和建立) 執行下列動作:

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

    2. 選擇建立規則

如需如何建立 Lambda 函數和執行 Lambda 函數的 EventBridge 規則的教學課程,請參閱AWS Lambda 開發人員指南 EventBridge的教學課程:使用記錄 Amazon EC2 執行個體的狀態