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
构建通知的 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 维护的通知程序(如 Slack 或 SMTP)之外,您还可以使用 cloud-build-notifiers
代码库中提供的库创建您自己的通知程序。
如需了解如何创建自己的通知程序,请参阅创建自己的通知程序。
后续步骤
- 了解如何配置 BigQuery、GitHub Issue、Google Chat、HTTP、Slack 或 SMTP 通知程序。
- 了解如何自动配置通知。
- 了解如何创建您自己的通知程序。