Referência de sintaxe de seção Outputs para modelos do CloudFormation - AWS CloudFormation

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.

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.