テンプレートは、インフラストラクチャとアーキテクチャの設計図として機能します。テンプレートでクラウドサービスリソースとその依存関係を定義して、Resource Orchestration Service ( ROS ) を使用してリソースをデプロイできます。このトピックでは、テンプレートを定義する方法について説明します。この例では、テンプレートを使用して仮想プライベートクラウド ( VPC ) とvSwitchを作成します。
前提条件
テンプレート構造の要件について理解している必要があります。詳細については、「テンプレート構造」をご参照ください。
テンプレートエディタを選択する
ビジネスシナリオに基づいて、オンラインまたはオンプレミスのテンプレートエディタを使用できます。どちらの種類のエディタも、自動構文ヒントとリソースプロパティの検証をサポートしています。
オンラインエディタ:インストールする必要なく、オンラインエディタを直接簡単に使用できます。オンラインエディタは、リソースのデプロイメントと管理のシナリオで使用される単純なテンプレートに適しています。オンラインエディタの使用方法の詳細については、「オンラインテンプレートエディタ」をご参照ください。
テンプレートを定義する
テンプレートを定義するには、テンプレートの リソース セクションで作成するリソースを宣言する必要があります。サービス別リソースタイプのリスト を参照して、ROSでサポートされているすべてのリソースタイプを表示できます。次に、目的のリソースタイプのドキュメントを参照して、サポートされているプロパティと戻り値を表示できます。リソースタイプのドキュメントでは、タイプ、必須かどうか、編集可能かどうかなど、各リソースプロパティの詳細について説明しています。プロパティが必須の場合、テンプレートの Resources セクションの Properties 部分でプロパティを宣言する必要があります。プロパティがオプションの場合、プロパティを空のままにすることができます。プロパティが編集可能な場合、スタックテンプレートのリソースにプロパティが指定された後、新しいテンプレートでプロパティを変更できます。次に、新しいテンプレートを使用して、スタックとプロパティを更新できます。プロパティが編集不可の場合、プロパティを変更することはできません。
目的のリソースタイプの詳細を表示します。
サービス別リソースタイプのリスト を参照して、デプロイメントシナリオに適したリソースタイプを見つけます。この例では、VPCとvSwitchを作成するために使用される ALIYUN::ECS::VPC および ALIYUN::ECS::VSwitch リソースタイプが適しています。
各リソースタイプのドキュメントを参照し、リソースプロパティを表示します。
パラメータ セクションで、テンプレートのパラメータを定義します。
VPCの VpcCidrBlock パラメータ、およびvSwitchの ZoneId、
VSwitchName、VSwitchCidrBlockパラメータを定義できます。Parameters セクションで定義されたパラメータは、ROSコンソールでGUI要素としてパラメータ値を提供します。詳細については、「ALIYUN::ECS::VPC」および「ALIYUN::ECS::VSwitch」をご参照ください。 vSwitchがVPCに関連付けられている場合、vSwitch CIDRブロックがVPC CIDRブロックに属していることを確認する必要があります。Parameters: VpcCidrBlock: Type: String Default: 192.168.0.0/16 AllowedValues: - 10.0.0.0/8 - 172.16.0.0/12 - 192.168.0.0/16 ZoneId: Type: String AssociationProperty: ALIYUN::ECS::Instance::ZoneId VSwitchName: Type: String VSwitchCidrBlock: Type: String Default: 192.168.0.0/24 AllowedValues: - 10.0.0.0/24 - 172.16.0.0/24 - 192.168.0.0/24リソース セクションで、作成するリソースを定義します。
vSwitchの VpcId、ZoneId、CidrBlock プロパティは必須です。 vSwitchとVPCの他のプロパティはオプションです。詳細については、「ALIYUN::ECS::VPC」および「ALIYUN::ECS::VSwitch」をご参照ください。 Ref 関数を使用して、Resources セクションのプロパティの Parameters セクションで定義されたパラメータを参照できます。 Resources セクションのプロパティの値を直接指定することもできます。詳細については、「Ref」をご参照ください。
Resources: Vpc: Type: ALIYUN::ECS::VPC Properties: VpcName: MyTest CidrBlock: Ref: VpcCidrBlock VSwitch: Type: ALIYUN::ECS::VSwitch Properties: VpcId: Ref: Vpc ZoneId: Ref: ZoneId VSwitchName: Ref: VSwitchName CidrBlock: Ref: VSwitchCidrBlock出力 セクションで、テンプレートの出力を定義します。
VPCの出力として VpcId を、vSwitchの出力として VSwitchId を定義できます。詳細については、「ALIYUN::ECS::VPC」および「ALIYUN::ECS::VSwitch」をご参照ください。組み込み関数 Fn::GetAtt を呼び出して、リソースのプロパティ値をクエリできます。詳細については、「Fn::GetAtt」をご参照ください。
Outputs: VpcId: Value: Fn::GetAtt: - Vpc - VpcId VSwitchId: Value: Fn::GetAtt: - VSwitch - VSwitchIdテンプレート構造に従って、完全なテンプレートコンテンツを定義します。
ROSTemplateFormatVersion: '2015-09-01' Parameters: VSwitchName: Type: String VSwitchCidrBlock: Default: 192.168.0.0/24 Type: String AllowedValues: - 10.0.0.0/24 - 172.16.0.0/24 - 192.168.0.0/24 VpcCidrBlock: Default: 192.168.0.0/16 Type: String AllowedValues: - 10.0.0.0/8 - 172.16.0.0/12 - 192.168.0.0/16 ZoneId: AssociationProperty: ALIYUN::ECS::Instance::ZoneId Type: String Resources: VSwitch: Type: ALIYUN::ECS::VSwitch Properties: VSwitchName: Ref: VSwitchName VpcId: Ref: Vpc CidrBlock: Ref: VSwitchCidrBlock ZoneId: Ref: ZoneId Vpc: Type: ALIYUN::ECS::VPC Properties: VpcName: MyTest CidrBlock: Ref: VpcCidrBlock Outputs: VpcId: Value: Fn::GetAtt: - Vpc - VpcId VSwitchId: Value: Fn::GetAtt: - VSwitch - VSwitchId
次のステップ
定義されたテンプレートを使用してスタックを作成するか、テンプレートをプライベートテンプレートとして保存します。詳細については、「スタックの概要」および「テンプレートの作成」をご参照ください。
関連情報
テンプレート構文に基づいてテンプレートの詳細設定を行うには、次のトピックを参照できます。
テンプレートのベストプラクティスを表示するには、次のトピックを参照できます。