設定工作環境變數

本頁說明如何為 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 檔案設定環境變數:

控制台

  1. 前往 Google Cloud 控制台的 Cloud Run 作業頁面:

    前往 Cloud Run

  2. 從選單中選取「工作」,然後按一下「部署容器」,填寫初始工作設定頁面。如要設定現有工作,請選取該工作,然後按一下「編輯」

  3. 按一下「容器、磁碟區、連線與安全性」,展開工作屬性頁面。

  4. 按一下「變數」分頁標籤。

    圖片

    • 請按照下列步驟操作:
      • 如要新增變數,請按一下「新增變數」,然後在「名稱」和「值」文字方塊中,分別指定變數名稱和值。
      • 如要變更變數的值,請將「Value」(值) 文字方塊中目前的值改成您要的值。
      • 如果要移除一或多個環境變數,請將游標懸停在要移除的變數「Value」(值) 文字方塊左側,顯示垃圾桶圖示,然後點選該圖示。
  5. 按一下「建立」或「更新」

gcloud

如要在部署工作時指定環境變數,請使用 --set-env-vars 標記:

gcloud run jobs deploy JOB_NAME --image IMAGE_URL --update-env-vars KEY1=VALUE1,KEY2=VALUE2

如要在更新工作時指定環境變數,請在工作建立後使用 --set-env-vars 旗標:

gcloud run jobs create JOB_NAME --image IMAGE_URL --update-env-vars KEY1=VALUE1,KEY2=VALUE2

gcloud run jobs update JOB_NAME --update-env-vars KEY1=VALUE1,KEY2=VALUE2

取代:

  • JOB_NAME 改為您的工作名稱。
  • KEY1=VALUE1,KEY2=VALUE2,並以逗號分隔變數名稱和值。
  • IMAGE_URL,並參照容器映像檔,例如 us-docker.pkg.dev/cloudrun/container/job:latest

設定多個環境變數

如果您有許多無法以 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=..."

YAML

  1. 如果您要建立新工作,請略過這個步驟。 如要更新現有工作,請下載其 YAML 設定

    gcloud run jobs describe JOB_NAME --format export > job.yaml
    1. 更新 env 下的 namevalue 屬性,如下所示: 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-1VALUE-1 替換為環境變數和值。視需要新增更多變數和值。

    您也可以指定更多設定,例如環境變數或記憶體限制。

  2. 更新現有工作設定:

    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 工作中設定名稱相同的環境變數,則工作設定的值會優先採用。

更新環境變數

您可以更新現有工作的環境變數。這是一種非破壞性方法,可變更或新增環境變數,但不會刪除先前設定的環境變數。

主控台

如要使用 Google Cloud 控制台更新環境變數,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的 Cloud Run:

    前往 Cloud Run

  2. 從清單中選取所需工作,然後按一下「編輯及部署新的修訂版本」

  3. 按一下「容器」分頁標籤。

  4. 在「變數和密鑰」分頁中,編輯「名稱」或「值」欄位,然後按一下「完成」

  5. 按一下 [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 作業目前的環境變數設定:

控制台

  1. 前往 Google Cloud 控制台的 Cloud Run 作業頁面:

    前往 Cloud Run jobs

  2. 按一下所需工作,開啟「工作詳細資料」頁面。

  3. 按一下「查看及編輯工作設定」

  4. 在設定詳細資料中找出環境變數設定。

gcloud

  1. 使用下列指令:

    gcloud run jobs describe JOB_NAME
  2. 在傳回的設定中找出環境變數設定。

刪除環境變數

您可以刪除現有工作的環境變數。

主控台

如要使用 Google Cloud 控制台刪除環境變數,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的 Cloud Run:

    前往 Cloud Run

  2. 從清單中選取所需工作,然後按一下「編輯及部署新的修訂版本」

  3. 按一下「容器」分頁標籤。

  4. 在「Variables and secrets」(變數與密鑰) 分頁標籤中,將游標移至要移除的環境變數「Value」(值) 欄位左側,顯示「Delete」(刪除) 圖示,然後按一下該圖示。

  5. 按一下 [完成]

  6. 按一下 [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

取代:

  • JOB_NAME 改為您的工作名稱。