變數程式庫 CI/CD

在 Fabric 中使用變數函式庫來管理發佈管線各階段的設定,並在 Git 中儲存數值。 本文說明如何在生命週期管理、持續整合和持續傳遞 (CI/CD) 的內容中使用變數程式庫。

變數程式庫和部署管線

您可以在部署管線中部署變數程式庫及其值,以跨階段管理變數值。

部署管線的螢幕擷取畫面。

請記住以下重要資訊:

  • 變數程式庫中的所有 值集 都可供部署管線的所有階段使用,但階段中只有一組處於作用中狀態。

  • 每個階段的使用中的值集都是分別選取的。 您可以隨時更改它。

  • 當變數函式庫部署到空階段時,部署會建立一個工作空間, 預設值集 會處於啟用狀態。 如果目標環境需要另一個值集,請在目標工作區開啟變數庫,將所需的值集設為活動,並在執行依賴項目或部署計畫動作前儲存變數庫。

    將作用中值集從預設值變更為部署管線中替代值集的命令螢幕擷取畫面。

  • 雖然部署不會影響每個階段中設定的 選取作用中值 ,但您可以更新變數程式庫中的值本身。 其工作區中的消費者項目(例如管線)會自動從活動值集中接收正確的值。

在部署管線的其中一個階段中,對變數或值集執行下列作業,會導致變數程式庫與不同階段中的相同項目相比時,顯示為不同的表單來源:

  • 新增、刪除或編輯的變數
  • 新增或刪除的值集
  • 變數名稱
  • 變數的順序

比較後的部署管線螢幕截圖,顯示兩個階段中的變數程式庫有所不同。

比較時,對作用中值集的簡單變更不會註冊為 不同的表單來源 。 作用中值集是項目組態的一部分,但未包含在定義中。 這就是為什麼它不會出現在部署管線的比較結果中,也不會在每次部署時被覆寫。

在部署計畫中使用變數函式庫值

部署計畫動作可以使用變數函式庫的參考,而非字面參數值。 部署執行時,Fabric 會利用目標工作區中變數函式庫的主動值集來解析該參考。 這使得同一動作能使用針對每個部署階段專屬的值。

部署前,請確保目標工作區包含參考的變數函式庫與變數,且正確的值集已啟用。 部署不會改變主動值集。 如果部署建立了目標工作 區,預設 值會持續生效,直到你選擇並儲存另一個值集。

對於部署計畫的動作,你可以用變數參考作為參數值。 欲了解更多資訊,請參閱 「傳遞參數給動作」。

如果 Fabric 無法解析某個參考,它會回報是哪個參考部分失敗了。 關於解析序列與修正,請參見 變數參考解析失效。

變數程式庫和 Git 整合

如同其他 Fabric 專案,變數程式庫可以與 Git 整合以進行原始檔控制。 變數程式庫專案會儲存為資料夾,您可以在 Fabric 與 Git 提供者之間維護和同步處理。

在 Git 更新和提交期間,會檢查項目權限。

主動的值集選擇是工作區狀態,不會儲存在 Git 裡。 當初始同步將變數函式庫匯入新工作區 時,預設 狀態是啟用的。 如果目標環境需要另一個值集,請在新工作空間中開啟匯入的變數函式庫,將所需的值設定為活動,並在執行依賴項目或部署計畫動作前先儲存變數庫。

變數程式庫專案的結構描述是包含四個部分的 JSON 物件:

  • 值集資料夾
  • 設定
  • Platform.json,自動產生的檔案
  • 變數

包含可變函式庫檔案的 Git 資料夾的螢幕擷取畫面。

值集

變數庫資料夾包含名為 的子資料夾 valueSets。 此資料夾會包含每個值集的 JSON 檔案。 此 JSON 檔案僅包含該值集中 非預設 值的變數值。

欲了解更多關於值集檔案的資訊,請參閱 值集 及 值集範例。

非此檔案中變數的值則會取自預設值集。

設定

檔案包含 settings.json 變數程式庫的設定。

更多資訊請參見 變數 及 settings.json 範例。

變數

檔案 variables.json 包含變數名稱及其預設值。

如需詳細資訊,請參閱 variables.json 範例。

考慮事項與限制條件

變數的限制

  • 最多可以有 1,000 個變數 和最多 1,000 個值集,只要您同時滿足以下兩個需求:

    • 替代值集中的儲存格總數小於 10,000。
    • 項目大小不超過 1 MB。

    當您儲存變更時,會驗證這些需求。

  • 備註欄位最多可包含 2,048 個字元。

  • 值集描述欄位最多可包含 2,048 個字元。

替代值集的限制

  • 變數庫中的替代值集會依您新增的順序顯示。 目前,您無法在 UI 中重新排列它們。 若要變更順序,請直接編輯 JSON 檔案。
  • 每一個值集的名稱在變數程式庫中必須是唯一的。
  • 變數名稱在變數程式庫中必須是唯一的。 在工作區中,如果兩個變數位於不同的項目,則可以使用相同的名稱。
  • 在變數庫中,任何時間點都只會有一個(且僅有一個)值集處於作用中。 您無法刪除值集在作用中狀態時。 若要刪除它,請先將另一個值集設定為作用中。 您可以為部署管線的每個階段使用不同的啟用值組。