教程:设置 CloudWatch Events 规则以接收管道状态更改的电子邮件通知 - AWS CodePipeline

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

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

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

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

注意

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

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

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

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

  1. 通过以下网址打开 Amazon 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 Events 通知规则。

  1. 访问 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

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

  3. 选择创建规则。在事件源下面,选择 AWS 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 通知并删除 Amazon CloudWatch Events 规则的信息,请参阅清除(取消订阅 Amazon SNS 主题)并参考 Amazon CloudWatch Events API 参考中的 DeleteRule