教程:设置 CloudWatch 事件规则以接收有关管道状态更改的电子邮件通知 - Amazon CodePipeline
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

教程:设置 CloudWatch 事件规则以接收有关管道状态更改的电子邮件通知

在中设置管道后 Amazon CodePipeline,您可以设置 CloudWatch 事件规则,以便在管道的执行状态或管道中的阶段或操作发生变化时发送通知。有关使用 CloudWatch 事件设置管道状态更改通知的更多信息,请参阅监视 CodePipeline 事件

在本教程中,您配置一个通知以在管道状态变为 FAILED 时发送电子邮件。本教程在创建 CloudWatch 事件规则时使用输入转换器方法。它转换消息架构详细信息以在用户可读的文本中传送消息。

注意

在为本教程创建资源(例如 Amazon SNS 通知和 CloudWatch 事件规则)时,请确保在与您的管道相同的 Amazon 区域创建这些资源。

步骤 1:使用 Amazon SNS 设置电子邮件通知

Amazon SNS 协调使用的主题以将消息传送到订阅端点或客户端。可以使用 Amazon SNS 创建一个通知主题,然后使用您的电子邮件地址订阅该主题。Amazon SNS 主题将作为目标添加到您的 CloudWatch 事件规则中。有关更多信息,请参阅《Amazon Simple Notification Service 开发人员指南》https://docs.amazonaws.cn/sns/latest/dg/

在 Amazon SNS 中创建或标识主题。 CodePipeline 将使用 CloudWatch 活动通过 Amazon SNS 向该主题发送通知。要创建主题,请执行以下操作:

  1. 打开亚马逊 SNS 控制台,网址为 https://console.aws.amazon.com/sns。

  2. 选择创建主题

  3. Create new topic (创建新主题) 对话框中,为 Topic name (主题名称) 键入主题名(例如 PipelineNotificationTopic)。

    使用 Amazon SNS 创建通知主题。
  4. 选择创建主题

    有关更多信息,请参阅 Amazon SNS 开发者指南 中的创建主题

为一个或多个收件人订阅主题以接收电子邮件通知。为收件人订阅主题:

  1. 在 Amazon SNS 控制台中,从主题列表中,选中新主题旁边的复选框。选择操作,然后选择“订阅主题”。

  2. 创建订阅对话框中,确认在主题 ARN 中显示一个 ARN。

  3. 对于协议,选择电子邮件

  4. 对于终端节点,请键入收件人的完整电子邮件地址。

  5. 选择创建订阅

  6. Amazon SNS 向收件人发送订阅确认电子邮件。要接收电子邮件通知,收件人必须在该电子邮件中选择确认订阅链接。在收件人单击该链接后,如果成功订阅,Amazon SNS 将在收件人的 Web 浏览器中显示一条确认消息。

    有关更多信息,请参阅 Amazon SNS 开发者指南 中的订阅主题

步骤 2:创建规则并将 SNS 主题添加为目标

创建以 CodePipeline 作为 CloudWatch 事件源的事件通知规则。

  1. 打开 CloudWatch 控制台,网址为 https://console.aws.amazon.com/cloudwatch/

  2. 在导航窗格中,选择 Events(事件)

  3. 选择创建规则。在事件源下面,选择 Amazon CodePipeline。对于事件类型,请选择管道执行状态更改

  4. 选择特定状态,然后选择 FAILED

  5. 对于事件模式预览窗格,请选择编辑以打开 JSON 编辑器。添加 pipeline 参数以及管道名称,如以下示例中名为“myPipeline”的管道所示。

    您可以复制此处的事件模式并将其粘贴到控制台中:

    { "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Pipeline Execution State Change" ], "detail": { "state": [ "FAILED" ], "pipeline": [ "myPipeline" ] } }
  6. 对于目标,选择添加目标

  7. 在目标列表中,选择 SNS 主题。对于主题,请输入刚创建的主题。

  8. 展开配置输入,然后选择输入转换器

  9. 输入路径框中,键入以下键值对。

    { "pipeline" : "$.detail.pipeline" }

    输入模板框中,键入以下内容:

    "The Pipeline <pipeline> has failed."
  10. 选择 Configure details(配置详细信息)

  11. 配置规则详细信息页中,键入一个名称和可选的描述。对于状态,请将已启用框保持选中状态。

  12. 选择创建规则

  13. 确认现在 CodePipeline 正在发送构建通知。例如,检查您的收件箱中现在是否有构建通知电子邮件。

  14. 要更改规则的行为,请在 CloudWatch 控制台中选择规则,然后选择操作编辑。编辑该规则,选择配置详细信息,然后选择更新规则

    要停止使用规则发送生成通知,请在 CloudWatch 控制台中选择规则,然后选择操作禁用

    要删除规则,请在 CloudWatch 控制台中选择规则,然后选择操作删除

步骤 3:清理资源

完成本教程之后,您应该删除管道及其使用的资源,以避免为继续使用这些资源付费。

有关如何清理 SNS 通知和删除亚马逊 CloudWatch 事件规则的信息,请参阅清理(取消订阅亚马逊 SNS 主题)和《亚马逊活动 API 参考》DeleteRule中的参考资料。 CloudWatch