使用 Amazon CloudWatch Events 监控部署
您可以在 CodeDeploy 操作中使用 Amazon CloudWatch Events 检测和响应实例或部署状态的更改(称为“事件”)。然后,根据您创建的规则,当部署或实例进入您在规则中指定的状态时,CloudWatch Events 将调用一个或多个目标操作。根据状态更改的类型,您可能想发送通知,捕获状态信息,采取纠正措施,启动事件或采取其他操作。在您的 CodeDeploy 操作中使用 CloudWatch Events 时,您可以选择以下类型的目标:
-
Amazon 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 流,以支持全面、实时的状态监控。
-
当发生指定的部署或实例事件时,使用 CloudWatch 警报操作自动停止、终止、重启或恢复 Amazon EC2 实例。
本主题的其余内容介绍为 CodeDeploy 创建 CloudWatch Events 规则的基本步骤。然而,在创建用于 CodeDeploy 操作的事件规则之前,您应当执行以下操作:
-
完成 CloudWatch Events 先决条件。有关信息,请参阅 Amazon CloudWatch Events 先决条件。
-
熟悉 CloudWatch Events 中的事件、规则和目标。有关更多信息,请参阅什么是 Amazon CloudWatch Events?和新的 CloudWatch Events – 跟踪和响应对您的 Amazon 资源的更改
。 -
创建将在您的事件规则中使用的目标。
要创建 CodeDeploy 的 CloudWatch Events 规则,请执行以下操作:
通过 https://console.aws.amazon.com/cloudwatch/
打开 CloudWatch 控制台。 -
在导航窗格中,选择 Events(事件)。
-
选择创建规则,然后在事件选择器下选择 Amazon CodeDeploy。
-
指定详细信息类型:
-
要设置适用于所有实例和部署状态更改的规则,请选择 Any detail type,然后跳到步骤 6。
-
要设置仅适用于实例的规则,请选择 Specific detail type,然后选择 CodeDeploy Instance State-change Notification。
-
要设置仅适用于部署的规则,请选择 Specific detail type,然后选择 CodeDeploy Deployment State-change Notification。
-
-
指定规则适用的状态更改:
-
要设置适用于所有状态更改的规则,请选择 Any state。
-
要设置仅适用于部分状态更改的规则,请选择 Specific state(s),然后从列表中选择一个或多个状态值。下表列出了您可以选择的状态值:
部署状态值 实例状态值 FAILURE
START
STOP
QUEUED
READY
成功
FAILURE
START
READY
成功
-
-
指定规则适用的 CodeDeploy 应用程序:
-
要设置适用于所有应用程序的规则,请选择 Any application,然后跳到步骤 8。
-
要设置仅适用于一个应用程序的规则,请选择 Specific application,然后从列表中选择该应用程序的名称。
-
-
指定规则适用的部署组:
-
要设置适用于与所选应用程序关联的所有部署组的规则,请选择 Any deployment group。
-
要设置仅适用于与所选应用程序关联的一个部署组的规则,请选择 Specific deployment group(s),然后从列表中选择该部署组的名称。
-
-
审查您的规则设置以确保其符合事件监控要求。
-
在 Targets 区域,选择 Add target*。
-
在 Select target type 列表中,选择您准备为此规则使用的目标类型,然后配置该类型所需的任何其他选项。
-
选择 Configure details(配置详细信息)。
-
在 Configure rule details 页面上,为规则键入名称和说明,然后选择 State 框以立即启用该规则。
-
如果您对规则满意,请选择 Create rule。