展開可能なアーキテクチャ・スタック定義をローカルで編集する
スタック定義ファイルは、より複雑な展開可能アーキテクチャを形成するために、一緒にスタックされるメンバーの展開可能アーキテクチャを定義する。 アーキテクチャ同士を接続する入力参照など、展開可能なアーキテクチャが互いにどのように関係するかについての情報を指定する。 このソリューションをプライベート・カタログを通じて他の人と共有する予定がある場合は、スタック定義が必要です。
プロジェクトでデプロイ可能なアーキテクチャをスタック し、プライベート・カタログを通じてそのソリューションを他の人と共有したい場合を除き、スタック定義ファイルを使用する必要はありません。
スタック定義にはスタック変数が含まれます。 これらの変数は、ユーザーが設定できる入力であり、親レベルで表示されるスタックされた展開可能なアーキテクチャからの出力である。 これらの入力値は、以下の図に示すように、メンバーの展開可能なアーキテクチャで参照される。 スタック定義には、メンバーである展開可能なアーキテクチャからの入力も含まれる。 これらの入力は、展開可能なアーキテクチャーを結びつける参照となりうる。 ソリューションを正常に展開するために特定の値または参照を必要とする入力は、スタック定義に含める必要がある。 例については、 「CLI を使用してスタック定義を作成する」 を参照してください。
コンソールを使ってスタック定義を作成する
プロジェクトでは、配置可能なアーキテクチャをスタックして変数を定義すると、スタック定義が自動的に作成されます。 コンソールを使用してデプロイ可能なアーキテクチャをスタックし、スタック変数を定義すると、次の利点が得られます。
- コンソールの参照ピッカーを使用して、スタックされたデプロイ可能なアーキテクチャ間の参照を作成できます。
- プロジェクトからスタックされたアーキテクチャをデプロイすることは、他の人がそれを構成しデプロイする前に、ソリューション全体が設計通りに機能するかどうかを検証するのに役立つ。
- スタック定義はコンソールの選択に基づいて自動的に作成されるため、メンバーのデプロイ可能なアーキテクチャのバージョン ロケーター ID などの情報は正確であり、自動的に更新されます。
プロジェクトでは、スタック レベルに含める入力を選択できます。 これらの入力は、スタック定義の inputs
セクションに含まれており、プロジェクトのメンバーのデプロイ可能なアーキテクチャ内の参照として構成されます。 次の画像では、 prefix
入力が Custom Apache
メンバーのデプロイ可能なアーキテクチャ内で強調表示されています。 この入力が選択されると、 Default value
はスタック レベル入力への参照に変わります。 ユーザーがカタログからプロジェクトにソリューションを追加するとき、 prefix
入力を構成することができ、 Custom Apache
メンバー・アーキテクチャはその値を参照します。 fp_vsi_floating_ip_address
入力は、別のメンバーのデプロイ可能なアーキテクチャからの出力を参照します。 その入力は選択されるべきではない。その参照はメンバー・アーキテクチャをリンクしているからだ。
メンバー アーキテクチャからのこのような入力は、スタック定義ファイルの members
セクションに含まれます。
スタック定義の編集
スタック定義をローカルで編集するには、次の手順を実行します。
-
展開可能なアーキテクチャをスタック し、 スタック変数を定義 し、 スタックしたアーキテクチャをプライベート・カタログにオンボード する手順を完了します。
プライベート・カタログに追加する前に、一緒に積み重ねるアーキテクチャを構成し、デプロイして、ソリューションが設計どおりに機能するかどうかを検証する。
-
配置可能なアーキテクチャがプライベート・カタログに追加されると、カタログの 「Configure version」 ページに移動します。 そこから、 「アクション」 メニュー > 「コードとしてエクスポート」 をクリックします。
プロジェクト API の スタック定義取得 メソッドまたはプロジェクト CLI の
ibmcloud project stack-definition
コマンドを使用してスタック定義をエクスポートすることもできます。 -
stack_definition.json
ファイルを開きます。 -
サンプル定義をガイドとして使用して、入力変数と出力変数を編集します。
-
ファイルをソース コード リポジトリのルート フォルダーに追加します。
次にソリューションの新バージョンをカタログに追加すると、アップデートが含まれます。
定義ファイルの例
スタック定義の正確性を確保するために、プロジェクトを使用して作成することを推奨する。 しかし、以下のコード・スニペットは、スタック定義をゼロから作成するテンプレートとして使うことができる:
{
"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プリミティブデータ型。 例えば、
boolean
またはstring
などです。 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
- 入力変数の値。 デフォルト値または参照を提供する必要があります。