

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Amazon CloudWatch 事件监控部署
<a name="monitoring-cloudwatch-events"></a>

您可以使用 Amazon CloudWatch Events 来检测 CodeDeploy 操作中实例或部署（“事件”）状态的变化并做出反应。然后，根据您创建的规则，当部署或实例进入您在规则中指定的状态时， CloudWatch 事件将调用一个或多个目标操作。根据状态更改的类型，您可能想发送通知，捕获状态信息，采取纠正措施，启动事件或采取其他操作。在 CodeDeploy 操作中使用 CloudWatch 事件时，您可以选择以下类型的目标：
+ AWS Lambda 函数
+  Kinesis Streams
+ Amazon SQS 队列
+ 内置目标（`EC2 CreateSnapshot API call`、`EC2 RebootInstances API call`、`EC2 StopInstances API call` 和 `EC2 TerminateInstances API call`）
+ Amazon SNS 主题

下面是一些用例：
+ 每当部署失败时使用 Lambda 函数向 Slack 通道传送通知。
+ 将有关部署或实例的数据推送到 Kinesis 流，以支持全面、实时的状态监控。
+ 当您指定的部署或 EC2实例事件发生时，使用 CloudWatch 警报操作自动停止、终止、重启或恢复 Amazon 实例。

本主题的其余部分描述了为创建 CloudWatch 事件规则的基本过程 CodeDeploy。但是，在创建用于 CodeDeploy 操作的事件规则之前，应执行以下操作：
+ 完成 CloudWatch 活动先决条件。有关信息，请参阅 [Amazon CloudWatch 活动先决条件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CWE_Prerequisites.html)。
+ 熟悉事件中的事件、规则和目标。 CloudWatch 有关更多信息，请参阅[什么是 Amazon CloudWatch 活动？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) 和[新 CloudWatch 事件 — 跟踪和响应 AWS 资源的变化](https://aws.amazon.com/blogs/aws/new-cloudwatch-events-track-and-respond-to-changes-to-your-aws-resources/)。
+ 创建将在您的事件规则中使用的目标。

**要为以下 CloudWatch 各项创建事件规则 CodeDeploy：**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在导航窗格中，选择 **Events（事件）**。

1. 选择**创建规则**，然后在**事件选择器**下选择 **AWS CodeDeploy**。

1. 指定详细信息类型：
   + 要设置适用于所有实例和部署状态更改的规则，请选择 **Any detail type**，然后跳到步骤 6。
   + 要制定仅适用于实例的规则，请选择**特定详细信息类型**，然后选择**CodeDeploy 实例状态更改通知**。
   + 要制定仅适用于部署的规则，请选择**特定详细信息类型**，然后选择**CodeDeploy 部署状态更改通知**。

1. 指定规则适用的状态更改：
   + 要设置适用于所有状态更改的规则，请选择 **Any state**。
   + 要设置仅适用于部分状态更改的规则，请选择 **Specific state（s）**，然后从列表中选择一个或多个状态值。下表列出了您可以选择的状态值：  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/monitoring-cloudwatch-events.html)

1. 指定规则适用于哪些 CodeDeploy 应用程序：
   + 要设置适用于所有应用程序的规则，请选择 **Any application**，然后跳到步骤 8。
   + 要设置仅适用于一个应用程序的规则，请选择 **Specific application**，然后从列表中选择该应用程序的名称。

1. 指定规则适用的部署组：
   + 要设置适用于与所选应用程序关联的所有部署组的规则，请选择 **Any deployment group**。
   + 要设置仅适用于与所选应用程序关联的一个部署组的规则，请选择 **Specific deployment group（s）**，然后从列表中选择该部署组的名称。

1. 审查您的规则设置以确保其符合事件监控要求。

1. 在 **Targets** 区域，选择 **Add target\$1**。

1. 在 **Select target type** 列表中，选择您准备为此规则使用的目标类型，然后配置该类型所需的任何其他选项。

1. 选择 **Configure details（配置详细信息）**。

1. 在 **Configure rule details** 页面上，为规则键入名称和说明，然后选择 **State** 框以立即启用该规则。

1. 如果您对规则满意，请选择 **Create rule**。