您可以在部署時為工作流程定義環境變數。舉例來說,您可以建立工作流程,根據部署環境動態設定工作流程。或者,您也可以建立可重複使用的範本工作流程,並根據個別維護的環境變數進行設定。
環境變數的設定形式為任意鍵/值字串組合,而且可供工作流程在執行階段中存取。這些變數會儲存在 Workflows 後端,範圍限定於工作流程執行作業,且在工作流程執行期間無法變更。
所有環境變數都會繫結至工作流程的部署作業,且只能透過部署作業設定或變更。建立或變更環境變數時,必須先成功部署。如果部署作業因任何原因失敗,系統將不會套用環境變數的任何變更。
您可以使用 Google Cloud CLI 新增、更新或移除使用者定義的環境變數。
保留名稱
系統會預留為 Workflows 定義的內建環境變數,您無法設定這些變數。
請注意,為工作流程定義環境變數時,無法使用下列項目:
鍵 | 說明 |
---|---|
空白 ('' ) |
鍵不得為空白字串。 |
GOOGLE_ |
鍵不得包含前置字元 GOOGLE_ 。 |
WORKFLOWS_ |
鍵不得包含前置字元 WORKFLOWS_ 。 |
設定環境變數
部署工作流程時,您可以定義新變數或取代現有變數。如要進行加法變更,請參閱本文的「更新環境變數」一節。
控制台
前往 Google Cloud 控制台的「Workflows」頁面:
在「Workflows」頁面中,按一下
「Create」(建立)。在「建立工作流程」頁面中,填寫適當的欄位,設定工作流程定義。
在「環境變數 (選用)」部分,按一下「新增變數」。
在「Name 1」(名稱 1) 欄位中,指定變數名稱。
在「值 1」欄位中,指定變數值。
如要新增其他變數,請按一下「新增變數」。
點選「下一步」。
定義工作流程後,如要部署,請按一下「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}
更新環境變數
您可以更新現有工作流程的使用者定義環境變數。這是一種非破壞性方法,可變更或新增環境變數,但不會刪除變數。
控制台
前往 Google Cloud 控制台的「Workflows」頁面。
按一下要更新的工作流程名稱。
系統隨即會顯示「Workflow details」(工作流程詳細資料) 頁面。
如要編輯現有環境變數,請執行下列任一操作:
按一下 [Details] (詳細資料) 分頁標籤。
- 按一下「環境變數」旁的 圖示。
- 進行變更。
- 如要部署更新後的工作流程,請按一下「儲存」。
按一下「編輯」圖示
。- 在「環境變數 (選用)」部分中進行變更。
- 如要部署更新後的工作流程,請依序點選「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
刪除環境變數
您可以刪除現有工作流程的使用者定義環境變數。
控制台
前往 Google Cloud 控制台的「Workflows」頁面。
按一下要更新的工作流程名稱。
系統隨即會顯示「Workflow details」(工作流程詳細資料) 頁面。
如要刪除現有的環境變數,請採取下列任一做法:
按一下 [Details] (詳細資料) 分頁標籤。
- 按一下適當的 。
- 找出要刪除的環境變數,然後按一下旁邊的 圖示。
- 如要部署更新後的工作流程,請按一下「儲存」。
按一下「編輯」圖示
。- 找出要刪除的環境變數,然後按一下旁邊的 圖示。
- 如要部署更新後的工作流程,請依序點選「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。