Referência de sintaxe de seção Outputs para modelos do CloudFormation
A seção Outputs
opcional declara os valores de saída para a pilha. Esses valores de saída podem ser usados de várias maneiras:
-
Capture detalhes importantes sobre os recursos: uma saída é uma forma conveniente de coletar informações importantes sobre os recursos. Por exemplo, você pode produzir o nome do bucket do S3 para uma pilha para tornar o bucket mais fácil de encontrar. Os valores de saída podem ser visualizados na guia Saídas do console do CloudFormation ou via comando describe-stacks da CLI.
-
Referências entre pilhas: é possível importar valores de saída para outras pilhas para criar referências entre pilhas. Isso é útil quando você precisa compartilhar recursos ou configurações em várias pilhas.
Importante
O CloudFormation não edita nem ofusca nenhuma informação incluída na seção Outputs
. É altamente recomendável não usar essa seção para gerar informações confidenciais, como senhas ou segredos.
Os valores de saída estão disponíveis após a conclusão da operação da pilha. Os valores de saída da pilha não estão disponíveis quando um status de pilha está em qualquer um dos status IN_PROGRESS
. Não recomendamos estabelecer dependências entre um runtime de serviço e o valor de saída da pilha porque os valores de saída podem não estar disponíveis em todos os momentos.
Sintaxe
A seção Outputs
consiste no nome da chave Outputs
. Você pode declarar no máximo 200 saídas em um modelo.
O exemplo a seguir demonstra a estrutura da seção Outputs
.
JSON
Use chaves para circunscrever todas as declarações de saída. Delimite várias saídas com vírgulas.
"Outputs" : { "
OutputLogicalID
" : { "Description" : "Information about the value
", "Value" : "Value to return
", "Export" : { "Name" : "Name of resource to export
" } } }
YAML
Outputs:
OutputLogicalID
: Description:Information about the value
Value:Value to return
Export: Name:Name of resource to export
Campos de saída
A seção Outputs
pode incluir os seguintes campos.
- ID lógico (também chamado de nome lógico)
-
Um identificador para a saída atual. O ID lógico deve ser alfanumérico (
a–z
,A–Z
,0–9
) e exclusivo no modelo. Description
(Opcional)-
Um tipo
String
que descreve o valor da saída. O valor da declaração da descrição deve ser uma sequência literal com 0 a 1024 bytes de comprimento. Você não pode usar um parâmetro ou uma função para especificar a descrição. Value
(obrigatório)-
O valor da propriedade retornado pelo comando describe-stacks. O valor de uma saída pode incluir literais, referências a parâmetros, pseudoparâmetros, um valor de mapeamento ou funções intrínsecas.
Export
(Opcional)-
O nome da saída do recurso saída a ser exportado para uma referência de pilha cruzada.
Você pode usar funções intrínsecas para personalizar o valor de
Name
de uma exportação.Para ter mais informações, consulte Obter resultados exportados de uma pilha do CloudFormation implantada.
Para associar uma condição a uma saída, defina a condição na seção Referência de sintaxe de seção Conditions para modelos do CloudFormation do modelo.
Exemplos
Os exemplos a seguir ilustram como funciona a saída da pilha.
Tópicos
Saída da pilha
No exemplo a seguir, a saída chamada BackupLoadBalancerDNSName
retorna o nome DNS do recurso com o ID lógico BackupLoadBalancer
apenas quando a condição CreateProdResources
é verdadeira. A saída chamada InstanceID
retorna o ID da instância do EC2 com o ID lógico EC2Instance
.
JSON
"Outputs" : { "BackupLoadBalancerDNSName" : { "Description": "The DNSName of the backup load balancer", "Value" : { "Fn::GetAtt" : [ "BackupLoadBalancer", "DNSName" ]}, "Condition" : "CreateProdResources" }, "InstanceID" : { "Description": "The Instance ID", "Value" : { "Ref" : "EC2Instance" } } }
YAML
Outputs: BackupLoadBalancerDNSName: Description: The DNSName of the backup load balancer Value: !GetAtt BackupLoadBalancer.DNSName Condition: CreateProdResources InstanceID: Description: The Instance ID Value: !Ref EC2Instance
Personalizar o nome da exportação usando Fn::Sub
Nos exemplos a seguir, a saída chamada StackVPC
retorna o ID de uma VPC e, em seguida, exporta o valor para a referência de pilha cruzada com o nome VPCID
anexado ao nome da pilha.
JSON
"Outputs" : { "StackVPC" : { "Description" : "The ID of the VPC", "Value" : { "Ref" : "MyVPC" }, "Export" : { "Name" : {"Fn::Sub": "${AWS::StackName}-VPCID" } } } }
YAML
Outputs: StackVPC: Description: The ID of the VPC Value: !Ref MyVPC Export: Name: !Sub "${AWS::StackName}-VPCID"
Para obter mais informações sobre a função Fn::Sub
, consulte Fn::Sub.
Personalizar o nome da exportação usando Fn::Join
Use a função Fn::Join
para construir valores com base em parâmetros, atributos de recursos e outras strings.
Os exemplos apresentados a seguir usam a função Fn::Join
, em vez da função Fn::Sub
, para personalizar o nome da exportação. A função Fn::Join
de exemplo concatena o nome da pilha com o nome VPCID
usando dois pontos como um separador.
JSON
"Outputs" : { "StackVPC" : { "Description" : "The ID of the VPC", "Value" : { "Ref" : "MyVPC" }, "Export" : { "Name" : { "Fn::Join" : [ ":", [ { "Ref" : "AWS::StackName" }, "VPCID" ] ] } } } }
YAML
Outputs: StackVPC: Description: The ID of the VPC Value: !Ref MyVPC Export: Name: !Join [ ":", [ !Ref "AWS::StackName", VPCID ] ]
Para obter mais informações sobre a função Fn::Join
, consulte Fn::Join.
Retornar um URL construído usando Fn::Join
No exemplo a seguir de um modelo que cria um site do WordPress, InstallURL
é a string retornada por uma chamada da função Fn::Join
que concatena http://
, o nome DNS do recurso ElasticLoadBalancer
e /wp-admin/install.php
. O valor de saída seria semelhante ao seguinte:
http://mywptests-elasticl-1gb51l6sl8y5v-206169572.aws-region
.elb.amazonaws.com/wp-admin/install.php
JSON
{ "Outputs": { "InstallURL": { "Value": { "Fn::Join": [ "", [ "http://", { "Fn::GetAtt": [ "ElasticLoadBalancer", "DNSName" ] }, "/wp-admin/install.php" ] ] }, "Description": "Installation URL of the WordPress website" } } }
YAML
Outputs: InstallURL: Value: !Join - '' - - 'http://' - !GetAtt - ElasticLoadBalancer - DNSName - /wp-admin/install.php Description: Installation URL of the WordPress website
Para obter mais informações sobre a função Fn::Join
, consulte Fn::Join.