本文說明如何在私人集區中執行建構作業。如果您剛開始使用私人集區,請參閱私人集區總覽。
事前準備
請務必按照「建立及管理私人集區」一文的步驟建立私人集區。
如要使用本指南提供的指令列範例,請安裝及設定 Google Cloud CLI。
您可以透過同一個 Google Cloud 專案建立私人集區和 Cloud Build 建構作業,也可以使用不同的專案。如果建構作業與私有集區位於不同專案,請在 gcloud CLI 中將預設專案設為建構作業的來源專案:
gcloud config set project BUILD_ORIGIN_PROJECT_ID
IAM 權限
如要透過 gcloud CLI 或 Cloud Build API 執行建構作業,請在私人集區專案中,將工作站集區使用者角色授予要求建構作業的使用者或服務帳戶。
如要使用觸發條件自動執行建構作業,請按照下列步驟操作:
- 如果您啟動建構作業的專案,與私有集區所在的專案相同,則不需要授予任何權限。
如果啟動建構作業的專案與私人集區所在的專案不同,請在建立建構作業的 worker 集區專案中,將 WorkerPool User 角色授予觸發程序使用的服務帳戶:
控制台
在 Google Cloud 控制台中,開啟「IAM」頁面。
在頁面頂端的專案選取器下拉式選單中,選取含有私人集區的專案。
按一下「授予存取權」。
輸入下列主體和角色設定:
新增主體:輸入您搭配觸發程序使用的服務帳戶電子郵件地址。
指派角色:選取 Cloud Build WorkerPool 使用者角色。
按一下「儲存」,即可儲存新的 IAM 權限。
gcloud
如要將觸發專案中的建構服務帳戶新增至 workerpool 專案,並授予 cloudbuild.workerPoolUser 角色:
gcloud projects add-iam-policy-binding PRIVATEPOOL_PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT \ --role=roles/cloudbuild.workerPoolUser將上述指令中的預留位置值替換為下列值:
PRIVATEPOOL_PROJECT_ID是執行建構作業的私人集區所屬專案的 ID。SERVICE_ACCOUNT是您透過觸發條件執行建構作業時使用的服務帳戶電子郵件地址。
執行建構
您可以從建立私有集區的 Google Cloud 專案提交建構版本,也可以從其他 Google Cloud 專案提交。您可以在建構設定檔中指定私有集區,也可以直接在 gcloud 指令中指定:
在建構設定檔中指定私人集區:
在 Cloud Build 設定檔中,新增
pool選項,並指定要執行建構作業的私人集區完整資源名稱:YAML
steps: - name: 'bash' args: ['echo', 'I am running in a private pool!'] options: pool: name: 'projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID'JSON
{ "steps": [ { "name": "bash", "args": [ "echo", "I am running in a private pool!" ] } ], "options": { "pool" : { "name" : "projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID" } } }將上述設定檔中的預留位置值替換為下列值:
PRIVATEPOOL_PROJECT_ID:私人集區所在的 Google Cloud 專案。REGION:您建立私人集區的區域。PRIVATEPOOL_ID:您在建立私人集區時指定的專屬私人集區 ID。
使用上述建立的建構設定檔,透過
gcloud或 API 執行建構,或使用觸發條件。如果您的執行個體是代管於地端部署環境,Cloud Build 也會為多個外部原始碼管理系統提供觸發程序功能支援,例如 GitHub Enterprise 或 Bitbucket Server。
在 gcloud 指令中指定私人集區:
您可以在 gcloud 指令中指定私人集區,而不是在建構設定檔中指定。舉例來說,假設您有下列建構設定檔:
YAML
steps:
- name: 'bash'
args: ['echo', 'I am running in a private pool!']
JSON
{
"steps": [
{
"name": "bash",
"args": [
"echo",
"I am running in a private pool!"
]
}
],
}
下列指令會使用建構設定檔進行建構,並在指令中指定工作站集區:
gcloud builds submit --config=CONFIG_FILE
--worker-pool=projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID
將上述指令中的預留位置值替換為下列值:
CONFIG_FILE:建構設定檔的路徑。PRIVATEPOOL_ID:您在建立私人集區時指定的專屬私人集區 ID。PRIVATEPOOL_PROJECT_ID:私人集區所在的 Google Cloud 專案。REGION:您建立私人集區的區域。
後續步驟
- 瞭解如何建立及管理私人集區。
- 瞭解如何搭配私人集區使用 VPC Service Controls。
- 瞭解如何建立及管理自動建構觸發條件。
- 瞭解如何從 GitHub Enterprise 建構存放區。
- 瞭解如何從 Bitbucket Server 建構存放區。