使用 Amazon 監控 AWS Health 事件 EventBridge - AWS Health

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

使用 Amazon 監控 AWS Health 事件 EventBridge

您可以使用 Amazon EventBridge 偵測事件並回應 AWS Health 事件。然後,根據您建立的規則,當事件符合您在規則中指定的值時, EventBridge 叫用一或多個目標動作。視事件類型而定,您可以擷取事件資訊、起始其他事件、傳送通知、採取更正動作或執行其他動作。例如,如果您 AWS 帳戶 的資源中有排定進行更新的 AWS 資源,例如 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體,則可以使用 AWS Health 來接收電子郵件通知。

備註

您可以在多個目標類型之間進行選擇,作 EventBridge 為 AWS Health 工作流程的一部分,包括:

  • AWS Lambda 函數

  • Amazon Kinesis Data Streams

  • Amazon Simple Queue Service (Amazon SQS) 佇列

  • 內建目標 (例如 CloudWatch 警示動作)

  • Amazon Simple Notification Service (Amazon SNS) 主題

例如,您可以使用 Lambda 函數在 AWS Health 事件發生時將通知傳遞給 Slack 通道。或者,您也可以使用 Lambda,並 EventBridge 在 AWS Health 事件發生時透過 Amazon SNS 傳送自訂文字或簡訊通知。

如需您可以建立以回應 AWS Health 事件的自動化和自訂警示範例,請參閱中的AWS Health 工具 GitHub。

關 AWS 區域 於 AWS Health

您必須為每個要接收 AWS Health 事件的區域建立 EventBridge 規則。如果您未建立規則,就不會收到事件。例如,若要接收來自美國西部 (奧勒岡) 區域的事件,您必須為此區域建立規則。

如果您的主要規則受到進行中的事件影響,則在備份區域中設定其他規則可為您的工作流程增加一層額外的復原能力。的公開事件 AWS Health 會同時傳送至受影響的區域和備份區域。如需詳細資訊,請參閱關於 AWS Health 的公開活動。對於標準 AWS 分區中的所有區域,您可以在美國西部 (奧勒岡) 設定規則作為備份,以繼續接收事件,即使您的主要區域受到持續發生的問題影響也一樣。美國西部 (奧勒岡) 區域的備份區域是美國東部 (維吉尼亞北部) 區域。

例如,如果您正在監視歐洲 (法蘭克福) 區域的事件,而該區域暫時無法使用,則也 AWS Health 會將該事件傳送至美國西部 (奧勒岡) 區域。接下來,您的備份 EventBridge 規則會將事件傳送至您指定的目標。若要建立備份規則,請遵循下列程序建立 EventBridge 規則 AWS Health並使用美國西部 (奧勒岡) 區域。

有些 AWS Health 事件不是特定於區域的。不是特定於某個區域的事件稱為全域事件。其中包括為 AWS Identity and Access Management (IAM) 傳送的事件。若要接收全域事件,您必須為主要區域的美國東部 (維吉尼亞北部) 區域和美國西部 (奧勒岡) 區域建立規則作為備份區域。

若要在中接收全域事件 AWS GovCloud (US),您必須在 AWS GovCloud (美國西部) 區域中建立規則。

關於公眾活動 AWS Health

當您建立 EventBridge規則來監視事件時 AWS Health,規則會同時傳遞帳戶特定事件和公開事件:

  • 帳戶特定事件會影響您的帳戶和資源,例如告訴您 Amazon EC2 執行個體的必要更新或其他排程變更事件的事件。

  • 公開事件會顯示在AWS Health 儀表板 — 服務健康狀態。公開活動 AWS 帳戶 並不是特定於提供服務區域可用性的公開資訊。

重要

若要接收這兩種事件類型,您的規則必須使用該"source": [ "aws.health"]值。萬用字元,例如"source": [ "aws.health*"]不符合要監視任何事件的模式。

如果您要從監視公開事件 AWS 區域,建議您建立備份規則。的公開事件 AWS Health 會同時傳送至受影響的區域和備份區域。建議您使用 EventARN 和通訊 ID 來刪除重複的 AWS Health 事件,因為這些事件對傳送至備份區域的 AWS Health 郵件會保持一致。

您可以使用參數來識別中 EventBridge的事件是公用事件還是帳戶特定的 eventScopeCode 。事件可以具有PUBLICACCOUNT_SPECIFIC。您也可以在此參數上篩選規則。

範例:Amazon 彈性運算雲端的公開事件

下列事件顯示美國東部 (維吉尼亞北部) 區域 Amazon EC2 的操作問題。

{ "version": "0", "id": "fd9d4512-1eb0-50f6-0491-d016ae56aef0", "detail-type": "AWS Health Event", "source": "aws.health", "account": "123456789012", "time": "2023-02-15T10:07:10Z", "region": "us-east-1", "resources": [], "detail": { "eventArn": "arn:aws:health:us-east-1::event/EC2/AWS_EC2_OPERATIONAL_ISSUE", "service": "EC2", "eventTypeCode": "AWS_EC2_OPERATIONAL_ISSUE", "eventTypeCategory": "issue", "eventScopeCode": "PUBLIC", "communicationId": "01b0993207d81a09dcd552ebd1e633e36cf1f09a-1", "startTime": "Wed, 15 Feb 2023 22:07:07 GMT", "lastUpdatedTime": "Wed, 15 Feb 2023 22:07:07 GMT", "statusCode": "open", "eventRegion": "us-east-1", "eventDescription": [ { "latestDescription": "We are investigating increased API Error rates and Latencies for Amazon Elastic Compute Cloud in the US-EAST-1 Region.", "language": "en_US" } ], "page": "1", "totalPages": "1", "affectedAccount":"123456789012", } }

事件處理器 AWS Health

如果您的帳戶使用 AWS 事件偵測與回應,則必須在帳戶中安裝AWSServiceRoleForHealth_EventProcessor服務連結角色

此角色會信任event-processor.health.amazonaws.com服務主體擔任該角色。附加到此角色的是受AWSHealth_EventProcessorServiceRolePolicy AWS 管理的策略。此原則會列出角色可執行的權限,例如 AWS 服務 為您呼叫其他權限。

然後,此角色會在您的帳戶中建立 Amazon EventBridge 受管規則。規則命名為AWSHealthEventProcessor-DO-NOT-DELETE。此規則是您帳戶所需的基礎結構,因此 EventBridge 可以將警示狀態變更資訊從您的帳戶傳送至 AWS Health。

若要進一步了解,請參閱下列主題:

建立 EventBridge 規則 AWS Health

您可以建立 EventBridge 規則以接收帳戶中 AWS Health 事件的通知。在建立的事件規則之前 AWS Health,請先執行下列動作:

若要建立 EventBridge 規則 AWS Health
  1. 在以下位置打開 Amazon EventBridge 控制台 https://console.aws.amazon.com/events/

  2. 若要變更 AWS 區域,請使用頁面右上角的「地區」選取器。選擇您要追蹤 AWS Health 事件的地區。

  3. 在導覽窗格中,選擇規則

  4. 選擇建立規則

  5. Define rule detail (定義規則詳細資訊) 頁面中,輸入規則名稱和描述。

  6. 請保留 Event bus (事件匯流排)Rule type (規則類型) 的預設值,然後選擇 Next (下一步)

  7. 在 [建立事件模式] 頁面上,針對 [事件來源] 選擇AWS 事件和 EventBridge 合作夥伴事件。

  8. 在「事件模式」下,針對「事件來源」,選擇AWS 服務

  9. 在「事件模式」下 AWS 服務,選擇「Health」。

  10. 針對「事件類型」,選擇下列其中一個選項。

    • 特定 Health 濫用事件 — 為 AWS Health 事件類型名稱中含有字詞Abuse的事件建立規則。

    • 特定 Health 事件 — 為特定 AWS 服務事件 (例如 Amazon EC2) 建立規則。

  11. 您可以選擇任何服務或特定服務。如果您選擇特定服務,請選擇下列其中一個選項:

    • 選擇 [任何事件類型] 以建立套用至所有事件類別的規則。

    • 選擇特定事件類型分類,然後從清單中選擇值,例如問題帳戶通知schedu ledChange。

    提示
    • 若要監視特定服務的所有 AWS Health 事件,建議您選擇 [任何事件類型] 和 [任何資源]。這樣可確保您的規則會監控指定服務的任何事件,包括任何新的事件類型代碼。 AWS Health 如需規則範例,請參閱所有 Amazon EC2 事件

    • 您可以建立規則來監視多個服務或事件類型類別。若要這麼做,您必須手動更新規則的事件模式。如需詳細資訊,請參閱 為多個服務和類別建立規則

  12. 如果您選擇特定的服務和事件類型類別,請為事件類型代碼選擇下列其中一個選項。

    • 選擇「任何事件類型代碼」,以建立套用至所有事件類型代碼的規則。

    • 選擇 [特定事件類型代碼],然後從清單中選擇一或多個值。這會建立僅套用至特定事件類型代碼的規則。例如,如果您選擇AWS_EC2_INSTANCE_STOP_SCHEDULEDAWS_EC2_INSTANCE_RETIREMENT_SCHEDULED,則您的規則只會在這些事件發生在您的帳戶中時套用至這些事件。

  13. 針對受影響的資源選擇下列其中一個選項。

    • 選擇 [任何資源] 以建立套用至所有資源的規則。

    • 選擇特定資源,然後輸入一或多個資源的 ID。例如,您可以指定一個 Amazon EC2 執行個體識別碼 (例如 I-Example 1B2C3de4),以監控僅影響此資源的事件。

  14. 檢閱規則設定,使其符合您的事件監視需求。

  15. 選擇下一步

  16. 在「選取目標」 頁面上,選擇您為此規則建立的目標類型,然後設定該類型所需的任何其他選項。例如,您可能會將事件匯流排傳送至 Amazon SQS 佇列或 Amazon SNS 主題。

  17. 選擇下一步

  18. (選用) 在 設定標籤頁面,新增任何標籤,然後選擇下一步

    • 注意:中的 aws.health 來源目前不會傳送標籤。 EventBridge

  19. 檢閱並建立頁面上,檢閱您的規則設定,並確定其符合您的事件監控要求。

  20. 選擇建立規則

範例 :所有 Amazon EC2 事件的規則

下列範例會建立規則,以便 EventBridge 監控所有 Amazon EC2 事件,包括事件類型類別、事件代碼和資源。


          如何僅針對所有 Amazon EC2 事件建立 EventBridge 規則的螢幕擷取畫面。
範例 :特定 Amazon EC2 事件的規則

下列範例會建立規則,以便 EventBridge 監視下列項目:

  • Amazon EC2 服務

  • scheduledChange 事件類型類別

  • AWS_EC2_INSTANCE_TERMINATION_SCHEDULED和的事件類型代碼 AWS_EC2_INSTANCE_RETIREMENT_SCHEDULED

  • 具有 ID 的執行個體 i-EXAMPLEa1b2c3de4


          僅針對特 EventBridge 定的 Amazon EC2 事件建立規則。

為多個服務和類別建立規則

先前程序中的範例說明如何為單一服務和事件類型類別建立規則。您也可以為多個服務和事件類型類別建立規則。這表示您不必為要監視的每個服務和類別建立個別的規則。若要這麼做,您必須編輯事件模式,然後手動輸入變更。

您可以使用下列其中一個選項。

若要新增現有規則的服務和類別
  1. 在 EventBridge 主控台的 [規則] 頁面上,選擇規則名稱。

  2. 在右上角,選擇 Edit (編輯)

  3. 選擇下一步

  4. 在「事件模式」中,選擇 「編輯模式」,然後在文字欄位中輸入您的變更。

  5. 選擇「下一步」,直到到達「檢閱和更新」頁面。

  6. 選擇 [更新規則] 以儲存變更。

若要新增新規則的服務和類別
  1. 遵循步驟 9建立 EventBridge 規則 AWS Health的程序。

  2. 而不是從列表中選擇單個服務或類別,對於事件模式,選擇編輯模式

  3. 在文字欄位中輸入您的變更。請參閱下面的示例模式作為創建自己的事件模式的模型。

  4. 檢閱您的事件模式,然後依照中的其餘程序建立 EventBridge 規則 AWS Health建立規則。

使用應用程式介面或 AWS Command Line Interface (AWS CLI)

對於新的或現有的規則,請使用 PutRuleAPI 作業或命aws events put-rule令來更新事件模式。如需 AWS CLI 指令範例,請參閱《指AWS CLI 令參考》中的 put-rule

範例:多個服務和事件類型類別

下列事件模式會建立規則來監控三種 AWS 服務的issueaccountNotification、和scheduledChange事件類型類別的事件:Amazon EC2、Amazon EC2 Auto Scaling 和 Amazon VPC。

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

AWS Health 事件 Amazon EventBridge 架構

以下是 AWS Health 事件的結構描述。舊版架構的變更或新增項目會反白顯示為「新增」。範例承載會在結構描述之後提供。

AWS Health 事件架構

AWS Health 事件架構
參數 描述 必要
version EventBridge 版本,目前為「0」
id 該事件的 uniqueEventBridge 標識符
細節類型 描述詳細資料類型。對於 AWS Health 事件,這將是&AWS Health EventAWS Health Abuse Event
source

事件匯流排來源。對於 AWS Health 事件,這將是 aws.health

account 將 AWS Health 事件傳送到的 accountId。
注意

對於組織檢視,如果受影響的帳戶是在管理或委派的管理員帳戶中接收到的,這將與受影響的帳戶不同。

time 通知傳送到的時間 EventBridge。格式:yyyy-mm-ddThh:mm:ssZ.
region 識別通 AWS 區域 知的傳遞目標。
注意

此欄位不表示此 AWS Health 事件的受影響地區。這是由「詳細活動園」提供。

resources

說明帳號內受影響資源的清單 (如果有受影響的資源)。

注意

如果沒有參考資源,則此欄位可以為空白。

細節 本節包含 AWS Health 事件的所有詳細信息,如下所列。
事件集 特定地區之 AWS Health 事件的唯一識別碼,包括「地區」和「事件識別碼」。
注意

EventARN 不是特定客戶帳戶或區域的唯一性。

服務 AWS 服務 受 AWS Health 事件影響。例如,Amazon EC2,Amazon 簡單存儲服務,Amazon Redshift 或 Amazon Relational Database Service。
eventTypeCode 事件類型的唯一辨識碼。例如:AWS_EC2_INSTANCE_NETWORK_MAINTENANCE_SCHEDULEDAWS_EC2_INSTANCE_REBOOT_MAINTENANCE_SCHEDULED。包含的事件通常MAINTENANCE_SCHEDULED會在 startTime 前約兩週推出。
注意

所有新的計劃生命週期事件都具有事件類型AWS_{SERVICE}_PLANNED_LIFECYCLE_EVENT

eventTypeCategory 事件的類別程式碼。可能的值為 issueaccountNotificationinvestigationscheduledChange
eventScopeCode 指出 AWS Health 事件是帳戶特定還是公用事件。可能的值為 ACCOUNT_SPECIFICPUBLIC
通訊識別碼 (新增)

此 AWS Health 事件通訊的唯一識別碼。

具有相同通訊 ID 的訊息可能是單 AWS Health 一事件的備份訊息或頁面。此識別碼可與 accountId 搭配使用,以協助刪除重複郵件。

注意

隨著分頁功能發行版本,通訊 ID 包含頁碼,讓通訊 ID 在各個頁面中保持唯一性,例如 12345678910-1。如需詳細資訊,請參閱「分頁上的 AWS Health 事件 EventBridge」。

startTime AWS Health 事件的開始時間,格式為:DoW, DD, MMM, YYYY, HH:MM:SS TZ
注意

已排程事件的開始時間可能在 future。

endTime AWS Health 事件的結束時間,格式為:DoW, DD MMM YYYY HH:MM:SS TZ
注意

endTime 可能不會針對 future 設定的事件提供。

lastUpdatedTime AWS Health 事件的上次更新時間,格式為:DoW, DD MMM YYYY HH:MM:SS TZ
statusCode

AWS Health 事件的狀態。類型分類具有不同的狀態。

Issue事件類別的可能值為openclosedupcoming

scheduledChanges事件類別具有不同的狀態:UpcomingOngoing、或Completed

AccountNotifications事件類別沒有狀態且設定為"-"

活动祇园 此 AWS Health 事件所描述的受影響地區。
事件描述 描述 AWS Health 事件的區段。這包括描述事件的語言和文字欄位。
語言 AWS Health 活動中使用的語言。這通常由事件發佈至的地區決定。對於 us-east-1 區域,這通常是「en_US」。
最新描述 描述 AWS Health 事件從 AWS Health API 轉譯時,通常會顯示在 AWS Health 儀表板上。
注意

對於公開活動,這只包含最新的更新,而不包含事件的整個歷史記錄。

事件中繼資料 可為事件提供的其他 AWS Health 事件中繼資料。
<metadata key 1> 元數據鍵,值字符串「鍵字符串 1」:「鍵值 1」
注意

事件中繼資料的索引鍵值配對是由傳送 AWS Health 事件的服務決定。

情感 描述此 AWS Health 事件中受影響資源的資源值和狀態的陣列。
實體值 資源/實體ID
最新更新時間(新) 上次以下列格式更新此資源/實體狀態的時間:DoW, DD MMM YYYY HH:MM:SS TZ
狀態(新) 受影響的資源/實體的狀態。可能的值包括IMPAIREDUNIMPAIREDPENDINGRESOLVED、、UNKNOWN
頁面(新) 此訊息所代表的頁面。如需詳細資訊,請參閱 分頁上的 AWS Health 事件 EventBridge
注意

分頁只發生在資源上。256KB 大小限制違反的其他原因將導致通訊失敗。

總頁(新) 此健全狀況事件的總頁數。如需詳細資訊,請參閱 分頁上的 AWS Health 事件 EventBridge
注意

您可以使用此功能來判斷您是否收到帳戶的多頁通訊的所有頁面。

受影響帳戶 (新增) 這是受影響帳戶的 accountId。
注意

如果此健全狀況事件傳送至屬於其一部分的帳戶,且會在管理或委派的系統管理員帳戶中接收,則此欄位可能 AWS Organizations 與「帳戶」欄位不同。

公共 Health 事件-Amazon EC2 操作問題

{ "version": "0", "id": "7bf73129-1428-4cd3-a780-95db273d1602", "detail-type": "AWS Health Event", "source": "aws.health", "account": "123456789012", "time": "2023-01-27T09:01:22Z", "region": "af-south-1", "resources": [], "detail": { "eventArn": "arn:aws:health:af-south-1::event/EC2/AWS_EC2_OPERATIONAL_ISSUE/AWS_EC2_OPERATIONAL_ISSUE_7f35c8ae-af1f-54e6-a526-d0179ed6d68f", "service": "EC2", "eventTypeCode": "AWS_EC2_OPERATIONAL_ISSUE", "eventTypeCategory": "issue", "eventScopeCode": "PUBLIC", "communicationId": "01b0993207d81a09dcd552ebd1e633e36cf1f09a-1", "startTime": "Fri, 27 Jan 2023 06:02:51 GMT", "endTime": "Fri, 27 Jan 2023 09:01:22 GMT", "lastUpdatedTime": "Fri, 27 Jan 2023 09:01:22 GMT", "statusCode": "open", "eventRegion": "af-south-1", "eventDescription": [{ "language": "en_US", "latestDescription": "Current severity level: Operating normally\n\n[RESOLVED] \n\n [03:15 PM PST] We continue see recovery \n\nThe following AWS services were previously impacted but are now operating normally: APPSYNC, BACKUP, EVENTS." }], "affectedEntities":[], "page": "1", "totalPages": "1", "affectedAccount": "123456789012", } }

帳戶特定 AWS Health 事件-Elastic Load Balancing API 問題

{ "version": "0", "id": "121345678-1234-1234-1234-123456789012", "detail-type": "AWS Health Event", "source": "aws.health", "account": "123456789012", "time": "2022-06-10T06:27:57Z", "region": "ap-southeast-2", "resources": [], "detail": { "eventArn": "arn:aws:health:ap-southeast-2::event/AWS_ELASTICLOADBALANCING_API_ISSUE_90353408594353980", "service": "ELASTICLOADBALANCING", "eventTypeCode": "AWS_ELASTICLOADBALANCING_API_ISSUE", "eventTypeCategory": "issue", "eventScopeCode": "ACCOUNT_SPECIFIC", "communicationId": "01b0993207d81a09dcd552ebd1e633e36cf1f09a-1", "startTime": "Fri, 10 Jun 2022 05:01:10 GMT", "endTime": "Fri, 10 Jun 2022 05:30:57 GMT", "statusCode": "open", "eventRegion": "ap-southeast-2", "eventDescription": [{ "language": "en_US", "latestDescription": "A description of the event will be provided here" }], "page": "1", "totalPages": "1", "affectedAccount": "123456789012", } }

帳戶特定 AWS Health 事件-Amazon EC2 執行個體存放區磁碟機效能降低

{ "version": "0", "id": "121345678-1234-1234-1234-123456789012", "detail-type": "AWS Health Event", "source": "aws.health", "account": "123456789012", "time": "2022-06-03T06:27:57Z", "region": "us-west-2", "resources": [ "i-abcd1111" ], "detail": { "eventArn": "arn:aws:health:us-west-2::event/AWS_EC2_INSTANCE_STORE_DRIVE_PERFORMANCE_DEGRADED_90353408594353980", "service": "EC2", "eventTypeCode": "AWS_EC2_INSTANCE_STORE_DRIVE_PERFORMANCE_DEGRADED", "eventTypeCategory": "issue", "eventScopeCode": "ACCOUNT_SPECIFIC", "communicationId": "01b0993207d81a09dcd552ebd1e633e36cf1f09a-1", "startTime": "Fri, 3 Jun 2022 05:01:10 GMT", "endTime": "Fri, 3 Jun 2022 05:30:57 GMT", "statusCode": "open", "eventRegion": "us-west-2", "eventDescription": [{ "language": "en_US", "latestDescription": "A description of the event will be provided here" }], "affectedEntities": [{ "entityValue": "i-abcd1111", }], "page": "1", "totalPages": "1", "affectedAccount": "123456789012", } }

分頁上的 AWS Health 事件 EventBridge

AWS Health 當「資源」或「受影響」清單導致郵 AWS Health 件大小超過 EventBridge 256KB 郵件大小限制時,支援分頁事件。之前,當資源超過此限制時, AWS Health 並未將完整的資源清單與事件通訊。

AWS Health 現在會在訊息中包含所有「資源」和「詳細資訊. 影響」。如果此「資源」和「詳細資訊. 影響識別」清單超過 256KB,則會將健全狀況事件 AWS Health 分割成多個頁面,並在中以個別訊息形式發佈這些頁面。 EventBridge每個頁面都保留相同的 EventARN 和通訊 ID,以幫助在收到所有頁面後重新組合「資源」或「詳細信息。

這些額外的訊息可能會導致不必要的訊息,例如當 EventBridge 規則導向至人類可讀的介面 (例如電子郵件或聊天室) 時。擁有人類可讀通知的客戶可以為「詳細.page」欄位新增篩選器,以便僅處理第一頁,從而消除從後續頁面建立的不必要訊息。

包含數個結構描述變更,以支援分頁啟動。即使只有 1 頁,每個通訊 ID 現在都會在通訊 ID 之後包含以連字符連接的頁碼。另外還有兩個新欄位:詳細資料頁面和詳細資料 .TotalPages,用來描述目前的頁碼和事件的總頁數。 AWS Health 除了「詳細資訊」或「資源」清單外,每個分頁郵件中包含的資訊都相同。收到所有頁面後,可以重建這些列表。受影響的資源和實體的頁面與訂單無關。

使用組織檢視和委派的管理員存取彙總 AWS Health 事件

AWS Health 支援在 Amazon 上發佈的 AWS Health 事件的組織檢視和委派管理員存取權 EventBridge。在中開啟組織檢視時 AWS Health,管理帳戶或委派的管理員帳戶會收到來自您組織中所有帳戶的單一 AWS Health 事件摘要 AWS Organizations。

此功能旨在提供集中式檢視,以協助管理整個組織的 AWS Health 事件。在管理帳戶中設定組織檢視和 EventBridge 規則不會停用組織中其他帳戶的規則。 EventBridge

如需啟用上的組織檢視和委派管理員存取權的詳細資訊 AWS Health,請參閱彙總 AWS Health 事件

接收 AWS Health 事件 AWS Chatbot

您可以直接在聊天用戶端中接收 AWS Health 事件,例如 Slack 和 Amazon Chime。您可以使用此事件來識別最近可能會影響 AWS 應用程式和基礎結構的 AWS 服務問題。然後,您可以登錄AWS Health 儀表板以了解有關更新的更多信息。例如,如果您正在監控 AWS 帳戶中的AWS_EC2_INSTANCE_STOP_SCHEDULED事件類型,則該 AWS Health 事件可能會直接顯示在您的 Slack 頻道中。

必要條件

在開始之前,您必須具備以下條件:

  • 設定的聊天用戶端 AWS Chatbot。您可以配置 Amazon Chime 聲和鬆弛。如需詳細資訊,請參閱《AWS Chatbot 管理員指南》 AWS Chatbot中的〈入門

  • 您建立並訂閱的 Amazon SNS 主題。如果您已經有 SNS 主題,則可以使用現有的主題。如需詳細資訊,請參閱《Amazon Simple Notification Service 開發人員指南》中的 Amazon SNS 入門

若要接收 AWS Health 事件 AWS Chatbot
  1. 按照步驟 13 中的程序建立 EventBridge 規則 AWS Health進行操作。

    1. 當您在步驟 13 中完成設定事件模式後,請在模式的最後一行加上逗號,並新增下列行,從分頁 AWS Health 事件中移除不必要的聊天訊息。請參閱分頁上的 AWS Health 事件 EventBridge

      "detail.page": ["1"]

    2. 步驟 14 中選擇目標時,請選擇 SNS 主題。您將在主 AWS Chatbot 控台中使用相同的 SNS 主題。

    3. 完成程序的其餘部分以建立規則。

  2. 導覽至 AWS Chatbot 主控台

  3. 選擇您的聊天客戶端,例如您的 Slack 頻道名稱,然後選擇編輯

  4. 通知-選用區段中,對於主題,選擇您在步驟 1 中指定的相同 SNS 主題。

  5. 選擇儲存

    當 AWS Health 發送符合您規則 EventBridge 的事件時,該 AWS Health 事件將出現在您的聊天客戶端中。

  6. 選擇事件名稱以在 AWS Health 儀表板中查看更多信息。

範例 :已傳送至 Slack 的 AWS Health 事件

以下是出現在 Slack 通道中的美國東部 (維吉尼亞北部) 區域的 Amazon EC2 和 Amazon 簡單儲存服務 (Amazon S3) 的兩個 AWS Health 事件範例。


          兩個 AWS Health 事件在 Slack 頻道中如何顯示的螢幕擷取畫面。

自動執行 Amazon EC2 執行個體的動作

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

例如,當針對 Amazon 彈性區塊存放區 (Amazon EBS) 支援的 EC2 執行個體排定 Amazon EC2 執行個體淘汰事件時, AWS Health 會將AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED事件類型傳送到您 AWS Health 的儀表板。當您的規則偵測到此事件類型時,您可以自動執行個體的停止和啟動。如此一來,您就不必手動執行這些動作。

注意

若要自動執行 Amazon EC2 執行個體的動作,執行個體必須由系統管理員管理。

如需詳細資訊,請參閱 Amazon EC2 Linux 執行個體使用者指南 EventBridge中的使用自動化 Amazon EC2

必要條件

您必須先建立 AWS Identity and Access Management (IAM) 政策、建立 IAM 角色並更新角色的信任政策,然後才能建立規則。

請遵循此程序,為您的角色建立客戶管理政策。此原則授予角色代表您執行動作的權限。此程序在 IAM 主控台中使用 JSON 政策編輯器。

建立 IAM 政策
  1. 登入 AWS Management Console 並開啟身分與存取權管理主控台,網址為 https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇政策

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

  4. 請選擇 JSON 標籤。

  5. 複製下列 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 資源名稱 (ARN),輸入您的 AWS 帳戶 ID。

    2. 您也可以取代角色名稱或使用預設值。此範例使用自動化 EvRole。

  6. 選擇下一步:標籤

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

  8. 選擇下一步:檢閱

  9. 在 [檢閱原則] 頁面上,輸入 [名稱],例如 AutotionEV RolePolicy 和選用的 [說明]。

  10. 檢閱 [摘要] 頁面以查看原則允許的權限。如果您滿意您的政策,請選擇 [建立政策]。

此政策定義角色可以採取的動作。若需詳細資訊,請參閱《IAM 使用者指南》中的建立 IAM 政策 (主控台)

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

若要建立 AWS 服務的角色
  1. 登入 AWS Management Console 並開啟身分與存取權管理主控台,網址為 https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)

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

  4. 針對您要允許擔任此角色的服務選擇 EC2

  5. 選擇下一步:許可

  6. 輸入您建立的策略名稱,例如 AutotionEV RolePolicy,然後選取策略旁邊的核取方塊。

  7. 選擇下一步:標籤

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

  9. 選擇下一步:檢閱

  10. 針對角色名稱,輸入自動化 Ev Role。此名稱必須與您建立的 IAM 政策的 ARN 中顯示的名稱相同。

  11. (選用) 在 Role description (角色說明) 中,輸入角色的說明。

  12. 檢閱角色,然後選擇建立角色

如需詳細資訊,請參IAM 使用者指南中的為 AWS 服務建立角色。

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

更新角色的信任原則
  1. 登入 AWS Management Console 並開啟身分與存取權管理主控台,網址為 https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇角色

  3. 在您 AWS 帳戶的角色清單中,選擇您建立的角色名稱,例如自動化 E vRole。

  4. 選擇 Trust Relationships (信任關係) 標籤,然後選擇 Edit Trust Relationship (編輯信任關係)

  5. 對於「策略文件」,請複製下列 JSON、移除預設政策,然後將複製的 JSON 貼到其位置。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com", "events.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  6. 選擇 Update Trust Policy (更新信任政策)。

如需詳細資訊,請參閱《IAM 使用者指南》中的修改角色信任政策 (主控台)

建立規則 EventBridge

遵循此程序在 EventBridge 主控台中建立規則,以便您可以自動執行排定要停用的 EC2 執行個體的停止和啟動。

為 EventBridge Systems Manager 自動化動作建立規則
  1. 在以下位置打開 Amazon EventBridge 控制台 https://console.aws.amazon.com/events/

  2. 在導覽窗格的 Events (事件) 下,選擇 Rules (規則)。

  3. 在 [建立規則] 頁面上,輸入規則的 [名稱] 和 [說明]。

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

  5. 針對服務供應商,選擇 AWS

  6. 針對服務名稱,選擇 Health

  7. 針對事件類型,選擇特定 Health 事件。

  8. 選擇 [特定服務],然後選擇 [EC2]。

  9. 選擇 [特定事件類型],然後選擇 [scheduled Change]。

  10. 選擇 [特定事件類型程式碼],然後選擇事件類型代碼。

    例如,對於 Amazon EC2 EBS 支援的執行個體,請選擇。AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED對於 Amazon EC2 執行個體商店支援的執行個體,請選擇。AWS_EC2_INSTANCE_RETIREMENT_SCHEDULED

  11. 選擇 Any resource (任何資源)

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

    { "source": [ "aws.health" ], "detail-type": [ "AWS Health Event" ], "detail": { "service": [ "EC2" ], "eventTypeCategory": [ "scheduledChange" ], "eventTypeCode": [ "AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED" ] } }
  12. 新增系 Systems Manager 自動化文件目標。在「選取目標」 下,選擇「SSM 自動化」做為「標」。

  13. 對於 Document (文件),請選擇 AWS-RestartEC2Instance

  14. 展開 [設定自動化參數],然後選擇 [輸入變壓器]。

  15. 在「輸入路徑」欄位中輸入{"Instances":"$.resources"}

  16. 對於第二個欄位,輸入{"InstanceId": <Instances>}

  17. 選擇 [使用現有角色],然後選擇您建立的 IAM 角色,例如自動化 E vRole。

    您的目標應該看起來像下面的例子。

    
               EventBridge 主控台中「SSM 自動化」範例的螢幕擷取畫面。
    注意

    如果您沒有具有所需 EC2 和 Systems Manager 許可和受信任關係的現有 IAM 角色,則您的角色將不會顯示在清單中。如需詳細資訊,請參閱 必要條件

  18. 選擇 Create (建立)。

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