すべてのプロダクト
Search
ドキュメントセンター

Resource Orchestration Service:テンプレートコンテンツの概要

最終更新日:Jan 16, 2025

テンプレートは、インフラストラクチャとアーキテクチャの設計図として機能します。テンプレートでクラウドサービスリソースとその依存関係を定義して、Resource Orchestration Service ( ROS ) を使用してリソースをデプロイできます。このトピックでは、テンプレートを定義する方法について説明します。この例では、テンプレートを使用して仮想プライベートクラウド ( VPC ) とvSwitchを作成します。

前提条件

テンプレート構造の要件について理解している必要があります。詳細については、「テンプレート構造」をご参照ください。

テンプレートエディタを選択する

ビジネスシナリオに基づいて、オンラインまたはオンプレミスのテンプレートエディタを使用できます。どちらの種類のエディタも、自動構文ヒントとリソースプロパティの検証をサポートしています。

  • オンラインエディタ:インストールする必要なく、オンラインエディタを直接簡単に使用できます。オンラインエディタは、リソースのデプロイメントと管理のシナリオで使用される単純なテンプレートに適しています。オンラインエディタの使用方法の詳細については、「オンラインテンプレートエディタ」をご参照ください。

テンプレートを定義する

テンプレートを定義するには、テンプレートの リソース セクションで作成するリソースを宣言する必要があります。サービス別リソースタイプのリスト を参照して、ROSでサポートされているすべてのリソースタイプを表示できます。次に、目的のリソースタイプのドキュメントを参照して、サポートされているプロパティと戻り値を表示できます。リソースタイプのドキュメントでは、タイプ、必須かどうか、編集可能かどうかなど、各リソースプロパティの詳細について説明しています。プロパティが必須の場合、テンプレートの Resources セクションの Properties 部分でプロパティを宣言する必要があります。プロパティがオプションの場合、プロパティを空のままにすることができます。プロパティが編集可能な場合、スタックテンプレートのリソースにプロパティが指定された後、新しいテンプレートでプロパティを変更できます。次に、新しいテンプレートを使用して、スタックとプロパティを更新できます。プロパティが編集不可の場合、プロパティを変更することはできません。

  1. 目的のリソースタイプの詳細を表示します。

    1. サービス別リソースタイプのリスト を参照して、デプロイメントシナリオに適したリソースタイプを見つけます。この例では、VPCとvSwitchを作成するために使用される ALIYUN::ECS::VPC および ALIYUN::ECS::VSwitch リソースタイプが適しています。

    2. 各リソースタイプのドキュメントを参照し、リソースプロパティを表示します。

  2. パラメータ セクションで、テンプレートのパラメータを定義します。

    VPCの VpcCidrBlock パラメータ、およびvSwitchの ZoneId、VSwitchNameVSwitchCidrBlock パラメータを定義できます。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
  3. リソース セクションで、作成するリソースを定義します。

    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
  4. 出力 セクションで、テンプレートの出力を定義します。

    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
  5. テンプレート構造に従って、完全なテンプレートコンテンツを定義します。

    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

次のステップ

定義されたテンプレートを使用してスタックを作成するか、テンプレートをプライベートテンプレートとして保存します。詳細については、「スタックの概要」および「テンプレートの作成」をご参照ください。

関連情報