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

Resource Orchestration Service:テンプレート内でデータソースリソース (DataSource) の出力変数を参照する方法

最終更新日:Aug 22, 2026

データソースリソース (DataSource) は、Alibaba Cloud サービスのリソースデータをクエリするために使用します。クエリでは、単一のリソースまたは複数のリソースをリストとして返すことができます。このトピックでは、テンプレート内でデータソースリソース (DataSource) の出力変数を参照する方法について説明します。

単一リソースのクエリ結果

この例では、単一の ApsaraDB RDS インスタンス (DATASOURCE::RDS::DBInstance) をクエリし、内部ネットワーク接続用のポートを取得します。

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  DBInstanceId:
    Type: String
    AssociationProperty: ALIYUN::RDS::Instance::InstanceId
Resources:
  ExtensionDataSource:
    Properties:
      DBInstanceId:
        Ref: DBInstanceId
    Type: DATASOURCE::RDS::DBInstance
  Connection:
    Type: ALIYUN::RDS::Connection
    Properties:
      DBInstanceId:
        Ref: DBInstanceId
      ConnectionStringPrefix: test1
      Port:
        Fn::GetAtt:
          - ExtensionDataSource
          - Port
Outputs:
  Port:
    Description: 内部ネットワーク経由でインスタンスに接続するために使用するポート。
    Value:
      Fn::GetAtt:
        - ExtensionDataSource
        - Port
  ConnectionString:
    Description: 接続文字列
    Value:
      Fn::GetAtt:
        - Connection
        - ConnectionString

複数リソースのクエリ結果

この例では、既存の vSwitch (DATASOURCE::VPC::VSwitches) をクエリし、返された vSwitch の CIDR ブロックに基づいてセキュリティグループのインバウンドルールを作成します。組み込み関数 Fn::Jq を使用して、VSwitches 出力から最初の vSwitch の CIDR ブロックを取得します。Jq 機能の詳細については、「Jqドキュメント」をご参照ください。

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  VpcId:
    Type: String
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Description: Virtual Private Cloud コンソールで vpc- で始まる ID を見つけてください。
    Label: 既存の VPC インスタンス ID
  SecurityGroupId:
    Type: String
    AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId
    AssociationPropertyMetadata:
      VpcId: ${VpcId}
    Default: ''
Resources:
  ExtensionDataSource:
    Type: DATASOURCE::VPC::VSwitches
    Properties:
      VpcId:
        Ref: VpcId
  SecurityGroupIngress:
    Type: ALIYUN::ECS::SecurityGroupIngress
    Properties:
      IpProtocol: all
      SecurityGroupId:
        Ref: SecurityGroupId
      NicType: intranet
      SourceCidrIp:
        Fn::Jq:
          - First
          - .[0].CidrBlock
          - Fn::GetAtt:
              - ExtensionDataSource
              - VSwitches
      PortRange: '-1/-1'
Outputs:
  CidrBlock:
    Description: CIDR ブロック。
    Value:
      Fn::Jq:
        - First
        - .[0].CidrBlock
        - Fn::GetAtt:
            - ExtensionDataSource
            - VSwitches