訂閱版本通知

當您的建構狀態變更時,例如建立建構、建構轉變至工作狀態,以及建構完成時,Cloud Build 會在 Google Pub/Sub 主題上發布訊息。每則訊息都包含 message.data 屬性中 Build 資源的 Base64 JSON 字串表示法。您可以在 message.attributes 欄位中找到版本的專屬 ID 和狀態

根據預設,訊息會發布至 cloud-builds 主題;您也可以在建構設定檔的 options.pubsubTopic 欄位中指定自訂主題名稱。如要進一步瞭解如何在建構設定檔中設定主題名稱,請參閱「接收建構通知的 Pub/Sub 主題」。

您可以針對 Pub/Sub 訂閱項目使用推送或提取模型

接收建構通知

如要接收版本通知,請按照下列步驟操作:

  1. 啟用 Cloud Build API:

    啟用 Cloud Build API

    啟用 Cloud Build API 時,系統會自動將 Cloud Build 服務代理人服務帳戶新增至專案。服務帳戶可讓您接收來自 Pub/Sub 的版本通知。

    服務帳戶的格式如下,其中 project-number 是您的專案編號:

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

    如果您在 IAM 頁面上找不到 Cloud Build 服務代理人服務帳戶,或是無法收到 Pub/Sub 的通知,請按照下列步驟在專案中新增 Cloud Build 服務代理人服務帳戶:

    1. 在 Google Cloud 控制台中開啟「IAM」頁面:

      開啟 IAM 頁面

    2. 按一下「授予存取權」

    3. 新增下列原則,其中 project-number 是您的專案編號:

      service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
      
    4. 選取「Service Agents」 >「Cloud Build Service Agent」做為角色。

    5. 按一下 [儲存]

  2. 啟用 Pub/Sub API:

    啟用 Pub/Sub API

  3. 建立 cloud-builds 主題:

    gcloud pubsub topics create cloud-builds
    

    您也可以在建構設定檔中定義自訂主題名稱,讓訊息改為傳送至自訂主題。在這種情況下,您會建立具有相同自訂主題名稱的主題:

    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"
      }
    }
  ]
}

訂閱建構更新通知

您可以透過多種方式訂閱建構更新通知。例如,您可以將訊息推送至端點,或撰寫輪詢訂閱項目的 Python 應用程式

如要瞭解如何為建構更新設定 Pub/Sub 訂閱項目,請參閱 Pub/Sub 訂閱者指南。您也可以瞭解 Pub/Sub 用戶端程式庫,這有助於更輕鬆地開發訂閱者應用程式。

如要瞭解如何使用 Pub/Sub 將建構更新傳送至電子郵件或 Slack 等服務,請參閱「Cloud Build 通知器」。