Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
如何使用 EventBridge 為 CloudWatch 警示建立自訂回應?
我想使用 Amazon EventBridge 透過我的 Amazon CloudWatch 警示執行自訂動作。
簡短描述
您可以使用與 EventBridge 整合的 CloudWatch 警示來自動修復或復原您的環境。
您可以使用 EventBridge 規則來監控 CloudWatch 警示中的組態變更,例如建立、更新或刪除。您也可以使用規則來監控狀態變更,例如確定、警示或不足。您可以將規則與任何支援的目標建立關聯。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
當 CloudWatch 遇到狀態變更時,它會傳送 Amazon Simple Notification Service (Amazon SNS) 通知或調用 AWS Lambda 函數。或者,它可能會使用 Amazon Elastic Compute Cloud (Amazon EC2) 或 AWS Auto Scaling 動作進行回應。
您可以使用 EventBridge 規則來建立自訂動作。發生狀態變更時,EventBridge 規則會調用目標以執行自訂回應。您必須在與 CloudWatch 警示相同的區域中建立規則。
建立資源以執行自訂動作
請確定您所建立用來執行自訂動作的資源是 EventBridge 支援的目標。
建立 CloudWatch 警示
請完成下列步驟:
- 開啟 CloudWatch console (CloudWatch 主控台)。
- 在導覽窗格中,選擇 Alarms (警示),然後選擇 All alarms (所有警示)。
- 選擇 Create alarm (建立警示)。
- 選擇 Select metric (選取指標)。
- 選擇 Graphed metrics (圖表化指標) 索引標籤。
- 選取 Statistic (統計資料),例如 Average (平均值)、Maximum (最大值) 或 p99。
- 選取 Period (期間),例如 1 分鐘。
- 選擇 Select metric (選取指標)。
- 在 Conditions (條件) 中,選取 threshold type (閾值類型)、alarm condition (警示條件) 和 threshold value (閾值) 的值。
**注意:**這些參數會決定警示何時變更狀態。 - 選擇 Next (下一步)。
- 在 Configure Actions (設定動作) 頁面的 Notification (通知) 區段中,選擇 Remove (移除)。
**注意:**該動作由對應的 EventBridge 目標提供。 - 選擇 Next (下一步)。
- 輸入警示的名稱和說明。然後,選擇 Next (下一步)。
- 在 Preview and create (預覽並建立) 下,檢閱警示組態。然後,選擇 Create alarm (建立警示)。
**注意:**如需如何設定 CloudWatch 警示的詳細資訊,請參閱根據靜態閥值建立 CloudWatch 警示。
建立 EventBridge 規則
請完成下列步驟:
- 開啟 EventBridge console (EventBridge 主控台)。
- 在導覽窗格中,選擇 Rules (規則)。
- 選擇 Create rule (建立規則)。
- 輸入 Name (名稱)。
- (選用) 輸入規則的說明。
- 在 Event bus (事件匯流排) 中,選擇 AWS 預設事件匯流排。
- 在 Rule type (規則類型) 中,選擇 Rule with an event pattern (具有事件模式的規則)。
- 選擇 Next (下一步)。
- 在 Creation method (建立方法) 中,選擇 Custom pattern (JSON editor) (自訂模式 (JSON 編輯器))。
- 在 Event Pattern (事件模式) 中,複製並自訂其中一種範例事件模式。以下範例會在特定警示更新時,因 CloudWatch 警示組態變更而觸發:
{ "source": ["aws.cloudwatch"], "detail-type": ["CloudWatch Alarm Configuration Change"], "detail": { "alarmName": ["NGiNX 4XX Responses"], "operation": ["update"] } }
以下範例會在特定命名空間與指標更新時,因 CloudWatch 警示組態變更而觸發:
{ "source": ["aws.cloudwatch"], "detail-type": ["CloudWatch Alarm Configuration Change"], "detail": { "configuration": { "metrics": { "metricStat": { "metric": { "name": ["CPUUtilization"], "namespace": ["AWS/EC2"] } } } } } }
以下範例會在特定警示處於警示狀態時,因 CloudWatch 警示狀態變更而觸發:
{ "source": ["aws.cloudwatch"], "detail-type": ["CloudWatch Alarm State Change"], "detail": { "alarmName": ["NGiNX 4XX Responses"], "state": { "value": ["ALARM"] } } }
- 選擇 Next (下一步)。
- 在 Select target(s) (選取目標) 區段中,選擇執行自訂邏輯的目標,然後選擇 Next (下一步)。
- 將任何相關標籤新增至規則,然後選擇 Next (下一步)。
- 選擇 Create rule (建立規則)。
驗證規則
請執行下列動作:
- 請確認該規則會在監控警示組態的情況下觸發,例如建立、更新或刪除警示。
- 請確認該規則會在監控警示狀態時觸發。使用 SetAlarmState API 作業暫時變更警示狀態。
下列 AWS CLI 命令範例會強制警示進入警示狀態:
aws cloudwatch set-alarm-state \\--alarm-name "NGiNX 4XX Responses" \\ \--state-value ALARM \\ \--state-reason "Validation Testing"
若要確認您的 EventBridge 規則是否調用了目標,請使用 TriggeredRules、Invocations 和 FailedInvocations 指標。若要尋找指標,請瀏覽至您的規則,然後在 EventBridge console (EventBridge 主控台) 中選擇 Monitoring (監控) 索引標籤。或者,在 AWS/Events 命名空間中的 CloudWatch console (CloudWatch 主控台) 中檢視指標。
相關資訊
- 語言
- 中文 (繁體)

相關內容
- 已提問 2 年前
AWS 官方已更新 1 年前