テンプレートとは、Alibaba Cloud リソース、その構成、および依存関係を定義する UTF-8 でエンコードされた JSON または YAML ファイルです。テンプレートを使用してスタックを作成します。
ROS テンプレート構造
ROSTemplateFormatVersion: '2015-09-01'
Description: テンプレートの説明です。このセクションでは、テンプレートのシナリオ、アーキテクチャなどを説明します。
# 可視化のためのレイアウト情報など、テンプレートに関するメタデータ。
Metadata:
# スタック作成時にユーザーが指定できる、カスタマイズ可能なパラメーターを定義。
Parameters:
# マッピングテーブルを定義。マッピングは多層のマップ構造です。
Mappings:
# 組み込みの条件関数を使用して条件を定義。これらの条件は、関連リソースを作成するタイミングを決定します。
Conditions:
# 依存関係と構成の詳細を含め、必要なリソースを詳細に定義。
Resources:
# リソースのプロパティなどの有用な情報を出力。出力はコンソールから取得するか、API を呼び出して取得できます。
Outputs:
# スタックの作成または更新時にテンプレートに渡されたパラメーター値を検証。
Rules:
ROSTemplateFormatVersion (必須)
ROS テンプレートのバージョンです。現在のバージョン: 2015-09-01。
Description (オプション)
テンプレートについて説明します。このセクションでは、シナリオ、アーキテクチャ、またはその他の詳細について説明します。
Metadata (オプション)
可視化のためのレイアウト情報など、テンプレートのメタデータを JSON 形式で格納します。
Parameters (オプション)
スタック作成用のカスタマイズ可能なパラメーターを定義します。パラメーターはデフォルト値をサポートし、テンプレートの再利用性が向上します。たとえば、ECS インスタンスのインスタンスタイプをパラメーター化して、スタックごとに異なる構成を選択できます。
Mappings (オプション)
多層のマッピングテーブルを定義します。Fn::FindInMap 関数を使用して、キーで値を検索できます。たとえば、リージョンとイメージのマッピングを検索して、リージョンに適したイメージを見つけることができます。
Conditions (オプション)
Fn::And、Fn::Or、Fn::Not、Fn::Equals などの関数を使用して条件を定義します。複数の条件はカンマ (,) で区切ります。スタックの作成または更新時に、ROS はすべての条件を評価し、条件が true のリソースのみを作成します。
Resources (必須)
スタック内のリソース、その依存関係、および構成の詳細を宣言します。
Outputs (オプション)
スタック作成後に返す値 (リソースのプロパティなど) を宣言します。出力はコンソールから取得するか、API 操作を通じて取得できます。
Rules (オプション)
スタックの作成または更新時にテンプレートに渡されたパラメーター値を検証します。