Um recurso de fonte de dados (DataSource) consulta dados de recursos de um service da Alibaba Cloud. A consulta pode retornar um único recurso ou uma lista com vários recursos. Este tópico descreve como referenciar as variáveis de saída de um recurso de fonte de dados (DataSource) em um modelo.
Resultado da consulta para um único recurso
Este exemplo demonstra como consultar uma única instância do ApsaraDB RDS (DATASOURCE::RDS::DBInstance), obter a porta de conexão à rede interna e solicitar um endpoint público para a instância.
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
Resultado da consulta para múltiplos recursos
O exemplo a seguir ilustra a consulta de vSwitches existentes (DATASOURCE::VPC::VSwitches) e a criação de uma regra de entrada para um grupo de segurança com base no bloco CIDR de um vSwitch retornado. A função intrínseca Fn::Jq recupera o bloco CIDR do primeiro vSwitch a partir da saída VSwitches. Para mais detalhes sobre o recurso Jq, consulte a documentação do 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
Instruções
Leia o conteúdo em inglês para compreender O QUE precisa ser comunicado
Escreva o texto em português do Brasil DO ZERO — esqueça a estrutura das frases em inglês
Preserve toda a formatação markdown, blocos de código, links e imagens exatamente como estão
Copie os placeholders xref (
{XREF_N}) literalmente, sem traduzir ou modificarAplique todas as regras específicas de idioma rigorosamente
Siga as regras de stopwords com tolerância zero
Utilize o modo imperativo em passos numerados e listas procedimentais
Garanta a consistência terminológica — o mesmo termo deve ter a mesma tradução em todo o documento
Varie os inícios de frase em listas e tabelas — nenhum início deve se repetir 3 vezes ou mais
Retorne APENAS o documento markdown em português do Brasil, sem explicações