Outputs - AWS CloudFormation

Outputs

A seção opcional Outputs declara valores de saída que você pode importar em outras pilhas (para criar referências de pilha cruzada), retornar a resposta (para descrever chamadas de pilha) ou visualizar no console do AWS CloudFormation. Por exemplo, você pode produzir o nome do bucket do S3 para uma pilha para tornar o bucket mais fácil de encontrar.

Importante

O CloudFormationnão edita nem ofusca nenhuma informação incluída na seção Saídas. É 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 IN_PROGRESS status. Não recomendamos estabelecer dependências entre um tempo de execução 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, seguido por um espaço e um dois-pontos. 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" : { "Logical ID" : { "Description" : "Information about the value", "Value" : "Value to return", "Export" : { "Name" : "Value to export" } } }

YAML

Outputs: Logical ID: Description: Information about the value Value: Value to return Export: Name: Value to export

Campos de saída

A seção Outputs pode incluir os seguintes campos.

ID 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. A descrição pode ter um máximo de 4 K de comprimento.

Valor (necessário)

O valor da propriedade retornado pelo comando aws cloudformation 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.

nota

As seguintes restrições se aplicam a referências de pilha cruzada:

  • Para cada conta da AWS, os nomes de Export devem ser exclusivos dentro de uma região.

  • Você não pode criar referências de pilha cruzada entre regiões. Você pode usar a função intrínseca Fn::ImportValue para importar apenas valores que foram exportados dentro da mesma região.

  • Para saídas, o valor da propriedade Name de um Export não pode usar funções Ref ou GetAtt que dependam de um recurso.

    Da mesma maneira, a função ImportValue não pode incluir funções Ref ou GetAtt que dependam de um recurso.

  • Você não poderá excluir uma pilha, se outra pilha referenciar uma das saídas.

  • Você não pode modificar nem remover um valor de saída referenciado por outra pilha.

Você pode usar funções intrínsecas para personalizar o valor de Name de uma exportação. Os exemplos a seguir usam a função Fn::Join.

JSON

"Export" : { "Name" : { "Fn::Join" : [ ":", [ { "Ref" : "AWS::StackName" }, "AccountVPC" ] ] } }

YAML

Export: Name: !Join [ ":", [ !Ref "AWS::StackName", AccountVPC ] ]

Para associar uma condição a uma saída, defina a condição na seção Conditions 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 segunda saída mostra como especificar várias saídas.)

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

Saída de pilha cruzada

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"