

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

# 使用 Amazon CloudWatch Events 監控部署
<a name="monitoring-cloudwatch-events"></a>

您可以使用 Amazon CloudWatch Events 來偵測和回應 CodeDeploy 操作中執行個體或部署 (「事件」) 狀態的變更。然後，根據您建立的規則，當部署或執行個體進入您在規則中指定的狀態時，CloudWatch Events 會叫用一或多個目標動作。根據狀態變更的類型，建議您傳送通知、擷取狀態資訊、採取修正動作、啟動事件，或採取其他動作。使用 CloudWatch Events 做為 CodeDeploy 操作的一部分時，您可以選取下列類型的目標：
+ AWS Lambda 函數
+  Kinesis 串流
+ Amazon SQS 佇列
+ 內建目標 (`EC2 CreateSnapshot API call`、、 `EC2 RebootInstances API call` `EC2 StopInstances API call` 和 `EC2 TerminateInstances API call`)
+ Amazon SNS 主題

下列為若干使用案例：
+ 當部署失敗時，使用 Lambda 函數傳送通知到 Slack 通道。
+ 推送部署或執行個體的資料到 Kinesis 串流以支援完整且即時的狀態監控。
+ 使用 CloudWatch 警示動作，在您指定的部署或執行個體事件發生時，自動停止、終止、重新啟動或復原 Amazon EC2 執行個體。

本主題的其餘部分說明為 CodeDeploy 建立 CloudWatch Events 規則的基本程序。不過，在建立事件規則以用於 CodeDeploy 操作之前，您應該執行下列動作：
+ 完成 CloudWatch Events 先決條件。如需詳細資訊，請參閱 [Amazon CloudWatch Events 先決條件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CWE_Prerequisites.html)。
+ 熟悉 CloudWatch Events 中的事件、規則和目標。如需詳細資訊，請參閱[什麼是 Amazon CloudWatch Events？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html)和[新的 CloudWatch Events – 追蹤和回應 AWS 資源的變更](https://aws.amazon.com/blogs/aws/new-cloudwatch-events-track-and-respond-to-changes-to-your-aws-resources/)。
+ 建立您將在事件規則中使用的一或多個目標。

**若要為 CodeDeploy 建立 CloudWatch Events 規則：**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Events (事件)**。

1. 選擇 **Create rule (建立規則)**，然後在 **Event selector (事件選擇器)** 下，選擇 **AWS CodeDeploy**。

1. 指定一種詳細資訊類型：
   + 若要建立應用在執行個體與部署的所有變更狀態的規則，請選擇 **Any detail type (任何詳細資訊型態)**，然後跳到步驟六。
   + 若要建立僅應用在執行個體的規則，請選擇 **Specific detail type (特定詳細資訊類型)**，然後選擇 **CodeDeploy Instance State-change Notification (CodeDeploy 執行個體狀態改變通知)**。
   + 若要建立僅應用在部署的規則，請選擇 **Specific detail type (特定詳細資訊類型)**，然後選擇**CodeDeploy Instance State-change Notification (CodeDeploy 執行個體狀態改變通知)**。

1. 指定規則套用至的狀態變更：
   + 若要建立應用至所有狀態變更的規則，請選擇 **Any state (任何狀態)**。
   + 若要建立僅應用至部分狀態變更的規則，請選擇 **Specific state(s) (特定狀態)**，然後從清單中選擇一個或多個狀態值。您可以選擇下表列出的狀態值，：  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/codedeploy/latest/userguide/monitoring-cloudwatch-events.html)

1. 指定套用規則的 CodeDeploy 應用程式：
   + 若要建立應用至所有應用程式的規則，請選擇 **Any application (任何應用程式)**，然後跳至步驟八。
   + 若要建立僅套用到單一個應用程式的規則，請選擇 **Specific application (指定應用程式)**，然後從清單中選擇此應用程式。

1. 指定部署群組的規則應用在：
   + 若要建立應用在與選定的應用程式相關之所有部署群組的規則，請選擇 **Any deployment group (任何部署群組)**。
   + 若要建立僅應用在與選定的應用程式相關的單一部署群組，請選擇 **Specific deployment group(s) (特定部署群組)**，然後從清單選擇此部署群組。

1. 檢閱您的規則設定，確定其符合您的事件監控要求。

1. 在 **Targets (目標)** 區域中選擇 **Add target\$1 (新增目標\$1)**。

1. 在 **Select target type** (選擇目標類型) 清單中，選擇您準備好使用此規則的目標類型，然後設定此類型所需的任何其他選項。

1. 選擇**設定詳細資訊**。

1. 在 **Configure rule details (設定規則詳細資訊)** 頁面上，輸入規則的名稱和描述，然後選取 **State (狀態)** 方塊啟用規則。

1. 如果您對此規則感到滿意，請選擇 **Create rule (建立規則)**。