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

Resource Orchestration Service:データソースリソース

最終更新日:Mar 20, 2025

Resource Orchestration Service (ROS) は、Alibaba Cloud サービスのリソースデータをクエリするためのデータソースリソース (DataSource リソースとも呼ばれます) を提供します。 データソースリソースは、通常のリソースおよび出力で参照できます。 データソースリソースと通常のリソースは、参照、依存関係、更新など、同じ機能を提供しますが、異なるビジネスシナリオに適用されます。

ビジネスシナリオ

クエリされた値を入力として使用してリソースを作成する

ROS は、指定された条件に基づいてデータソースリソースの値をクエリし、クエリされた値を入力プロパティ値として使用して通常のリソースを作成します。

次のテンプレートを使用して、複数のパラメーターを条件として指定し、データソースリソースの値をクエリし、クエリされた値を入力プロパティ値として使用して Elastic Compute Service (ECS) インスタンスを作成できます。

  • コア数とメモリ: vCPU の数とメモリサイズを個別に指定する条件。 ROS はこれらの条件を使用して使用可能な ECS インスタンスタイプをクエリし、デフォルトでは最初のインスタンスタイプを使用して ECS インスタンスを作成します。

  • イメージ名: イメージ名を指定する条件。 ROS はこの条件を使用して使用可能なイメージをクエリし、デフォルトでは最初のイメージ ID を使用して ECS インスタンスを作成します。

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  ZoneId:
    Type: String
    AssociationProperty: ALIYUN::ECS::ZoneId
  VpcId:
    Type: String
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
  VSwitchId:
    Type: String
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
    AssociationPropertyMetadata:
      VpcId: ${VpcId}
      ZoneId: ${ZoneId}
  SecurityGroupId:
    Type: String
    AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId
    AssociationPropertyMetadata:
      VpcId: ${VpcId}
Resources:
  DS-RecommendInstanceTypes:
    Type: DATASOURCE::ECS::RecommendInstanceTypes
    Properties:
      Cores: 1
      Memory: 1
  DS-Images:
    Type: DATASOURCE::ECS::Images
    Properties:
      ImageName: CentOS8*
      InstanceType:
        Fn::Select:
          - 0
          - Ref: DS-RecommendInstanceTypes
  Instance:
    Type: ALIYUN::ECS::Instance
    Properties:
      InstanceName: MyInstance
      ImageId:
        Fn::Select:
          - 0
          - Ref: DS-Images
      InstanceType:
        Fn::Select:
          - 0
          - Ref: DS-RecommendInstanceTypes
      ZoneId:
        Ref: ZoneId
      VSwitchId:
        Ref: VSwitchId
      SecurityGroupId:
        Ref: SecurityGroupId
      SystemDiskCategory: cloud_efficiency
Outputs:
  InstanceId:
    Value:
      Ref: Instance

テンプレート内の構成:

  • ZoneIdVpcIdVSwitchIdSecurityGroupId の各パラメーターが [パラメーター] セクションで指定されています。 各パラメーターは AssociationProperty で構成されています。 このようにして、ROS はコンソールの [テンプレートパラメーターの構成] セクションで選択できるパラメーター値のリストを表示します。

  • 以下のデータソースリソースと通常のリソースが [リソース] セクションで指定されています。

    • DS-RecommendInstanceTypes: データソースリソースの論理 ID。 ROS は 1 vCPU と 1 GB のメモリを条件として使用して、使用可能な ECS インスタンスタイプをクエリします。

    • DS-Images: データソースリソースの論理 ID。 ROS は InstanceType プロパティと ImageName プロパティを条件として使用して、使用可能なイメージをクエリします。 InstanceType プロパティは { "Fn::Select": [0, { "Ref": "DS-RecommendInstanceTypes" } } に設定されており、使用可能な ECS インスタンスタイプの中から最初の ECS インスタンスタイプを使用します。 ImageName プロパティは、CentOS で始まる値に設定されています。

    • Instance: 通常のリソースの論理 ID。 ROS は、最初にクエリされたインスタンスタイプとイメージ ID を入力プロパティ値として使用して ECS インスタンスを作成します。

  • InstanceId プロパティが [出力] セクションで指定されています。

出力タブにリソースの詳細を表示する

テンプレートの「リソース」セクションでデータソースリソースを指定した後、テンプレートの「出力」セクションでそれを参照できます。 このようにして、ROS コンソールは [出力] タブにリソースの詳細を表示します。

次のテンプレートを使用して Virtual Private Cloud (VPC) を作成し、データソースリソースを構成して VPC の詳細をクエリし、[出力] タブに詳細を表示できます。

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  Vpc:
    Type: ALIYUN::ECS::VPC
    Properties:
      VpcName: MyVpc
      CidrBlock: 172.16.0.0/12
  DS-Vpcs:
    Type: DATASOURCE::VPC::Vpcs
    Properties:
      VpcIds:
        - Ref: Vpc
Outputs:
  VpcData:
    Value:
      Fn::Select:
        - 0
        - Fn::GetAtt:
            - DS-Vpcs
            - Vpcs

テンプレート内の構成:

  • 通常のリソースとデータソースリソースが [リソース] セクションで指定されています。

    • Vpc: 通常のリソースの論理 ID。 VpcName プロパティと CidrBlock プロパティは、VPC を作成するために Vpc リソースで指定されています。

    • DS-Vpcs: データソースリソースの論理 ID。 ROS は、Vpc リソースに対応する VPC ID を入力プロパティ値として使用して VPC の詳細をクエリします。

  • DS-VpcsVpcsVpcData 出力で指定されており、Vpcs の最初の値を使用します。