本頁說明如何為 Cloud Run 作業設定環境變數。
設定環境變數時,系統會將這些變數注入容器,以供程式碼存取。環境變數的設定形式為鍵/值組合。
保留名稱
系統會預留容器執行階段合約中定義的環境變數,您無法設定這些變數。
環境變數數量上限
請注意,每個 Cloud Run 工作最多可為每個容器設定 1000 個環境變數。
必要的角色
如要取得設定 Cloud Run 作業所需的權限,請要求管理員授予您作業的下列 IAM 角色:
-
Cloud Run 開發人員 (
roles/run.developer
) - Cloud Run 工作 -
服務帳戶使用者 (
roles/iam.serviceAccountUser
) - 服務身分
如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱 Cloud Run IAM 角色和 Cloud Run IAM 權限。如果 Cloud Run 作業與Google Cloud API (例如 Cloud 用戶端程式庫) 介接,請參閱服務身分設定指南。 如要進一步瞭解如何授予角色,請參閱部署權限和管理存取權。
設定環境變數
您可以為新工作和現有工作設定環境變數。請注意,--set-env-vars
旗標是破壞性動作,會刪除先前設定的環境變數,但新環境變數清單中不包含這些變數。
您可以使用 Google Cloud 控制台、gcloud CLI 或 YAML 檔案設定環境變數:
控制台
前往 Google Cloud 控制台的 Cloud Run 作業頁面:
從選單中選取「工作」,然後按一下「部署容器」,填寫初始工作設定頁面。如要設定現有工作,請選取該工作,然後按一下「編輯」。
按一下「容器、磁碟區、連線與安全性」,展開工作屬性頁面。
按一下「變數」分頁標籤。
- 在「變數與密鑰」分頁中,按一下「新增變數」,然後在「名稱」和「值」欄位中,分別指定變數名稱和值。如要進一步瞭解如何設定多個環境變數或逸出特殊字元,請參閱「設定多個環境變數」。
按一下「建立」或「更新」。
gcloud
如要在建立工作時指定環境變數,請使用 --set-env-vars
標記:
gcloud run jobs create JOB_NAME --image IMAGE_URL --set-env-vars KEY1=VALUE1,KEY2=VALUE2
更改下列內容:
- JOB_NAME:作業名稱。
- KEY1=VALUE1,KEY2=VALUE2:以半形逗號分隔的變數名稱和值清單。
- IMAGE_URL:容器映像檔的參照,例如
us-docker.pkg.dev/cloudrun/container/job:latest
。
如要進一步瞭解如何設定多個環境變數或逸出特殊字元,請參閱「設定多個環境變數」。
YAML
如果您要建立新工作,請略過這個步驟。 如要更新現有工作,請下載其 YAML 設定:
gcloud run jobs describe JOB_NAME --format export > job.yaml
- 更新
env
下的name
和value
屬性,如下所示:containers:
:
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE env: - name: KEY-1 value: VALUE-1 - name: KEY-N value: VALUE-N
將 KEY-1、VALUE-1 替換為環境變數和值。視需要新增更多變數和值。
您也可以指定更多設定,例如環境變數或記憶體限制。
- 更新
更新現有工作設定:
gcloud run jobs replace job.yaml
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
在 Terraform 設定中,將下列內容新增至google_cloud_run_v2_job
資源:resource "google_cloud_run_v2_job" "default" {
name = "JOB_NAME"
location = "REGION"
template {
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/job"
env {
name = "KEY-1"
value = "VALUE-1"
}
env {
name = "KEY-N"
value = "VALUE-N"
}
}
}
}
}
更改下列內容:
- JOB_NAME:Cloud Run 工作的名稱。
- REGION: Google Cloud 區域。例如:
europe-west1
。 - KEY-1:環境變數。
- VALUE-1:與鍵相關聯的值。
(選用) 新增更多 env
區塊,設定其他環境變數。
在容器中設定預設環境變數
您可以在 Dockerfile 中使用 ENV
陳述式,為環境變數設定預設值:
ENV KEY1=VALUE1,KEY2=VALUE2
優先順序:容器變數與作業變數
如果您在容器中設定預設環境變數,並在 Cloud Run 工作中設定名稱相同的環境變數,則工作設定的值會優先採用。
設定多個環境變數
您可以使用 .env
檔案或 --set-env-vars
標記設定多個環境變數。
使用 .env
檔案設定多個環境變數
控制台
前往 Google Cloud 控制台的 Cloud Run 作業頁面:
從選單中選取「工作」,然後按一下「部署容器」,填寫初始工作設定頁面。如要設定現有工作,請選取該工作,然後按一下「編輯」。
按一下「容器、磁碟區、連線與安全性」,展開工作屬性頁面。
按一下「容器」分頁標籤。
- 在「Variables & Secrets」(變數與密鑰) 分頁中,按一下「Add Variable」(新增變數),然後將
.env
檔案的內容貼到「Name」(名稱) 欄位。Cloud Run 會自動填入「值」欄位,並為您在.env
檔案中定義的每個鍵/值組合建立新變數。
- 在「Variables & Secrets」(變數與密鑰) 分頁中,按一下「Add Variable」(新增變數),然後將
按一下「建立」或「更新」。
gcloud
如要從 .env
檔案指定多個環境變數,請執行下列指令:
gcloud beta run jobs create JOB_NAME --image=IMAGE_URL --env-vars-file=ENV_FILE_PATH
更改下列內容:
- JOB_NAME:Cloud Run 工作的名稱。
- IMAGE_URL:容器映像檔的參照,例如
us-docker.pkg.dev/cloudrun/container/job: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 控制台更新環境變數,請按照下列步驟操作:
前往 Google Cloud 控制台的 Cloud Run:
從清單中選取所需工作,然後按一下「編輯及部署新的修訂版本」。
按一下「容器」分頁標籤。
在「變數和密鑰」分頁中,編輯「名稱」或「值」欄位,然後按一下「完成」。
按一下 [Deploy] (部署)。
gcloud
如要更新現有工作的環境變數,請使用 --update-env-vars
旗標:
gcloud run jobs update JOB_NAME --update-env-vars KEY1=VALUE1,KEY2=VALUE2
更改下列內容:
- JOB_NAME:作業名稱。
- KEY1=VALUE1,KEY2=VALUE2:以半形逗號分隔的變數名稱和值清單。
查看環境變數設定
如要查看 Cloud Run 作業目前的環境變數設定:
控制台
前往 Google Cloud 控制台的 Cloud Run 作業頁面:
按一下感興趣的工作,開啟「工作詳細資料」頁面。
按一下「查看及編輯工作設定」。
在設定詳細資料中找出環境變數設定。
gcloud
使用下列指令:
gcloud run jobs describe JOB_NAME
在傳回的設定中找出環境變數設定。
刪除環境變數
您可以刪除現有工作的環境變數。
主控台
如要使用 Google Cloud 控制台刪除環境變數,請按照下列步驟操作:
前往 Google Cloud 控制台的 Cloud Run:
從清單中選取所需工作,然後按一下「編輯及部署新的修訂版本」。
按一下「容器」分頁標籤。
在「Variables and secrets」(變數與密鑰) 分頁標籤中,將游標移至要移除的環境變數「Value」(值) 欄位左側,顯示「Delete」(刪除)
圖示,然後按一下該圖示。按一下 [完成]。
按一下 [Deploy] (部署)。
gcloud
如要選擇性移除現有工作的環境變數,請使用 --remove-env-vars
旗標:
gcloud run jobs update JOB_NAME --remove-env-vars KEY1,KEY2
更改下列內容:
- JOB_NAME:作業名稱。
- KEY1,KEY2:以半形逗號分隔的變數名稱清單。
或者,您也可以使用 --clear-env-vars
標記,清除先前設定的所有環境變數:
gcloud run jobs update JOB_NAME --clear-env-vars