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.
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 umExport
não pode usar funçõesRef
ouGetAtt
que dependam de um recurso.Da mesma maneira, a função
ImportValue
não pode incluir funçõesRef
ouGetAtt
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çãoFn::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"