跳轉到
版本 v1.0.25

變數

這頁能幫你做什麼

變數 (Variable) 讓你把一份設定資料集中存成 JSON,之後在多個工作流程 (Workflow) 中共用。例如把 API 網址、各種門檻值、狀態代碼對照表存成一個變數,要調整時改一個地方就好,不用到每個流程裡逐一修改。

常見情境:

  • 集中管理 API 網址、逾時秒數、重試次數等設定常數。
  • 存放業務規則門檻(字數上限、自動核可分數等)。
  • 維護代碼對照表(狀態碼對應中文說明)。
  • 控制功能開關 (feature flag),決定哪些功能要啟用。
  • 保管需要遮蔽的機密設定(API 金鑰、密碼、連線字串):用「敏感資訊」開關把值隱藏起來。

開始前

前置需求

建立變數不需要其他資源。請先想好這份資料的結構,並確認它是合法的 JSON 格式。

操作步驟

  1. 從左側資源選單進入「變數」清單頁,點建立入口(空清單時是有文字的建立按鈕;清單已有項目時是右上角無文字的「+」圖示)開啟建立表單。

    建立變數表單,依序為「名稱」「標籤」「類型」「值」與「敏感資訊」開關,右上角有「放棄」與「儲存」按鈕

  2. 在「名稱」欄輸入好辨識的名稱(例如 api-config)。

  3. (選填)在「標籤」欄輸入分類用的標籤,每輸入一個詞按 Enter 就會變成一個標籤方塊(見上圖的「設定」「api」)。
  4. 在「類型」選擇 JSON(選好後才會出現「值」與「敏感資訊」兩個欄位)。
  5. 在「值」欄填入 JSON 內容(見上圖編輯器內容)。
  6. 如果這份內容含機密資料(API 金鑰、密碼、連線字串),把「敏感資訊」開關打開;一般設定資料保持預設的關閉即可(見上圖最下方,預設是關的)。
  7. 按右上角的「儲存」按鈕完成建立(見上圖右上角)。

完整欄位說明

欄位 必填 預設 說明
名稱 此變數的識別名稱。最多 64 個字,不可用 default 開頭。
標籤 分類用的小標,貼上後可在清單頁用「標籤」把同一群資源一次篩出來。填法與數量/長度限制見「標籤」欄位
類型 無(需選擇) 變數類型,目前僅 JSON 一種。建立後無法更改——編輯既有變數時,這個下拉是停用的、點不開。選好後才會出現「值」與「敏感資訊」欄位。
變數的實際內容,須為合法的 JSON。選「類型」為 JSON 後出現,提供帶行號的 JSON 編輯器;編輯器右上角的工具列說明見通用介面元件 — 編輯器工具列
敏感資訊 關閉 開關。打開後這個變數的「值」在畫面上一律以圓點遮蔽,之後不論是誰、也包含你自己,都無法再從畫面看到原始內容;適合放 API 金鑰、密碼、連線字串等機密。欄位提示寫的是「啟用後,值將被隱藏,無法檢視原始內容。」選「類型」為 JSON 後出現,且建立後仍可隨時打開或關閉(關閉的後果見下方修改已標記敏感的變數)。

「值」可以放哪些 JSON

JSON 類型適合多層次或陣列型態的資料,「值」欄位接受任何合法 JSON:

  • 字串:"Hello World"
  • 數字:423.14
  • 布林值:truefalse
  • 空值:null
  • 物件:{"key": "value", "nested": {"data": 123}}
  • 陣列:[1, 2, 3]["a", "b", "c"]

一個常見的範例是集中管理一組 API 設定:

{
  "base_url": "https://api.example.com/v1",
  "timeout_seconds": 30,
  "retry_attempts": 3
}

把這樣一份設定存成一個變數(例如取名 api-config),之後在多個工作流程引用同一個變數,要調整網址或逾時設定時只需改這一處。變數的內容由你自己決定,key 的名稱沒有規定——本頁後面詳細頁截圖裡的 api-config 就是另一組內容(timeoutbase_url),與這段範例不同也沒關係。

變數 (Variable) 與樣板 (Template) 的差異

  • 存「資料值」(數字、物件、陣列、設定開關)用變數。
  • 存「帶有替換位置的文字」(提示詞、信件範本)用樣板 (Template)

修改已標記敏感的變數

已打開「敏感資訊」的變數,之後再進「編輯」表單時,「值」不會顯示原本的 JSON,而是一排圓點加一顆「重設」按鈕(「類型」與一般變數一樣是停用的):

編輯已標記敏感資訊的變數:「值」欄位顯示為一排圓點、右側附一顆「重設」按鈕,「敏感資訊」開關為開啟狀態

  • 只想改名稱或標籤:直接改完按「儲存」就好,不要按「重設」——原本的值會完整保留。欄位提示也是這麼寫的:「目前的值已隱藏。重設後可輸入新的值;未重設即儲存會保留原值。」
  • 要換一份新的值:按「重設」,圓點會換成一個空白的 JSON 編輯器,把新內容整份填進去再按「儲存」。

「重設」按下去就回不來了

按「重設」之後那顆按鈕就消失,在同一個表單裡沒有辦法叫回原本的值;而「值」是必填欄位,空著存不進去(會出現紅字「此欄位為必填」),所以不用試著「留白儲存」把它跳過。

誤按的話這樣救回來:按右上角「放棄」,會先跳出一個標題為「放棄修改」的確認對話框(內文「你所做的修改將不會被保存。」,按鈕為「取消」與「放棄」),再按一次「放棄」才會離開表單;重新進入編輯即可回到遮蔽狀態,原本的值仍在。

「敏感資訊」關掉之後,原本的值會再次顯示

這個開關不是加密,只是控制畫面要不要遮蔽。把開關關掉再「儲存」(同樣不必按「重設」),原先存的值就會在詳細頁與編輯表單以明文重新出現。所以它防的是「畫面被旁邊的人看到」,不是「值被有權限的人取回」。

變數詳細頁

建立完成後點進某個變數,詳細頁上方有三個頁籤:「一般」、「依賴資源」、「被依賴資源」。下圖為「一般」頁籤的「詳細資料」卡片——其中 ID 就是後面在工作流程裡引用這個變數時要填的值(引用寫法見下方如何在工作流程中引用變數),點 ID 左側的複製()圖示即可複製:

變數詳細頁的「一般」頁籤,「詳細資料」卡片依序顯示 ID、名稱、標籤、類型、敏感資訊、系統資訊、狀態、建立者、更新者、最後更新與 JSON 值,ID 左側有複製圖示,卡片右上角有編輯、複製、刪除與收合圖示鈕

頁籤 內容
一般 變數的基本資料:ID、名稱、標籤、類型、敏感資訊、系統資訊、狀態、建立者、更新者、最後更新,以及完整的 JSON 值。卡片右上角的圖示鈕可編輯()、複製(,跳出「複製變數」對話框讓你填新名稱後按「儲存」,就會照原值複製出一個新變數;敏感變數不適用,見下方警告)或刪除();最右邊的 可把整張卡片收合(見通用介面元件)。
依賴資源 這個變數用到的其他資源。
被依賴資源 反過來,有哪些資源用到這個變數(例如在欄位裡 .% 引用它的工作流程)。

「敏感資訊」欄以方塊呈現「否」(灰色)或「是」(綠色)。已標記為敏感的變數,「值」不再是 JSON 程式碼框,而是一排圓點:

已標記敏感資訊的變數詳細頁,「敏感資訊」顯示綠色的「是」,「值」以一排圓點呈現而非 JSON 程式碼框

標記為敏感的變數無法複製

卡片右上角的複製()按鈕對敏感變數是無效的。按下去會照常跳出「複製變數」對話框讓你填新名稱,但按「儲存」後不會建立任何東西,而是在畫面下方出現一則紅色提示:

紅色提示訊息:標記為敏感資訊的變數無法複製,因為其值已隱藏。

原因是平台讀不回被遮蔽的值,複製出來的變數會是空的。不會留下半成品——回到清單頁確認過,那個名稱並沒有被建立出來,所以誤按了不必善後。要「複製」一份敏感變數,請改成手動建立一個新變數,並自己重新填入值。

變數沒有「驗證」功能

變數詳細頁不提供「驗證憑證/測試連線」按鈕——它只是一份儲存的資料,不連外部系統。要確認它有沒有用,看下方「使用效果」。

如何在工作流程中引用變數

把資料存成變數後,要在工作流程的任務欄位裡使用它,是透過 .% 引用語法(與 External Memory 同一套),而不是直接寫變數名稱。

這一步目前要手寫 JSON,沒有點選式的欄位

平台沒有「選一個變數」的下拉可以用:.% 引用要在工作流程編輯器的「程式碼」檢視(ASL 定義編輯器)裡手動寫進任務的定義——按編輯器頂端的「程式碼」,左側會浮出定義編輯面板(見編輯器介面導覽)。下面說的「欄位的 key」指的就是那份 JSON 定義裡任務參數的名稱,例如 HTTP 任務的 url,改寫成 url.% 之後值換成引用物件。不熟 JSON 的話,這一段建議請熟悉工作流程定義的同事協助。

做法是把欄位的 key 加上 .% 後綴,值填一個指定 typeidjsonpath 的物件:

{
  "api_settings.%": {
    "type": "variable",
    "id": "<變數的 id>",
    "jsonpath": "$"
  }
}
  • type:固定填 variable,代表要讀的是變數資源。
  • id:要引用的變數 id,即上方詳細頁「一般」頁籤裡的 ID(點複製圖示取得)。
  • jsonpath:要從變數值裡取哪一段;$ 代表整包,也可只取子欄位(例如 $.base_url)。

使用效果

變數不能單獨執行,它的價值在於「被工作流程的任務欄位引用、執行時即時展開」。建立好的變數會在這些地方被選用:

  • 工作流程的任務欄位:用上方 .% 引用語法把變數值接進欄位,任務執行時即時載入該變數的內容。
  • 多個流程共用:你在多個工作流程引用同一個變數,改了變數值之後所有引用處都會跟著更新——改一處、全部生效。

例如上方詳細頁的 api-config 變數(值為 {"timeout": 30, "base_url": "https://api.example.com"}),在某個工作流程的 HTTP 任務裡用 "url.%": {"type": "variable", "id": "<api-config 的 id>", "jsonpath": "$.base_url"} 引用,執行時 $.base_url 會即時展開成 https://api.example.com。完整語法(動態 id 用 id.$、與 $. JSONPath 混用、常見錯誤)見 外部記憶體語法

下一步