如何使用 EventBridge 來收到有關 EC2 執行個體排程事件的通知?

上次更新日期:2023 年 1 月 18 日

我想要在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體有已排程的事件時,收到 Amazon EventBridge 所傳來的通知。

簡短描述

您可以建立 EventBridge 規則,以針對 EC2 執行個體的已排程事件來啟動。然後,您可以針對符合事件模式的事件來設定 Amazon Simple Notification Service (Amazon SNS) 通知。您還可以透過 AWS Lambda 來設定進一步的處理。

解決方案

重要:在開始之前,請確定您有適用於通知的 SNS 主題。如果沒有,請建立新的 SNS 主題並加以訂閲

使用 EventBridge 主控台建立會針對事件來起始的 EventBridge 規則

1.    為規則指派 Name (名稱),並選擇是否指派 Description (描述)。

2.    針對 Event bus (事件匯流排),請選取 default (預設值)。

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

4.    選擇 Next (下一步)。

5.    針對 Event Source (事件來源),請選擇 AWS events (AWS 事件) 或 EventBridge partner events (EventBridge 合作夥伴事件)。

6.    (選用) 針對 Sample events (範例事件),請選擇事件類型。

7.    針對 Creation method (建立方法),請選擇 Use pattern form (使用樣式形式)。

8.    針對 Event source (事件來源),請選擇 AWS services (AWS 服務)。

9.    針對 AWS service (AWS 服務),請選擇 Health (運作狀態)。這是做為事件來源的 AWS 服務名稱

10.    針對 Event Type (事件類型),請選擇 Specific Health events (特定運作狀態事件)。

11.    選擇 Specific service(s) (特定服務),然後選擇 EC2

12.    選擇 Specific event type category(s) (特定事件類型類別),然後選擇 scheduledChange

13.    (選用) 若要建立更特定的規則,請納入 Specific event type code(s) (特定事件類型代碼) 或 Specific resource(s) (特定資源)。在規則中新增上述其中一個選項,系統便會針對特定事件或執行個體來發送通知。

這些設定會建立以下事件模式:

注意:您也可以複製並貼上以下程式碼來作為規則,以建立您的事件模式。在選擇 Create Rule (建立規則) 後,於 Event Pattern preview (事件模式預覽) 區段中選擇 Edit (編輯)。插入以下程式碼,選擇 Save (儲存),然後繼續建立 SNS 目標。

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

14.    選取您的 SNS 目標:
選擇 Add Target (新增目標)。
在 Target (目標) 中,選擇 SNS topic (SNS 主題)。
Topic (主題) 中,選擇要用於通知的 SNS 主題。

以下範例是會轉發到目標的 EventBridge 事件:

{
  "version": "0",
  "id": "7fb65329-1628-4cf3-a740-95fg457h1402",
  "detail-type": "AWS Health Event",
  "source": "aws.health",
  "account": "123456789101",
  "time": "2016-06-05T06:27:57Z",
  "region": "us-east-1",
  "resources": ["i-12345678"],
  "detail": {
    "eventArn": "arn:aws:health:region::event/id",
    "service": "EC2",
    "eventTypeCode": "AWS_EC2_DEDICATED_HOST_NETWORK_MAINTENANCE_SCHEDULED",
    "eventTypeCategory": "scheduledChange",
    "startTime": "Sat, 05 Jun 2016 15:10:09 GMT",
    "eventDescription": [{
      "language": "en_US",
      "latestDescription": "A description of the event will be provided here"
    }],
    "affectedEntities": [{
      "entityValue": "i-12345678",
      "tags": {
        "stage": "prod",
        "app": "my-app"
      }
    }]
  }
}

如果您的使用案例需要向目標提供特定欄位,請在 Configure input (設定輸入) 底下連接輸入轉換器。或者,將 Lambda 函數連接為目標以執行指定的處理。