如果 Git 存放區中有原始碼或函式,且您想自動建構及設定從存放區持續部署,可以使用 Cloud Run 控制台中的 Cloud Build 或 Developer Connect。
設定完成後,每當有新的修訂版本推送至 Git 存放區的特定分支版本時,Cloud Run 就會使用 Cloud Build 觸發條件,自動建構及部署程式碼。部署至 Cloud Run 後,服務的 Google Cloud 控制台會顯示來源存放區資訊。
在 Cloud Run 控制台中:
如果選取 Cloud Build,您可以從 GitHub 設定持續部署。如需範例,請參閱建立範本存放區並從 Git 持續部署的快速入門導覽課程。
如果選取 Developer Connect (搶先版),您可以從 GitHub、GitLab 和 Bitbucket 存放區設定持續部署。
或者,您也可以使用 Cloud Deploy 設定持續推送軟體更新管道,將 Cloud Run 服務部署至多個環境。
事前準備
- 您必須擁有含
Dockerfile的 Git 存放區,或以 Google Cloud 建構套件支援的語言編寫程式碼。 -
Enable the Cloud Build API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. 如果選取「Developer Connect」(預覽版) 選項,請啟用 Developer Connect API:
必要的角色
如要取得透過 Cloud Build 或 Developer Connect 從 Git 部署 Cloud Run 服務所需的權限,請要求管理員在專案中授予您下列 IAM 角色:
-
Artifact Registry 管理員 (
roles/artifactregistry.admin) -
Cloud Build 編輯器 (
roles/cloudbuild.builds.editor) -
Cloud Run 開發人員 (
roles/run.developer) -
服務帳戶使用者 (
roles/iam.serviceAccountUser) - 服務使用情形管理員 (
roles/serviceusage.serviceUsageAdmin)
執行建構作業的服務帳戶必須具備下列角色:
- Cloud Build 服務帳戶 (
roles/cloudbuild.builds.builder) - Cloud Run 管理員 (
roles/run.admin) - 服務帳戶使用者 (
roles/iam.serviceAccountUser) - 如果選取「Developer Connect」(預覽版) 選項:
- Developer Connect 讀取權杖存取者 (
roles/developerconnect.readTokenAccessor) - 如要連結至 GitLab 或 Bitbucket 存放區:Secret Manager 密鑰存取者 (
roles/secretmanager.secretAccessor)
- Developer Connect 讀取權杖存取者 (
如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果 Cloud Run 服務與Google Cloud API (例如 Cloud 用戶端程式庫) 介接,請參閱服務身分設定指南。 如要進一步瞭解如何授予角色,請參閱「部署權限」和「管理存取權」。
從 Cloud Run 控制台設定持續部署
設定程序會因您是在新服務還是現有服務上設定持續部署而略有不同。按一下適當的分頁標籤,即可瞭解詳情。
新服務
前往 Google Cloud 控制台的 Cloud Run 頁面:
如要建立新服務,請按一下「連結存放區」,顯示「建立服務」表單。
如要修改現有服務,請在服務清單中找出該服務,然後按一下。按一下「連線至存放區」。
選取「Cloud Build」或「Developer Connect」。
如果您選取「Cloud Build」,請參閱「設定 Cloud Build」。
如果選取「Developer Connect」,請參閱「設定 Developer Connect」。
現有服務
前往 Google Cloud 控制台的 Cloud Run 頁面:
在服務清單中找出所需服務,然後按一下。
按一下「Connect to repo」(連結至存放區),然後按照「Set up with Cloud Build」(使用 Cloud Build 設定) 中的指示操作。
設定 Cloud Build
在「Set up with Cloud Build」(設定 Cloud Build) 窗格中:
從清單中選取存放區。請注意,系統需要一些時間才能載入存放區清單。按照提示操作,然後點選「下一步」。
GitHub 是預設的存放區供應商。如果尚未進行驗證,請按一下「Authenticate」(驗證),然後按照操作說明操作。如要連結存放區,請使用 Cloud Build GitHub 應用程式。
如果找不到存放區,請按一下「管理已連結的存放區」連結。按照操作說明,將存放區存取權授予 Cloud Build。
在「建構設定」步驟中,填入下列選項:
分支版本
- 指出執行觸發程序時應使用的來源。您可以在這裡輸入regex。系統會自動驗證相符的分支版本,並顯示在輸入內容下方。請注意,如果只有一個相符的分支,系統會在建立後自動執行觸發程序。
建構類型
Dockerfile:如果存放區應使用 Docker 建構,且包含 Dockerfile,請選取這個選項。
- 在「來源位置」中,指定 Dockerfile 的位置和名稱。這個目錄會做為 Docker 建構作業的結構定義。所有路徑都應與目前目錄相關。
Go、Node.js、Python、Java、.NET Core、Ruby 或 PHP (透過 Google Cloud 的 Buildpacks 使用): 如果存放區應使用 Buildpacks 建構,請選取這個選項。
- 在「建構作業的結構定義目錄」中,指定目錄。
- 在「Entrypoint」 (選用) 中,提供啟動伺服器的指令。例如 Python 的
gunicorn -p :8080 main:app,以及 Java 的java -jar target/myjar.jar。如果將此欄位留空,則使用預設行為。 - 在「函式目標」 (僅適用於函式部署作業) 中,輸入要叫用的函式。否則,請將這個欄位留空。
按一下 [儲存]。
頁面會重新載入,並帶您返回「建立服務」表單。
在「來源存放區」部分中,確認所選設定。
填寫「設定」下方的表單其餘部分。
點選「建立」。
系統會將您重新導向「服務詳細資料」頁面,您可以在這裡追蹤從存放區設定建構及部署的進度。
完成所有步驟後,您可以:
- 在 Cloud Run 控制台中按一下「編輯存放區設定」,即可在 Cloud Build 控制台中編輯 Cloud Build 觸發條件。
- 在「正在從存放區建構和部署」步驟中,按一下「記錄」連結,即可查看建構作業記錄。
- 在「修訂版本詳細資料」部分中,查看來源詳細資料。
手動設定持續部署
如需使用手動程序而非 UI,請參閱手動設定持續部署。
將現有的 Cloud Build 觸發條件附加至 Cloud Run 服務
如果您已有 Cloud Build 觸發條件,可以將標籤新增至 Cloud Run 服務,將觸發條件附加至服務。
如要在 Cloud Run 控制台中新增標籤,請按照下列步驟操作:
前往 Google Cloud 控制台的 Cloud Run 頁面:
選取服務。
針對所選服務,按一下頁面頂端的「標籤」,開啟「標籤」窗格。
新增標籤,以 gcb-trigger-id 做為鍵,並以 Cloud Build 觸發條件的專屬 ID 做為值 (不是觸發條件名稱)。如果 gcb-trigger-id 鍵已存在,請修改值。如要設定標籤,請參閱「設定或修改標籤」。
設定 Developer Connect
在「設定 Developer Connect」窗格中:
選取存放區,然後按一下「下一步」。
如果找不到要選取的存放區,請按一下「連結新的存放區」,開啟「透過 Developer Connect 連結新的存放區」窗格。按一下適當的分頁,進一步瞭解如何連結至其中一個原始碼管理供應商。
GitHub
如果是「GitHub」、「GitHub Enterprise Cloud」和「GitHub Enterprise」選項,請按一下「連線」。
如果沒有看到對話方塊,請關閉所有封鎖彈出式視窗的瀏覽器外掛程式,並確認瀏覽器設定允許彈出式視窗。舉例來說,在 Chrome 中,請按照說明允許彈出式視窗。
按照下列操作說明,在 GitHub 帳戶中授予權限,並連結至存放區。網頁瀏覽器中顯示的提示,取決於 GitHub 帳戶是否已安裝 Cloud Run GitHub 應用程式。
在 Cloud Run 對話方塊中,完成下列步驟:
如果看到 GitHub 帳戶清單,請完成下列步驟,安裝應用程式並連結存放區:
選擇要使用的 GitHub 帳戶。
選取要授予存取權的一或多個存放區。
如果系統提示您重複使用現有的應用程式安裝項目,請完成下列步驟,選擇要在何處設定應用程式:
按一下「GitHub 帳戶」,即可查看已安裝 Google Cloud Run 應用程式的帳戶。如果畫面上顯示您要使用的帳戶,請按一下「確認」選擇該帳戶。
如果找不到要使用的帳戶,請按照下列步驟操作:
選擇「將 GitHub 應用程式安裝至其他 GitHub 帳戶」,然後按一下「確認」。
按照 GitHub 的步驟允許安裝應用程式。
選取要授予存取權的一或多個存放區。
對話方塊關閉後,應用程式安裝作業即完成。
GitLab
GitLab 選項:
-
在「Personal Access Tokens」部分,輸入帳戶的權杖:
- API 存取權杖:輸入具有
api範圍的個人存取權杖。 - 讀取 API 存取權杖:輸入具有
read_api範圍的個人存取權杖。
您有責任確保 GitLab 權杖維持有效。除非權杖建立者或管理員另有規定,否則 GitLab 權杖的生命週期上限為 365 天。如要瞭解如何管理權杖到期設定和通知,請參閱 GitLab 說明文件中的個人存取權杖。
詳情請參閱 GitLab 的個人存取權杖到期說明文件。
- API 存取權杖:輸入具有
按一下「顯示更多」即可查看選用設定。
- 選用步驟:在「Encryption」(加密) 區段中,選取 CMEK 金鑰,加密 Cloud Run 建立的 Secret Manager Secret。
GitLab Enterprise 版本
GitLab Enterprise Edition 選項:
在「主機網址」部分輸入要連線的主機網址。
-
在「Personal Access Tokens」部分,輸入帳戶的權杖:
- API 存取權杖:輸入具有
api範圍的個人存取權杖。 - 讀取 API 存取權杖:輸入具有
read_api範圍的個人存取權杖。
您有責任確保 GitLab 權杖維持有效。除非權杖建立者或管理員另有規定,否則 GitLab 權杖的生命週期上限為 365 天。如要瞭解如何管理權杖到期設定和通知,請參閱 GitLab 說明文件中的個人存取權杖。
詳情請參閱 GitLab 的個人存取權杖到期說明文件。
- API 存取權杖:輸入具有
按一下「顯示更多」即可查看選用設定。
- 選用步驟:在「Encryption」(加密) 區段中,選取 CMEK 金鑰,加密 Cloud Run 建立的 Secret Manager Secret。
Bitbucket
「Bitbucket Cloud」選項:
在「Workspace」(工作區),輸入 Bitbucket Cloud 工作區 ID。
在「存取權杖」部分,輸入 Bitbucket 存取權杖:
按一下「顯示更多」即可查看選用設定。
- 選用步驟:在「Encryption」(加密) 區段中,選取 CMEK 金鑰,加密 Cloud Run 建立的 Secret Manager Secret。
Bitbucket Data Center
「Bitbucket Data Center」選項:
在「主機網址」中,輸入要連線的 Bitbucket Data Center 主機網址。
在「存取權杖」部分,輸入 Bitbucket Cloud 存取權杖:
管理員存取權杖:輸入具有存放區管理員範圍存取權的權杖。
讀取存取權杖:輸入具有存放區讀取範圍存取權的權杖。
按一下「顯示更多」即可查看選用設定。
- 選用步驟:在「Encryption」(加密) 區段中,選取 CMEK 金鑰,加密 Cloud Run 建立的 Secret Manager Secret。
按一下 [連線]。這項程序會在幾秒內完成。
在「建構設定」步驟中,填入下列選項:
分支版本
- 指出執行觸發程序時應使用的來源。您可以在這裡輸入regex。系統會自動驗證相符的分支版本,並顯示在輸入內容下方。請注意,如果只有一個相符的分支,系統會在建立後自動執行觸發程序。
建構類型
Dockerfile:如果存放區應使用 Docker 建構,且包含 Dockerfile,請選取這個選項。
- 在「來源位置」中,指定 Dockerfile 的位置和名稱。這個目錄會做為 Docker 建構作業的結構定義。所有路徑都應與目前目錄相關。
Go、Node.js、Python、Java、.NET Core、Ruby 或 PHP (透過 Google Cloud 的 Buildpacks 使用): 如果存放區應使用 Buildpacks 建構,請選取這個選項。
- 在「建構作業的結構定義目錄」中,指定目錄。
- 在「Entrypoint」(選用) 中,提供啟動伺服器的指令。例如 Python 的
gunicorn -p :8080 main:app,以及 Java 的java -jar target/myjar.jar。如果將此欄位留空,則使用預設行為。 - 在「函式目標」 (僅適用於函式部署作業) 中,輸入要叫用的函式。否則,請將這個欄位留空。
按一下 [儲存]。
填寫「設定」下方的表單其餘部分。
設定完服務後,按一下「建立」,將映像檔部署到 Cloud Run,然後等待部署作業完成。
按一下畫面顯示的網址連結,開啟您所部署服務的穩定專屬端點。