Une ressource de source de données (DataSource) permet d'interroger les données de ressources d'un service Alibaba Cloud. Une requête peut renvoyer une seule ressource ou plusieurs ressources sous forme de liste. Cette rubrique explique comment référencer les variables de sortie d'une ressource de source de données (DataSource) dans un modèle.
Résultat de requête pour une seule ressource
Cet exemple montre comment interroger une instance ApsaraDB RDS unique (DATASOURCE::RDS::DBInstance), récupérer le port de sa connexion au réseau interne et demander un endpoint public pour l'instance.
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: The port that is used to connect to the instance over an internal network.
Value:
Fn::GetAtt:
- ExtensionDataSource
- Port
ConnectionString:
Description: Connection string
Value:
Fn::GetAtt:
- Connection
- ConnectionString
Résultat de requête pour plusieurs ressources
Cet exemple montre comment interroger les vSwitches existants (DATASOURCE::VPC::VSwitches) et créer une règle entrante pour un groupe de sécurité en fonction du bloc CIDR d'un vSwitch renvoyé. La fonction intrinsèque Fn::Jq extrait le bloc CIDR du premier vSwitch à partir de la sortie VSwitches. Pour plus d'informations sur la fonctionnalité Jq, consultez la documentation Jq.
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
VpcId:
Type: String
AssociationProperty: ALIYUN::ECS::VPC::VPCId
Description: Find the ID that starts with vpc- in the Virtual Private Cloud console.
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: The CIDR block.
Value:
Fn::Jq:
- First
- .[0].CidrBlock
- Fn::GetAtt:
- ExtensionDataSource
- VSwitches