Cloud Build 可讓您建立觸發條件,從 Bitbucket Data Center 託管的存放區建構,以便因應與 Bitbucket Data Center 存放區相關聯的事件 (例如提交推送或提取要求) 執行建構作業。
本頁說明如何為在私有網路中代管的 Bitbucket Data Center 執行個體啟用觸發功能。
事前準備
啟用 Cloud Build 和 Secret Manager API。
啟用 API 時所需的角色
您必須具備
serviceusage.services.enable權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。
- 按照操作說明連結 Bitbucket Data Center 主機。
- 按照操作說明連結 Bitbucket Data Center 存放區。
透過私人網路中的 Bitbucket Data Center 建構存放區
如果 Bitbucket Data Center 執行個體只能在虛擬私有雲網路中存取,您需要設定 VPC 網路 Service Directory 服務,並使用私人集區建構。含有虛擬私有雲網路的專案,可以與含有 Service Directory 服務的專案不同。請按照下列步驟設定 Service Directory,並建立 Bitbucket Data Center 觸發程序:
將專案 IAM 管理員角色授予Google Cloud 您要建立 Service Directory 服務的專案。如要瞭解如何授予 IAM 角色,請參閱設定 Cloud Build 資源的存取權。
如要設定服務目錄服務,請完成下列步驟:
-
您在命名空間中指定的區域必須與 Cloud Build 主機連線中指定的區域相符。
在命名空間中設定服務。
為已註冊的服務設定端點。
設定端點時,必須使用內部 IP 位址並指定 HTTPS 通訊埠編號,Cloud Build 才能連上您的服務。
如要進一步瞭解如何設定私人網路存取權,請參閱「設定私人網路存取權」。Service Directory 也與負載平衡器和 Google Kubernetes Engine (GKE) 等服務整合。詳情請參閱「Service Directory 和負載平衡總覽」或「Service Directory for GKE 總覽」。
-
將 Service Directory 存取權授予 Cloud Build 服務代理人:
export PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)") export CLOUD_BUILD_SERVICE_AGENT="service-$PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding PROJECT_ID_CONTAINING_SERVICE_DIRECTORY \ --member="serviceAccount:$CLOUD_BUILD_SERVICE_AGENT" \ --role="roles/servicedirectory.viewer"更改下列內容:
- PROJECT_ID 是您的 Cloud Build 專案 ID。
- PROJECT_ID_CONTAINING_SERVICE_DIRECTORY 是含有 Service Directory 的Google Cloud 專案 ID。
將虛擬私有雲網路資源存取權授予 Cloud Build 服務代理人:
export PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)") export CLOUD_BUILD_SERVICE_AGENT="service-$PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding PROJECT_ID_CONTAINING_NETWORK_RESOURCE \ --member="serviceAccount:$CLOUD_BUILD_SERVICE_AGENT" \ --role="roles/servicedirectory.pscAuthorizedService"更改下列內容:
- PROJECT_ID 是您的 Cloud Build 專案 ID。
- PROJECT_ID_CONTAINING_NETWORK_RESOURCE 是Google Cloud 專案的 ID,該專案包含您的網路資源。
請按照操作說明建立 Bitbucket 資料中心觸發程序,以便建構託管於 Bitbucket 資料中心執行個體的存放區。
將 Bitbucket Data Center 主機連線至 Cloud Build 時,如果包含自簽或私有憑證,必須將主機 URI 設為憑證的主體別名 (SAN)。
現在,Bitbucket Data Center 觸發程序會根據設定,自動在 Bitbucket Data Center 執行個體上叫用建構作業。
使用 Service Directory 連線至外部主機 Google Cloud
Service Directory 會使用 IP 位址範圍 35.199.192.0/19,連線至 Google Cloud外部的主機。您必須將這個範圍新增至防火牆的許可清單。此外,您必須設定私人網路,透過 Cloud VPN 或 Cloud Interconnect 連線轉送這個範圍。
如果連線使用 Cloud Router,您可以設定連線,將範圍傳達至私人網路。
詳情請參閱「設定私人網路存取權」。
使用 Cloud Load Balancing 連線至外部主機 Google Cloud
如果網路設定不允許您將 Service Directory IP 位址範圍 35.199.192.0/19 路由至 Cloud VPN 或 Cloud Interconnect,可以使用 Cloud Load Balancing 建立負載平衡器,將流量導向主機。
建立 Service Directory 端點時,請務必使用負載平衡器轉送規則的 IP 位址,而非主機的 IP 位址。建立端點時,您可以使用內部 HTTPS 負載平衡器或內部傳輸控制通訊協定 (TCP) 負載平衡器。
建立 TCP 負載平衡器時,請注意下列事項:
- 您只需要混合式連線網路端點群組 (NEG),即可連上主機。
- TCP 負載平衡器不需要 SSL 憑證的未加密私密金鑰。
- Cloud VPN 設定必須使用 Cloud Router 和全域動態轉送。如果 Cloud VPN 使用靜態路徑,您可以改用 Cloud Service Mesh 代理伺服器。詳情請參閱「為混合式部署設定網路邊緣服務」。
如要進一步瞭解如何建立 HTTPS 負載平衡器,請參閱「設定具備混合式連線的內部應用程式負載平衡器」。如要進一步瞭解如何建立 TCP 負載平衡器,請參閱「使用混合式連線設定區域性內部 Proxy 網路負載平衡器」。
資料共用
從 Cloud Build 傳送至 Bitbucket Data Center 的資料可協助您依名稱識別觸發條件,並在 Bitbucket Data Center 存放區中查看建構結果。
Cloud Build 和 Bitbucket Data Center 會共用下列資料:
- Google Cloud 專案 ID
- 觸發條件名稱
後續步驟
- 瞭解如何建立及管理自動建構觸發條件。
- 瞭解如何在 Compute Engine 上執行藍綠部署。