订阅 build 通知

当构建状态发生更改时(例如,创建构建时、构建转换到工作状态时、构建完成时),Cloud Build 会在 Google Pub/Sub 主题上发布消息。每条消息均在 message.data 属性中包含构建资源的 base64 JSON 字符串表示法。您可以在 message.attributes 字段找到构建的唯一 ID 以及构建的状态

默认情况下,消息会发布到 cloud-builds 主题;您还可以在 build 配置文件的 options.pubsubTopic 字段中指定自定义主题名称。如需详细了解如何在 build 配置文件中配置主题名称,请参阅构建通知的 Pub/Sub 主题

您可以将推送或拉取模型用于 Pub/Sub 订阅。

接收构建通知

要接收构建通知,请执行以下操作:

  1. 启用 Cloud Build API

    启用 Cloud Build API

    启用 Cloud Build API 后,Cloud Build Service Agent 服务账号会自动添加到您的项目中。借助该服务账号,您可以从 Pub/Sub 接收构建通知。

    该服务账号采用以下格式,其中 project-number 是您的项目编号:

     service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
    

    如果您在 IAM 页面上没有看到 Cloud Build Service Agent 服务账号,或者无法从 Pub/Sub 接收通知,请按照以下步骤将 Cloud Build Service Agent 服务账号添加到您的项目:

    1. 在 Google Cloud 控制台中打开 IAM 页面:

      打开 IAM 页面

    2. 点击授予访问权限

    3. 添加以下主账号,其中 project-number 是您的项目编号:

      service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
      
    4. 选择服务代理 Cloud Build Service Agent 作为您的角色。

    5. 点击保存

  2. 启用 Pub/Sub API:

    启用 Pub/Sub API

  3. 创建 cloud-builds 主题:

    gcloud pubsub topics create cloud-builds
    

    您还可以在 build 配置文件中定义自定义主题名称,以便将消息发送到自定义主题。在这种情况下,您需要创建一个具有相同自定义主题名称的主题:

    gcloud pubsub topics create topic-name
    

    如需了解详情,请参阅构建通知的 Pub/Sub 主题

    如需详细了解如何管理 Pub/Sub 主题,请参阅管理主题和订阅

推送订阅

推送订阅将消息传送到您定义的 HTTP 端点。消息会在发布到主题后立即传送。

从推送订阅发送的消息如下所示:

{
  "message": {
    "attributes": {
      "buildId": "abcd-efgh...",
      "status": "SUCCESS"
    },
    "data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
    "message_id": "136969346945"
  },
  "subscription": "projects/myproject/subscriptions/mysubscription"
}

拉取订阅

拉取订阅在已订阅的应用轮询时传送消息。轮询订阅时会传送消息。

从拉取订阅发送的消息如下所示:

{
  "receivedMessages": [
    {
      "ackId": "dQNNHlAbEGEIBERNK0EPKVgUWQYyODM2LwgRHFEZDDsLRk1SK...",
      "message": {
        "attributes": {
          "buildId": "abcd-efgh-...",
          "status": "SUCCESS"
        },
        "data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
        "messageId": "19917247034"
      }
    }
  ]
}

订阅 build 更新通知

您可以通过多种方式订阅构建更新通知。 例如,您可以将消息推送到端点编写 Python 应用来轮询订阅

如需了解如何为构建更新设置 Pub/Sub 订阅,请参阅 Pub/Sub 订阅者指南。您还可以了解 Pub/Sub 客户端库,以便更轻松地开发订阅者应用。

如需了解如何使用 Pub/Sub 将构建更新发送到电子邮件或 Slack 等服务,请参阅 Cloud Build 通知程序