テンプレートは、スタックの作成に使用する、UTF-8 でエンコードされた JSON または YAML ファイルを指します。 テンプレートは、基盤となるインフラやアーキテクチャの青写真として使われます。 テンプレートは、Alibaba Cloud リソースの構成と依存関係を定義します。

ROS テンプレートの構造

{
  "ROSTemplateFormatVersion" : "2015-09-01",

  "Description" : "The description of the template, which is used to provide information such as application scenarios and template architecture.",
  "Metadata" : {
    // The template metadata that provides information such as layout for visualizations.
  },
  "Parameters" : {
    // The parameters you can specify when you create a stack.
  },

  "Mappings" : {
    // The mapping tables. Mapping tables are nested tables.
  },

  "Conditions": {
    // The conditions that are defined by using internal condition functions. These conditions determine when to create associated resources.
  },

  "Resources" : {
    // The detailed information of resources such as configurations and dependencies.
  },

  "Outputs" : {
    // The outputs that are used to provide useful information such as resource properties. You can use the ROS console or API to obtain the information.
  }
}

ROSTemplateFormatVersion

必須です。 ROS でサポートされているテンプレートバージョンです。 現在のバージョン: 2015 -09 -01。

Description

任意です。 テンプレートの説明です。テンプレートのアーキテクチャやアプリケーションシナリオなどの情報を提供するために使われます。 詳細な説明を行うことで、テンプレートの内容を把握しやすくできます。

Metadata

任意です。 JSON 形式のテンプレートのメタデータです。

Parameters

任意です。 スタックの作成時に指定できるパラメーターです。 多くの場合、ECS のインスタンスタイプがパラメーターとして定義されます。 パラメーターにはデフォルトの値が設定されています。 パラメータを使用することで、テンプレートの柔軟性と再利用性を向上できます。 スタックの作成時は、適切な仕様を選択してください。

Mappings

任意です。 マッピングは、ネストされたマッピングテーブルとして定義されます。 Fn::FindInMap を使用することで、キーと対応する名前の付いた値のセットを一致させられます。 キーにパラメーターの値を利用することも可能です。 たとえば、リージョンとイメージのマッピングテーブルで、リージョンごとに目的のイメージを検索できます。

詳細については、「マッピング」をご参照ください。

Conditions

任意です。 Fn::And、Fn::Or、Fn::Not、Fn::Equals を使って定義された条件です。 条件が複数ある場合はコンマ (,) で区切ります。 スタックを作成または更新すると、ROS はリソースの作成前にテンプレート内の全条件を評価します。 真の条件に関連付けられた全リソースが作成され、偽の条件に関連付けられたリソースはすべて無視されます。

詳細については、「条件」をご参照ください。

Resources

任意です。 テンプレートに基づいて作成されたスタック内のリソースの詳細情報です。 この情報には、リソースの依存関係と構成が含まれます。

詳細については、「リソース」をご参照ください。

Outputs

任意です。 リソースプロパティなどの有用な情報の提供に使われる出力です。 情報は ROS コンソールまたは API を使って取得できます。

詳細については、「出力」をご参照ください。