建構環境變數是鍵/值組合,可讓您從原始碼部署時,將設定資訊傳遞至 buildpack。舉例來說,您可能想在建構時自訂編譯器選項、指定建構時間憑證,以及設定參數等。
本頁說明如何設定建構環境變數 (建構時可用),適用於從來源部署 Cloud Run服務或函式的平台開發人員。建構環境變數 gcloud CLI 旗標支援來源部署作業 (--source),但不支援容器映像檔部署作業 (--image)。
環境變數可用於服務或函式設定,但不建議用來儲存資料庫憑證或 API 金鑰等 Secret。請將機密值儲存在原始碼與環境變數以外的地方。建議使用 Secret Manager 儲存 Secret。如要設定可存取 Secret Manager 中儲存密鑰的服務,請參閱「設定密鑰」。
事前準備
-
啟用 Cloud Run Admin API 和 Cloud Build API。
啟用 API 時所需的角色
如要啟用 API,您需要服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。啟用 Cloud Run Admin API 後,系統會自動建立 Compute Engine 預設服務帳戶。
必要的角色
您或管理員必須將下列 IAM 角色授予部署者帳戶和 Cloud Build 服務帳戶。
按一下即可查看部署者帳戶的必要角色
如要取得從來源建構及部署所需的權限,請要求管理員授予您下列 IAM 角色:
- 專案的 Cloud Run 原始碼開發者 (
roles/run.sourceDeveloper) - 專案的服務使用情形消費者 (
roles/serviceusage.serviceUsageConsumer) - Cloud Run 服務身分上的服務帳戶使用者 (
roles/iam.serviceAccountUser)
按一下即可查看 Cloud Build 服務帳戶的必要角色
除非您覆寫這項行為,否則 Cloud Build 會自動使用Compute Engine 預設服務帳戶做為預設的 Cloud Build 服務帳戶,建構您的原始碼和 Cloud Run 資源。如要讓 Cloud Build 建構來源,請要求管理員將 Cloud Run 建構者 (roles/run.builder) 授予專案的 Compute Engine 預設服務帳戶:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
請將 PROJECT_NUMBER 替換為專案編號,並將 PROJECT_ID 替換為專案 ID。 Google CloudGoogle Cloud如需如何找出專案 ID 和專案編號的詳細操作說明,請參閱「建立與管理專案」。
將 Cloud Run 建構工具角色授予 Compute Engine 預設服務帳戶後,需要幾分鐘才能傳播。
如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果 Cloud Run 服務與Google Cloud API (例如 Cloud 用戶端程式庫) 介接,請參閱服務身分設定指南。 如要進一步瞭解如何授予角色,請參閱「部署權限」和「管理存取權」。
建構環境變數數量上限和限制
您最多可定義 100 個建構環境變數,金鑰和值的總大小上限為 64 KiB。
設定建構環境變數
您可以設定建構環境變數,建立新變數或完全取代現有的建構變數。
gcloud
從原始碼部署服務時,如要設定建構環境變數,請使用 --set-build-env-vars 旗標:
gcloud run deploy SERVICE \ --source . \ --set-build-env-vars KEY1=VALUE1,KEY2=VALUE2
更改項目:
- SERVICE 改為 Cloud Run 服務名稱。
- KEY1=VALUE1,KEY2=VALUE2,並以逗號分隔的變數名稱和值清單,這些變數會與函式一併部署,可將設定資訊傳遞至 buildpack。
如果您要部署函式,請新增 --function 旗標,並提供原始碼中的函式進入點。
更新建構環境變數
您也可以更新現有服務的建構環境變數。這是非破壞性方法,可變更或新增建構環境變數,但不會刪除建構環境變數。
gcloud
如要更新現有服務的建構環境變數,請使用 --update-build-env-vars 標記:
gcloud run deploy SERVICE \ --source . \ --update-build-env-vars KEY1=VALUE1,KEY2=VALUE2
如果您要部署函式,請新增 --function 旗標,並提供原始碼中的函式進入點。
刪除建構環境變數
您可以刪除現有服務的建構環境變數。
gcloud
如要移除現有服務的建構環境變數,請使用 --remove-build-env-vars 旗標:
gcloud run deploy SERVICE \ --source . \ --remove-build-env-vars KEY1=VALUE1,KEY2=VALUE2
或者,您也可以使用現有服務的 --clear-build-env-vars 清除建構環境變數:
gcloud run deploy SERVICE \ --source . \ --clear-build-env-vars KEY1=VALUE1,KEY2=VALUE2
如果您要部署函式,請新增 --function 旗標,並提供原始碼中的函式進入點。
使用建構環境變數檔案
您可以使用現有函式的建構環境變數檔案。
gcloud
如要從檔案設定建構環境變數,請使用 --build-env-vars-file 旗標:
gcloud run deploy SERVICE \ --source . \ --build-env-vars-file FILE_NAME.yaml
將 FILE_NAME.yaml 替換成檔案內容,內容應如下所示:
KEY1: VALUE1
KEY2: VALUE2
如果您要部署函式,請新增 --function 旗標,並提供原始碼中的函式進入點。