使用環境變數

您可以在部署時為工作流程定義環境變數。舉例來說,您可以建立工作流程,根據部署環境動態設定工作流程。或者,您也可以建立可重複使用的範本工作流程,並根據個別維護的環境變數進行設定。

環境變數的設定形式為任意鍵/值字串組合,而且可供工作流程在執行階段中存取。這些變數會儲存在 Workflows 後端,範圍限定於工作流程執行作業,且在工作流程執行期間無法變更。

所有環境變數都會繫結至工作流程的部署作業,且只能透過部署作業設定或變更。建立或變更環境變數時,必須先成功部署。如果部署作業因任何原因失敗,系統將不會套用環境變數的任何變更。

您可以使用 Google Cloud CLI 新增、更新或移除使用者定義的環境變數。

保留名稱

系統會預留為 Workflows 定義的內建環境變數,您無法設定這些變數。

請注意,為工作流程定義環境變數時,無法使用下列項目:

說明
空白 ('') 鍵不得為空白字串。
GOOGLE_ 鍵不得包含前置字元 GOOGLE_
WORKFLOWS_ 鍵不得包含前置字元 WORKFLOWS_

設定環境變數

部署工作流程時,您可以定義新變數或取代現有變數。如要進行加法變更,請參閱本文的「更新環境變數」一節。

控制台

  1. 前往 Google Cloud 控制台的「Workflows」頁面:

    前往「Workflows」頁面

  2. 在「Workflows」頁面中,按一下 「Create」(建立)

  3. 在「建立工作流程」頁面中,填寫適當的欄位,設定工作流程定義。

  4. 在「環境變數 (選用)」部分,按一下「新增變數」

  5. 在「Name 1」(名稱 1) 欄位中,指定變數名稱。

  6. 在「值 1」欄位中,指定變數值。

  7. 如要新增其他變數,請按一下「新增變數」

  8. 點選「下一步」

  9. 定義工作流程後,如要部署,請按一下「Deploy」(部署)

gcloud

如要設定環境變數,請使用 --set-env-vars 旗標:

gcloud workflows deploy WORKFLOW_NAME \
    --set-env-vars KEY1=VALUE1

更改下列內容:

  • WORKFLOW_NAME:工作流程的 ID。
  • KEY1=VALUE1:環境變數名稱及其值,例如 MONTH=January

Terraform

如要建立工作流程,請使用 google_workflows_workflow 資源,並按照範例修改 main.tf 檔案。詳情請參閱「使用 Terraform 建立工作流程」。

使用 user_env_vars 引數將環境變數與工作流程修訂版本建立關聯。

如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。

設定多個環境變數

如要設定多個環境變數,請使用以半形逗號分隔的清單:

gcloud workflows deploy WORKFLOW_NAME \
      --set-env-vars KEY1=VALUE1,KEY2=VALUE2

逸出半形逗號字元

由於逗號字元 (,) 用於分隔環境變數,如果變數值包含逗號,您必須指定其他分隔符號,例如 @

gcloud workflows deploy WORKFLOW_NAME \
      --set-env-vars ^@^KEY1=VALUE1,VALUE2,VALUE3@KEY2=VALUE2

將變數儲存在檔案中

如要將變數儲存在檔案中 (例如在來源控管下),請使用 YAML 檔案和 --env-vars-file 旗標:

gcloud workflows deploy WORKFLOW_NAME \
      --env-vars-file FILE_PATH

FILE_PATH 換成本機 YAML 檔案的路徑,該檔案會列出環境變數的定義。請注意,變數名稱和值必須是字串。Workflows 會先移除所有現有環境變數,再新增環境變數。

舉例來說,YAML 檔案的內容可能如下所示:

KEY1: "value1"
KEY2: "value2"

如要進一步瞭解 deploy 指令,請參閱 gcloud workflows deploy

存取環境變數

如要存取環境變數,請在運算式中呼叫 sys.get_env() 函式,並將環境變數名稱做為參數傳遞。環境變數名稱必須以字串形式傳遞。

舉例來說,下列工作流程會將環境變數 KEY1 的值指派給名為 keyValue 的工作流程變數,然後輸出該值:

main:
  steps:
    - init:
        assign:
          - keyValue: ${sys.get_env("KEY1")}
    - returnResult:
        return: ${keyValue}

更新環境變數

您可以更新現有工作流程的使用者定義環境變數。這是一種非破壞性方法,可變更或新增環境變數,但不會刪除變數。

控制台

  1. 前往 Google Cloud 控制台的「Workflows」頁面。

    前往「Workflows」頁面

  2. 按一下要更新的工作流程名稱。

    系統隨即會顯示「Workflow details」(工作流程詳細資料) 頁面。

  3. 如要編輯現有環境變數,請執行下列任一操作:

    • 按一下 [Details] (詳細資料) 分頁標籤。

      1. 按一下「環境變數」旁的圖示。
      2. 進行變更。
      3. 如要部署更新後的工作流程,請按一下「儲存」
    • 按一下「編輯」圖示

      1. 在「環境變數 (選用)」部分中進行變更。
      2. 如要部署更新後的工作流程,請依序點選「Next」(下一步)和「Deploy」(部署)

gcloud

如要更新變數,請使用 --update-env-vars 標記:

gcloud workflows deploy WORKFLOW_NAME \
    --update-env-vars KEY1=VALUE1

如要更新多個環境變數,請使用以半形逗號分隔的清單:

gcloud workflows deploy WORKFLOW_NAME \
    --update-env-vars KEY1=VALUE1,KEY2=VALUE2

刪除環境變數

您可以刪除現有工作流程的使用者定義環境變數。

控制台

  1. 前往 Google Cloud 控制台的「Workflows」頁面。

    前往「Workflows」頁面

  2. 按一下要更新的工作流程名稱。

    系統隨即會顯示「Workflow details」(工作流程詳細資料) 頁面。

  3. 如要刪除現有的環境變數,請採取下列任一做法:

    • 按一下 [Details] (詳細資料) 分頁標籤。

      1. 按一下適當的
      2. 找出要刪除的環境變數,然後按一下旁邊的 圖示。
      3. 如要部署更新後的工作流程,請按一下「儲存」
    • 按一下「編輯」圖示

      1. 找出要刪除的環境變數,然後按一下旁邊的 圖示。
      2. 如要部署更新後的工作流程,請依序點選「Next」(下一步)和「Deploy」(部署)

gcloud

如要選擇性移除環境變數,請使用 --remove-env-vars 旗標:

gcloud workflows deploy WORKFLOW_NAME \
    --remove-env-vars KEY1,KEY2

或者,您也可以使用 --clear-env-vars 標記清除先前設定的所有環境變數:

gcloud workflows deploy WORKFLOW_NAME \
    --clear-env-vars

最佳做法

我們建議的最佳做法,是不要仰賴或修改您並未明確設定的任何環境變數。如果您修改明確設定以外的環境變數,可能會導致意料之外的後果。

管理密鑰

環境變數可用於設定工作流程,但不建議用來儲存及使用密鑰,例如資料庫憑證或 API 金鑰。這些機密值應與原始碼和環境變數分開儲存,且不應意外傳送至記錄。

如要儲存密鑰,建議您詳閱密鑰管理最佳做法,並按照操作說明搭配 Workflows 使用 Secret Manager

命名慣例

一般來說,我們建議環境變數鍵只能使用大寫英文字母、數字和底線 (_),而且不得以數字開頭。請考慮為使用者定義的環境變數加上獨特金鑰前置字串,以免與其他變數發生衝突。

大小限制

最多可定義 20 個使用者定義的環境變數。每個定義字串 (KEY=value) 的大小上限為 4 KiB。

後續步驟