在本機編輯可部署架構堆疊定義

堆疊定義檔案定義了成員可部署架構,這些架構被堆疊在一起,形成更複雜的可部署架構。 它指定了關於這些可部署架構應該如何相互關聯的資訊,例如將架構連接在一起的輸入參照。 如果您打算透過私人目錄與他人分享此解決方案,則需要堆疊定義以協助確保可以成功部署。

除非您 在專案中堆疊了可部署的架構,並且想要透過私人目錄與他人分享該解決方案,否則您不需要使用堆疊定義檔案。

堆疊定義包含堆疊變數。 這些變數是使用者可以設定的輸入,以及堆疊式可部署架構的輸出,顯示在父層級。 這些輸入值會在成員的可部署架構中被引用,如下圖所示。 堆疊定義也包括成員可部署架構的輸入。 這些輸入可以是將可部署架構連結在一起的參考。 需要特定值或參照才能成功部署解決方案的輸入需要包含在堆疊定義中。 如需範例,請參閱 使用 CLI 來建立堆疊定義

堆疊定義的視覺化表示法。 在堆疊層次,包含一個名為 "prefix" 的輸入。 成員可部署架構 A 使用該字首作為輸入。 會建立輸出。 然後,成員可部署架構 B 會使用其中一個輸出作為輸入,並在部署時建立輸出。
可視化堆疊定義

使用控制台建立堆疊定義

在專案中,當您將可部署的架構堆疊在一起並定義變數時,就會自動建立堆疊定義。 使用主控台來堆疊可部署架構及定義堆疊變數的好處如下:

  • 您可以使用主控台中的引用拾取器在堆疊的可部署架構之間建立引用,而不是從頭開始寫引用。
  • 從專案中部署堆疊架構有助於在其他人配置和部署之前,驗證整體解決方案是否按照設計運作。
  • 由於堆疊定義是根據主控台中的選項來自動建立,因此成員可部署架構的版本定位器 ID 之類的資訊是精確的,且會自動更新。

在專案中,您可以選取要在堆疊層次包含哪些輸入。 這些輸入包含在堆疊定義的 inputs 區段中,並配置成專案中成員可部署架構的參照。 在下列影像中,prefix 輸入在 Custom Apache 成員可部署架構內強調顯示。 如果選取此輸入,Default value 會變更為堆疊層次輸入的參照。 當使用者從目錄新增您的解決方案到專案時,他們可以設定 prefix 輸入,而 Custom Apache 成員架構將參考該值。 fp_vsi_floating_ip_address 輸入會參照另一個成員可部署架構的輸出。 不應該選擇該輸入,因為該參考將成員架構連結在一起。 來自成員架構的這類輸入包含在堆疊定義檔的 members 區段中。

在專案中定義堆疊變數。
在專案中定義堆疊變數

編輯堆疊定義

若要在本端編輯堆疊定義,請完成下列步驟:

  1. 完成 堆疊可部署架構定義堆疊變數將堆疊架構載入私有目錄的 步驟。

    配置和部署堆疊在一起的架構,以驗證解決方案是否按照設計運作,然後再將它新增到私有目錄。

  2. 將可部署架構新增至私有目錄後,您會被帶到目錄中的 配置版本 頁面。 從那裡,按一下「行動」功能表 >「產生艙單」。

    您也可以使用專案 API 取得堆疊定義 方法或專案 CLI ibmcloud project stack-definition 指令來匯出堆疊定義。

  3. 開啟 stack_definition.json 檔案。

  4. 使用範例定義作為指引,編輯輸入及輸出變數。

  5. 將檔案新增至原始碼儲存庫的根資料夾。

下次將解決方案的新版本新增到目錄時,您的更新也會包含在內。

範例定義檔

建議使用專案來建立堆疊定義,以協助確保準確性。 不過,以下的程式碼片段可以作為範本,從頭開始建立堆疊定義:

{
   "inputs": [
      {
         "name": "Stack input 1",
         "type": "string",
         "hidden": false,
         "required": true,
         "default" : "Default value"
      },
      {
         "name": "Stack input 2",
         "type": "string",
         "hidden": false,
         "required": true
      }
   ],
   "outputs": [
      {
         "name": "Output 1 name",
         "value": "The reference to this output value"
      },
      {
         "name": "Output 2 name",
         "value": "The reference to this output value"
      }
   ],
   "members": [
      {
         "Name": "Deployable architecture 1 name",
         "Version_locator": "",
         "inputs": [
            {
               "name": "Input 1 name",
               "value": "reference"
            },
            {
               "name": "Input 2 name",
               "value": "reference"
            }
         ]
      },
      {
         "Name": "Deployable architecture 2 name",
         "Version_locator": "",
         "inputs": [
            {
               "name": "Input 1 name",
               "value": "reference"
            },
            {
               "name": "Input 2 name",
               "value": "reference"
            }
         ]
      }
   ]
}

堆疊輸入

inputs 值表示解決方案成功部署所需的輸入變數陣列。 當使用者從目錄新增可部署架構到專案時,必須在部署前設定這些輸入。 在 inputs 層次可以包含下列值。

"inputs": [
   {
      "name": "Stack input 1",
      "type": "string",
      "hidden": false,
      "required": true,
      "default" : "Default value"
   },
   {
      "name": "Stack input 2",
      "type": "string",
      "hidden": false,
      "required": true
   }
]
name
輸入變數的名稱。
type
變數的 Terraform 原始資料類型。 例如,booleanstring
hidden
這是一個布林值,指出在安裝期間是否應該對使用者隱藏參數。
required
這是一個布林值,指出使用者是否需要在安裝期間指定參數。
default
應該在型錄中設定的預設值。

堆疊輸出

outputs 值表示在部署解決方案時建立的輸出變數陣列。 在 outputs 層次可以包含下列值。

"outputs": [
   {
      "name": "Output 1 name",
      "value": "The reference to this output value"
   },
   {
      "name": "Output 2 name",
      "value": "The reference to this output value"
   }
]
name
輸出變數的名稱。
value
可以找到值的位置參照。 如需參照的相關資訊,請參閱 參照值

成員輸入

members 值表示每個堆疊式可部署架構的輸入和輸出陣列。 在 members 層次可以包含下列值。

"members": [
   {
      "Name": "Deployable architecture 1 name",
      "Version_locator": "",
      "inputs": [
         {
            "name": "Input 1 name",
            "value": "reference"
         },
         {
            "name": "Input 2 name",
            "value": "reference"
         }
      ]
   }
]
name
堆疊中所包含可部署架構的程式化名稱。
version_locator
識別成員可部署架構的版本。 如果要尋找版本定位器,請在型錄中選取產品,以開啟型錄詳細資料頁面。 請確定已選取正確的版本。 然後按一下檢視詳細資料
inputs
堆疊在一起的成員可部署架構的輸入。 包含整體解決方案部署所需的特定值輸入。 如果堆疊的成員架構彼此相依,則在此將這些值納入為參考值。 如需相關資訊,請參閱 參照值。 例如,如果您的其中一個架構需要與之堆疊的另一個架構的輸出,請加入輸出的參考作為值。
name
輸入變數的名稱。 請勿編輯名稱,因為它必須符合成員可部署架構中使用的輸入。
value
輸入變數的值。 需要提供預設值或參照。