Na seção Outputs, defina os valores que o Resource Orchestration Service (ROS) retorna durante a chamada da operação GetStack. Por exemplo, ao definir o ID de uma instância do Elastic Compute Service (ECS) como output, o ROS retorna esse ID quando a operação GetStack é executada.
Sintaxe
A declaração de um output inclui nome e descrição. Cada output pode conter vários valores retornados em um array. O código a seguir ilustra a sintaxe da seção Outputs:
Outputs:
Name of Output 1:
Description: the description of the output.
Condition: the condition that determines whether to return a specific resource property.
Value: the expression of the output value.
Label: the alias of the output.
Name of Output 2:
Description: the description of the output.
Condition: the condition that determines whether to return a specific resource property.
Value:
- Expression 1 of the output value.
- Expression 2 of the output value.
- ...
Label: the alias of the output.
Nome: identifica o output e deve ser único no modelo.
Descrição: detalha o propósito do output. Campo opcional.
Valor: propriedade obrigatória que especifica o valor retornado para uma propriedade de recurso durante a chamada da operação GetStack.
Condição: determina se o recurso será criado e se suas informações serão retornadas. O sistema cria o recurso e retorna os dados apenas quando a condição especificada é verdadeira. Campo opcional.
Rótulo: define um alias para o output. Campo opcional.
NoEcho: controla a ocultação do valor do parâmetro retornado. Se definido como
true, o ROS mascara o valor com asteriscos (*). Campo opcional.Console.Url: URL do console exibida na aba Stack Information da página de detalhes da pilha. Campo opcional.
No valor de um output, é possível definir funções e literais como números, strings, dicionários e listas. Use também Ref para referenciar valores e Fn::GetAtt para consultar valores de propriedades de recursos.
Exemplos
O exemplo a seguir utiliza dois outputs. O primeiro retorna a propriedade InstanceId do WebServer. O segundo combina as propriedades PublicIp e PrivateIp desse recurso.
Outputs:
InstanceId:
Value:
Fn::GetAtt:
- WebServer
- InstanceId
PublicIp & PrivateIp:
Value:
- Fn::GetAtt:
- WebServer
- PublicIp
- Fn::GetAtt:
- WebServer
- PrivateIp
Neste cenário, o WebServer é criado apenas se a condição definida por MaxAmount for verdadeira.
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
MaxAmount:
Type: Number
Default: 1
Conditions:
CreateWebServer:
Fn::Not:
Fn::Equals:
- 0
- Ref: MaxAmount
Resources:
WebServer:
Type: ALIYUN::ECS::InstanceGroup
Condition: CreateWebServer
Properties:
ImageId: m-25l0r****
InstanceType: ecs.t1.small
MaxAmount:
Ref: MaxAmount
Outputs:
WebServerIP:
Condition: CreateWebServer
Value:
Fn::GetAtt:
- WebServer
- PublicIps
O exemplo abaixo demonstra o retorno de valores de diversos tipos, incluindo listas, dicionários, funções e constantes. Ele também ilustra o uso de Console.Url para especificar a URL do console de serviço como output.
ROSTemplateFormatVersion: '2015-09-01'
Metadata: {}
Parameters:
DictObjectParameter:
Default:
k2: v2
k1: v1
Type: Json
NumberParameter:
Default: 3.14
Type: Number
StringParameter:
Default: ecs.c1.large
Type: String
ArrayListParameter:
Default:
- xiaomi
- xiaofeng
- xiaoliang
Type: Json
EcsInstancePublicIp:
Default: 1.1.X.X
Type: String
Resources: {}
Outputs:
Console.Url:
Description: Console Url Demo Value
Value:
Fn::Sub:
- http://${EcsPublicIp}/elasticsearch-demo
- EcsPublicIp:
Ref: EcsInstancePublicIp
ArrayList:
Description: ArrayList Output Value
Value:
Ref: ArrayListParameter
DictObject:
Description: DictObject Output Value
Value:
Ref: DictObjectParameter
Number:
Description: Number Output Value
Value:
Ref: NumberParameter
String:
Description: String Output Value
Value:
Ref: StringParameter
Para retornar várias URLs de servidores web separadas por vírgula (,), defina o valor do output conforme o exemplo a seguir.
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
WebServerAddress:
Type: String
Default: 192.168.1.1
Label:
en: WebServerAddress
Outputs:
WebServerAddress:
Description:
en: Web Server url.
Value:
Fn::Sub:
- http://${WebServerAddress}:80,http://${WebServerAddress}:8080,http://${WebServerAddress}:8881
- WebServerAddress:
Ref: WebServerAddress