建立 Amazon EventBridge 規則來監控 Spot Fleet 事件
當發出 Spot Fleet 的狀態變化通知時,會以 JSON 檔案的形式將通知事件傳送至 Amazon EventBridge。您可以寫入 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 Fleet 狀態變更通知時傳送電子郵件、文字訊息或行動推送通知。將發出此範例中的訊號作為 EC2 Spot Fleet State
Change
事件,這會觸發規則定義的動作。建立 EventBridge 規則之前,您必須針對電子郵件、文字訊息或行動推送通知建立 Amazon SNS 主題。
建立 EventBridge 規則以在 Spot Fleet 狀態變更時傳送通知
-
在 https://console.aws.amazon.com/events/
開啟 Amazon EventBridge 主控台。 -
選擇 Create rule (建立規則)。
-
針對 Define rule detail (定義規則詳細資訊) 執行下列動作:
-
輸入規則的Name (名稱),或者輸入描述。
在同一個區域和同一個事件匯流排上,規則不能與另一個規則同名。
-
針對 Event bus (事件匯流排) 選擇 default (預設值)。當您帳戶中的 AWS 服務產生事件時,一律會前往您帳戶的預設事件匯流排。
-
針對 Rule type (規則類型) 選擇 Rule with an event pattern (具有事件模式的規則)。
-
選擇 Next (下一步)。
-
-
針對 Build event pattern (建置事件模式) 執行下列動作:
-
在 Event source (事件來源) 欄位中,選擇 AWS events or EventBridge partner events (事件或 EventBridge 合作夥伴事件)。
-
針對此範例的 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 編輯器)) 指定自有模式,如下:
-
若要使用範本建立事件模式,請執行下列動作:
-
選擇 Event pattern form (事件模式表單)。
-
在 Event source (事件來源) 欄位中,選擇 AWS services (服務)。
-
針對 AWS Service (服務),請選擇 EC2 Spot Fleet (EC2 Spot 機群)。
-
針對 Event type (事件類型),選擇 EC2 Spot Fleet Instance Change (EC2 Spot 機群執行個體變更)。
-
若要自訂範本,請選擇 Edit pattern (編輯模式) 並進行變更以與範例事件模式相符。
-
-
(替代) 若要指定自訂事件模式,請執行下列動作:
-
選擇 Custom pattern (JSON editor) (自訂模式 (JSON 編輯器))。
-
在 Event pattern (事件模式) 方塊中,為此範例新增事件模式。
-
-
-
選擇 Next (下一步)。
-
-
針對 Select target(s) (選取目標) 執行下列動作:
-
在 Target types (目標類型) 欄位中,選擇 AWS service (服務)。
-
針對 Select a target (選取目標) 選取 SNS topic (SNS 主題),以便在事件發生時傳送電子郵件、簡訊或行動裝置推送通知。
-
針對 Topic (主題),請選擇現有的主題。您首先需要使用 Amazon SNS 主控台建立 Amazon SNS 主題。如需詳細資訊,請參閱 Amazon Simple Notification Service 開發人員指南 中的使用 Amazon SNS 進行應用程式至人員 (A2P) 訊息。
-
(選用) 在 Additional settings (其他設定) 下,您可以選擇性地設定其他設定。如需詳細資訊,請參閱《Amazon EventBridge 使用者指南》中的建立對事件做出反應的 Amazon EventBridge 規則 (步驟 16)。
-
選擇 Next (下一步)。
-
-
(選用) 針對 Tags (標籤),您可以選擇性地將一或多個標籤指派給您的規則,然後選擇 Next (下一步)。
-
針對 Review and create (檢閱和建立) 執行下列動作:
-
檢閱規則的詳細資訊,然後視需求進行修改。
-
選擇 Create rule (建立規則)。
-
如需詳細資訊,請參閱 Amazon EventBridge 使用者指南中的 Amazon EventBridge 規則和 Amazon EventBridge 事件模式。
建立一個 EventBridge 規則來觸發 Lambda 函數
下列範例會建立 EventBridge 規則,以在每次 Amazon EC2 因執行個體啟動時發出 Spot Fleet 執行個體變更通知時觸發 Lambda 函數。將發出此範例中的訊號作為 EC2 Spot Fleet Instance
Change
事件 (子類型 launched
),這會觸發規則定義的動作。
在建立 EventBridge 規則之前,您必須建立 Lambda 函數。
建立要在 EventBridge 規則中使用的 Lambda 函數
於 AWS Lambdahttps://console.aws.amazon.com/lambda/ 開啟
主控台。 -
選擇 Create function (建立函式)。
-
輸入函數的名稱、設定程式碼,然後選擇 Create function (建立函數)。
如需有關使用 Lambda 的詳細資訊,請參閱 AWS Lambda 開發人員指南中的使用主控台建立 Lambda 函數。
建立 EventBridge 規則以在 Spot Fleet 中的執行個體變更狀態時觸發 Lambda 函數
-
在 https://console.aws.amazon.com/events/
開啟 Amazon EventBridge 主控台。 -
選擇 Create rule (建立規則)。
-
針對 Define rule detail (定義規則詳細資訊) 執行下列動作:
-
輸入規則的Name (名稱),或者輸入描述。
在同一個區域和同一個事件匯流排上,規則不能與另一個規則同名。
-
針對 Event bus (事件匯流排) 選擇 default (預設值)。當您帳戶中的 AWS 服務產生事件時,一律會前往您帳戶的預設事件匯流排。
-
針對 Rule type (規則類型) 選擇 Rule with an event pattern (具有事件模式的規則)。
-
選擇 Next (下一步)。
-
-
針對 Build event pattern (建置事件模式) 執行下列動作:
-
在 Event source (事件來源) 欄位中,選擇 AWS events or EventBridge partner events (事件或 EventBridge 合作夥伴事件)。
-
針對此範例的 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 編輯器)) 指定自有模式,如下:
-
若要使用範本建立事件模式,請執行下列動作:
-
選擇 Event pattern form (事件模式表單)。
-
在 Event source (事件來源) 欄位中,選擇 AWS services (服務)。
-
針對 AWS Service (服務),請選擇 EC2 Spot Fleet (EC2 Spot 機群)。
-
針對 Event type (事件類型),選擇 EC2 Spot Fleet Instance Change (EC2 Spot 機群執行個體變更)。
-
選擇 Edit pattern (編輯模式),並新增
"detail": {"sub-type": ["launched"]
以符合範例事件模式。若要獲得正確的 JSON 格式,請在前方括號 (]
) 之後插入一個逗號 (,
)。
-
-
(替代) 若要指定自訂事件模式,請執行下列動作:
-
選擇 Custom pattern (JSON editor) (自訂模式 (JSON 編輯器))。
-
在 Event pattern (事件模式) 方塊中,為此範例新增事件模式。
-
-
-
選擇 Next (下一步)。
-
-
針對 Select target(s) (選取目標) 執行下列動作:
-
在 Target types (目標類型) 欄位中,選擇 AWS service (服務)。
-
針對 Select a target (選取目標) 選取 SNS topic (SNS 主題),以便在事件發生時傳送電子郵件、簡訊或行動裝置推送通知。
-
針對 Topic (主題),請選擇 Lambda function (Lambda 函數),然後在 Function (函數) 中選擇您建立的函數,以便在事件發生時回應。
-
(選用) 在 Additional settings (其他設定) 下,您可以選擇性地設定其他設定。如需詳細資訊,請參閱《Amazon EventBridge 使用者指南》中的建立對事件做出反應的 Amazon EventBridge 規則 (步驟 16)。
-
選擇 Next (下一步)。
-
-
(選用) 針對 Tags (標籤),您可以選擇性地將一或多個標籤指派給您的規則,然後選擇 Next (下一步)。
-
針對 Review and create (檢閱和建立) 執行下列動作:
-
檢閱規則的詳細資訊,然後視需求進行修改。
-
選擇 Create rule (建立規則)。
-
如需如何建立 Lambda 函數和執行 Lambda 函數的 EventBridge 規則的教學課程,請參閱 AWS Lambda 開發人員指南中的教學課程:使用 EventBridge 記錄 Amazon EC2 執行個體的狀態。