本頁說明如何為 Cloud Run 執行個體設定環境變數。
必要的角色
如要取得設定及部署 Cloud Run 執行個體所需的權限,請要求管理員授予您下列 IAM 角色:
- Cloud Run 執行個體上的 Cloud Run 開發人員 (
roles/run.developer) - 服務身分上的服務帳戶使用者 (
roles/iam.serviceAccountUser)
如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果 Cloud Run 執行個體與Google Cloud API (例如 Cloud 用戶端程式庫) 介接,請參閱服務身分設定指南。 如要進一步瞭解如何授予角色,請參閱「部署權限」和「管理存取權」。
設定環境變數
您可以使用 Google Cloud CLI 或 YAML,為 Cloud Run 執行個體設定環境變數:
gcloud
如要在建立執行個體時指定環境變數,請使用 --set-env-vars 旗標:
gcloud beta run instances create INSTANCE --image IMAGE_URL --set-env-vars KEY1=VALUE1,KEY2=VALUE2
更改下列內容:
- INSTANCE:執行個體的名稱
IMAGE_URL:容器映像檔的參照,例如us-docker.pkg.dev/cloudrun/container/hello:latest。- KEY1=VALUE1,KEY2=VALUE2:以半形逗號分隔的變數名稱和值清單
如要進一步瞭解如何設定多個環境變數或逸出特殊字元,請參閱「設定多個環境變數」。
YAML
如果您要建立新執行個體,請略過這個步驟。 如要更新現有執行個體,請下載其 YAML 設定:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
以下範例包含 YAML 設定:
apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA spec: containers: - env: - name: KEY value: VALUE - name: KEY2 value: VALUE2 image: IMAGE
更改下列內容:
- INSTANCE:Cloud Run 執行個體的名稱。
- KEY 和 VALUE:環境變數的名稱和值。
IMAGE_URL:容器映像檔的參照,例如us-docker.pkg.dev/cloudrun/container/hello:latest。
使用下列指令建立或更新執行個體:
gcloud beta run instances replace instance.yaml
在容器中設定預設環境變數
您可以在 Dockerfile 中使用 ENV 陳述式,為環境變數設定預設值:
ENV KEY1=VALUE1,KEY2=VALUE2
優先順序:容器變數與執行個體變數
如果在容器中設定預設環境變數,並在 Cloud Run 執行個體上設定同名環境變數,則執行個體上設定的值會優先採用。
設定多個環境變數
您可以使用 .env 檔案或 --set-env-vars 標記設定多個環境變數。
使用 .env 檔案設定多個環境變數
gcloud
如要從 .env 檔案指定多個環境變數,請執行下列指令:
gcloud beta run instances create INSTANCE --image IMAGE_URL --env-vars-file=ENV_FILE_PATH
更改下列內容:
- INSTANCE:執行個體的名稱。
IMAGE_URL:容器映像檔的參照,例如us-docker.pkg.dev/cloudrun/container/hello:latest。- ENV_FILE_PATH:
.env檔案的路徑。
使用 --set-env-vars 旗標設定多個環境變數
如果有多個環境變數無法以 KEY1=VALUE1,KEY2=VALUE2 格式列出,可以重複使用 --set-env-vars 旗標:
[...] --set-env-vars "KEY1=VALUE1" \ --set-env-vars "KEY2=VALUE2" \ --set-env-vars "KEY3=VALUE3"
逸出逗號字元
由於半形逗號字元, 用於分割環境變數,如果環境變數的值包含半形逗號字元,您需要指定其他分隔符號字元 (例如 @),逸出這些分隔符號:
--set-env-vars "^@^KEY1=value1,value2,value3@KEY2=..."
更新環境變數
您可以更新現有執行個體的執行階段環境變數。這是非破壞性方法,可變更或新增執行階段環境變數,但不會刪除。
您可以使用 Google Cloud CLI 或 YAML 更新環境變數:
gcloud
如要更新現有執行個體的環境變數,請使用 --update-env-vars 旗標:
gcloud beta run instances update INSTANCE --update-env-vars KEY1=VALUE1,KEY2=VALUE2
更改下列內容:
- INSTANCE:執行個體的名稱
- KEY1=VALUE1,KEY2=VALUE2:以半形逗號分隔的變數名稱和值清單
YAML
下載執行個體 YAML 設定:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
編輯鍵 (名稱) 和值變數。
使用下列指令更新執行個體:
gcloud beta run instances replace instance.yaml
刪除環境變數
gcloud
如要從現有執行個體中移除特定環境變數,請使用 --remove-env-vars 旗標:
gcloud beta run instances update INSTANCE --remove-env-vars KEY1,KEY2
更改下列內容:
- INSTANCE:執行個體的名稱
- KEY1,KEY2:以半形逗號分隔的變數名稱清單
或者,也可以使用 --clear-env-vars 旗標,清除先前設定的所有環境變數:
gcloud beta run instances update INSTANCE --clear-env-vars
將 INSTANCE 換成您的執行個體名稱。
程式碼範例
如需程式碼範例,瞭解如何在程式碼中存取環境變數,請參閱使用者驗證教學課程中的「使用 Secret Manager 處理機密設定」。
後續步驟
您可以使用環境變數設定 buildpack。如需特定語言的詳細資料,請參閱下列語言的建構套件說明文件: