如果 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 buildpack 支援的語言編寫而成。 如果尚未啟用,請啟用 Cloud Build API。
啟用 API 時所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。如果選取「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 Secret Accessor (
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」(連結至存放區),然後按照「設定 Cloud Build」一文中的指示操作。
設定 Cloud Build
在「Set up with Cloud Build」(設定 Cloud Build) 窗格中:
從清單中選取存放區。請注意,系統需要一些時間才能載入存放區清單。按照提示操作,然後點選「下一步」。
GitHub 是預設的存放區供應商。如果尚未進行驗證,請按一下「Authenticate」(驗證),然後按照操作說明操作。如要連結存放區,請使用 Cloud Build GitHub 應用程式。
如果找不到存放區,請按一下「管理已連結的存放區」連結。按照操作說明授予存放區 Cloud Build 存取權。
在「Build Configuration」步驟中,填寫下列選項:
分支版本
- 指出執行觸發條件時應使用的來源。您可以在這裡輸入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 控制台中點選「Edit repo settings」(編輯存放區設定),即可在 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 Account」,即可查看已安裝 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 密鑰。
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 密鑰。
Bitbucket
「Bitbucket Cloud」選項:
在「Workspace」(工作區) 部分,輸入 Bitbucket Cloud 工作區 ID。
在「存取權杖」部分,輸入 Bitbucket 存取權杖:
按一下「顯示更多」即可查看選用設定。
- 選用步驟:在「Encryption」(加密) 部分中,選取 CMEK 金鑰,加密 Cloud Run 建立的 Secret Manager 密鑰。
Bitbucket Data Center
「Bitbucket Data Center」選項:
在「主機網址」部分,輸入要連線的 Bitbucket Data Center 主機網址。
在「存取權杖」部分,輸入 Bitbucket Cloud 存取權杖:
管理員存取權杖:輸入範圍為 repository admin 的權杖。
讀取存取權杖:輸入具有存放區讀取範圍存取權的權杖。
按一下「顯示更多」即可查看選用設定。
- 選用步驟:在「Encryption」(加密) 部分中,選取 CMEK 金鑰,加密 Cloud Run 建立的 Secret Manager 密鑰。
按一下 [連線]。這項程序會在幾秒內完成。
在「Build Configuration」步驟中,填寫下列選項:
分支版本
- 指出執行觸發條件時應使用的來源。您可以在這裡輸入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,並等待部署完成。
按一下顯示的網址連結,開啟已部署服務的專屬穩定端點。