All Products
Search
Document Center

Resource Orchestration Service:Cara mereferensikan variabel output dari resource data source (DataSource) dalam templat

Last Updated:Aug 22, 2026

Resource data source (DataSource) digunakan untuk mengkueri data resource dari layanan Alibaba Cloud. Sebuah kueri dapat mengembalikan satu resource atau beberapa resource dalam bentuk daftar. Topik ini menjelaskan cara mereferensikan variabel output dari resource data source (DataSource) dalam templat.

Hasil kueri untuk satu resource

Contoh berikut menunjukkan cara mengkueri satu instans ApsaraDB RDS (DATASOURCE::RDS::DBInstance), mengambil port untuk koneksi jaringan internal-nya, serta meminta titik akhir publik instans tersebut.

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: Port yang digunakan untuk menghubungkan ke instans melalui jaringan internal.
    Value:
      Fn::GetAtt:
        - ExtensionDataSource
        - Port
  ConnectionString:
    Description: Connection string
    Value:
      Fn::GetAtt:
        - Connection
        - ConnectionString

Hasil kueri untuk multiple resource

Contoh berikut menunjukkan cara mengkueri vSwitch yang sudah ada (DATASOURCE::VPC::VSwitches) dan membuat aturan inbound untuk security group berdasarkan Blok CIDR dari vSwitch yang dikembalikan. Fungsi intrinsik Fn::Jq digunakan untuk mengambil Blok CIDR dari vSwitch pertama dalam output VSwitches. Untuk informasi lebih lanjut tentang fitur Jq, lihat dokumen Jq.

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  VpcId:
    Type: String
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Description: Temukan ID yang diawali dengan vpc- di Konsol Virtual Private Cloud.
    Label: Existing VPC Instance 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: Blok CIDR.
    Value:
      Fn::Jq:
        - First
        - .[0].CidrBlock
        - Fn::GetAtt:
            - ExtensionDataSource
            - VSwitches