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
- ConnectionStringHasil 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