Cloud Build 通知程序

Cloud Build 通知程序是可在 Cloud Run 上作为容器运行的 Docker 映像。在订阅者应用轮询时,Cloud Build 通知程序会使用推送订阅将消息传送到配置的服务(例如 Slack 或 SMTP 服务器)。

本页面简要介绍了 Cloud Build 通知器。

Cloud Build 通知程序

Cloud Build 会将所有构建事件更新以及构建元数据发送到 Pub/Sub,具体是发送到 cloud-builds 主题或用户定义的主题。Cloud Build 通知程序可以配置为监听该主题,过滤收到的消息,以及通过 Cloud Run 向您的服务发送消息。

所有通知程序均使用存储在 Cloud Storage 中的通用 YAML 规范进行配置。如果您选择的服务需要身份验证,其凭据会存储在 Secret Manager 中。Cloud Run 会路由您的消息,并将通知发送到您的服务。

下图展示了 Cloud Build 如何与其他产品(例如 Pub/Sub 和 Cloud Run)互动以发送通知: Google Cloud

Cloud Build 通知程序示意图

构建通知的 Pub/Sub 主题

默认情况下,Cloud Build 会将构建通知发送到名为 cloud-builds 的 Pub/Sub 主题(如果存在)。您还可以创建自定义 Pub/Sub 主题以接收 build 通知。在构建配置文件中,options.pubsubTopic 字段用于定义 Cloud Build 向哪个主题发送通知:

  • 如果将 options.pubsubTopic 留空,Cloud Build 将使用默认值 cloud-builds 作为该文件中 build 的主题名称。因此,如果您创建 cloud-builds 主题,并在所有 build 配置文件中将 options.pubsubTopic 留为未定义,则该主题会收到您的所有 build 通知。

  • 如果您在 options.pubsubTopic 中指定自定义主题名称,Cloud Build 会向该主题发送该 build 配置文件的通知。如果您不希望将所有 build 通知发布到同一主题,自定义主题名称会很有用。

    在 build 配置文件中使用自定义主题名称时,您还必须向默认 Cloud Build 服务账号以外的任何服务账号分配 roles/pubsub.publisher 角色。

将 build 通知发布到跨项目的 Pub/Sub 主题

如需将 build 通知发布到与执行 build 的项目不同的项目中的 Pub/Sub 主题,请向目标项目中的服务账号提供 roles/pubsub.publisher 角色。

例如,您有项目 A 和项目 B。您使用服务账号 A 在项目 A 中执行 build,并希望将 build 通知发布到项目 B 中的 Pub/Sub 主题。为此,您可以通过运行以下命令,向服务账号 A 授予项目 B 中的 roles/pubsub.publisher 角色:

  gcloud projects add-iam-policy-binding ProjectB --member 'serviceAccount:ServiceAccountA' --role 'roles/pubsub.publisher'

然后,您可以使用如下构建配置,以便在项目 A 中执行构建并将构建通知发布到项目 B:

  steps:
    - name: ubuntu
      args:
        - pwd
  serviceAccount: projects/ProjectA/serviceAccounts/ServiceAccountA
  options:
    pubsubTopic: projects/ProjectB/topics/CustomTopic
    logging: desired-logging-option

Cloud Build 提供的受支持的通知程序

Cloud Build 在 cloud-build-notifiers 存储库中提供并维护可部署的通知程序映像。下表列出了可用的通知程序:

通知程序 说明
bigquery 将构建数据写入 BigQuery 表
githubissues 使用 GitHub webhook 针对 GitHub 代码库创建问题
googlechat 使用 Google Chat 网络钩子将消息发布到 Google Chat 聊天室
http 将 JSON 载荷发送到另一个 HTTP 端点
slack 使用 Slack 网络钩子将消息发布到 Slack 频道
smtp 通过 SMTP 服务器发送电子邮件

如需详细了解如何配置每种通知器,请参阅每项服务对应的页面:

自动配置通知

Cloud Build 提供设置脚本,可用于自动配置Cloud Build 支持的通知程序的通知。

如需了解如何为 Cloud Build 支持的通知器配置通知,请参阅自动配置通知

创建自己的通知程序

除了 Cloud Build 维护的通知程序(如 SlackSMTP)之外,您还可以使用 cloud-build-notifiers 代码库中提供的库创建您自己的通知程序。

如需了解如何创建自己的通知程序,请参阅创建自己的通知程序

后续步骤