Tous les produits
Search
Centre de documentation

Resource Orchestration Service:Comment référencer les variables de sortie d'une ressource de source de données (DataSource) dans un modèle

Dernière mise à jour :Aug 21, 2026

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