Skip to Content

O que é saída Terraform?

Ilustração de várias pilhas de servidores abstratos em um ambiente digital em um fundo azul.

O Terraform é uma ferramenta amplamente aceita para definir e provisionar infraestrutura como código . Um dos recursos essenciais dessa ferramenta é a saída do Terraform, que permite aos usuários extrair e exibir informações úteis das configurações do Terraform.

Este artigo aborda a importância da saída do Terraform, sua sintaxe e uso, além das práticas recomendadas para aprimorar seus projetos de infraestrutura como código.

Entendendo a saída do Terraform

Suponha que você esteja gerenciando uma infraestrutura complexa e precise compartilhar dados críticos entre vários recursos ou sistemas externos. A saída Terraform é um recurso que permite fazer exatamente isso. Esse recurso extrai e exibe sem esforço informações valiosas das configurações do Terraform e permite compartilhá-las entre diferentes módulos, espaços de trabalho e sistemas externos.

As saídas do Terraform expõem informações valiosas sobre os recursos gerenciados pelo Terraform. A ferramenta de linha de comando de saída terraform permite recuperar e exibir esses valores de saída, que outros componentes da infraestrutura ou sistemas externos podem consumir.

Ter o recurso da saída Terraform oferece vários benefícios, principalmente:

  • Compartilhamento de dados: As saídas do Terraform se destacam no compartilhamento de atributos de recursos gerados dinamicamente entre configurações do Terraform e outros sistemas. Suponha que você crie uma instância do EC2 com o Terraform. O bloco de saída pode capturar o endereço IP público, que pode ser usado por outra configuração do Terraform para configurar uma regra de grupo de segurança ou repassado para uma ferramenta externa de gerenciamento de configuração.
  • Automação: As saídas capacitam o gerenciamento automatizado de configuração ao fornecer valores dinâmicos para recursos dependentes. Por exemplo, se você provisionar um servidor de banco de dados com o Terraform e a porta do banco de dados for atribuída dinamicamente, o bloco de saída poderá capturar essa porta. Essa porta capturada pode ser usada em outra configuração para estabelecer uma conexão com o banco de dados a partir de um aplicativo da Web.
  • Depuração e verificação: As saídas vão além de simplesmente verificar o estado dos recursos. Durante a solução de problemas, você pode examinar os valores de saída para identificar quaisquer inconsistências ou configurações inesperadas de recursos que possam estar causando problemas com processos dependentes.
  • Consistência: As saídas promovem consistência entre ambientes. Ao fazer referência a saídas em vez de valores codificados, você pode manter lógica de configuração idêntica em ambientes de desenvolvimento, teste e produção.
  • Documentação: As saídas podem atuar como uma forma de documentação, oferecendo informações claras e concisas sobre a infraestrutura provisionada pelo Terraform. Isso pode ser particularmente valioso para outros engenheiros ou equipes que precisam entender o sistema.

Sintaxe e uso de saídas Terraform

As saídas Terraform são definidas nos arquivos de configuração usando o bloco de saída. Aqui está o detalhamento da sintaxe:

output "<name>" {
  value = <expression>
}
  • <name>: esse é um nome definido pelo usuário para a variável de saída. Escolha um nome descritivo que reflita os dados que ele contém.
  • <expression>: essa é uma expressão do Terraform que avalia o valor que você deseja expor. Ele pode fazer referência a atributos de recursos, usar funções ou realizar cálculos.

Exemplos de saídas

Os seguintes exemplos de instância da AWS mostram como você pode exibir saídas do Terraform como diferentes tipos de dados:

  • Saída de sequência:

output "instance_id" {
  value = aws_instance.example.id
}
  • Número de saída:

output "instance_count" {
  value = length(aws_instance.example)
}
  • Saída da lista:

output "instance_ips" {
  value = aws_instance.example[*].public_ip
}
  • Saída do mapa:

output "instance_tags" {
  value = {
    for instance in aws_instance.example :
    instance.id => instance.tags
  }
}

Referência às saídas em seu código

Depois de definido, você pode referenciar saídas dentro do código do Terraform usando seus nomes. Veja um exemplo:

module "example_module" {
  source  = "./modules/example"
  # Reference the output from another module
  instance_id = var.other_module_name.instance_id
}

Neste exemplo, o exemplo_módulo faz referência à saída instance_id de outro módulo chamado other_module_name. Isso demonstra como as saídas facilitam a comunicação e a troca de dados entre módulos.

Variáveis de saída x fontes de dados

As saídas e fontes de dados do Terraform podem parecer semelhantes à primeira vista, mas atendem a objetivos distintos em seus fluxos de trabalho de infraestrutura como código (IaC, Infrastructure-as-code). Veja um detalhamento para esclarecer as diferenças:

Variáveis de saída do Terraform

As saídas do Terraform expõem informações sobre recursos gerenciados pelo Terraform. Os valores de saída são derivados de atributos de recursos existentes em sua configuração do Terraform. As saídas normalmente são usadas em casos que envolvem:

  • Compartilhamento de dados entre módulos ou configurações do Terraform
  • Passar informações para sistemas externos para gerenciamento ou monitoramento de configurações
  • Simplificação da lógica de configuração fazendo referência a valores dinâmicos em vez de dados codificados

Um exemplo desse cenário é extrair o endereço IP público de uma instância do EC2 e usá-lo para configurar uma regra de grupo de segurança em outro módulo Terraform.

Fontes de dados Terraform

As fontes de dados recuperam dados de fontes externas. Ele interage com APIs ou plug-ins para buscar informações de provedores de nuvem, ferramentas de gerenciamento de configuração ou outros sistemas externos. As fontes de dados são usadas em casos que envolvem:

  • Acessar informações sobre recursos existentes que não são gerenciados pelo próprio Terraform
  • Uso de dados externos para configurar dinamicamente os recursos do Terraform
  • Integração do seu IaC com outras ferramentas e plataformas

Um exemplo é usar uma fonte de dados para recuperar uma lista de regiões disponíveis em um provedor de nuvem antes de criar recursos nessas regiões.

Simplificando, a escolha entre usar uma variável de saída ou uma fonte de dados depende da origem dos dados que você precisa:

  • Se os dados se originarem de recursos gerenciados na configuração do Terraform, use uma variável de saída.
  • Se os dados residirem em um sistema externo ou precisarem ser buscados dinamicamente, use uma fonte de dados.

Práticas recomendadas para usar a saída Terraform

Ao usar as saídas do Terraform, você deve considerar as seguintes práticas recomendadas:

  • Use nomes descritivos: Escolha nomes claros e concisos que reflitam os dados que estão sendo expostos pela variável de saída. Evite nomes genéricos como "saída1" ou "dados". Em vez disso, use nomes como "rds_instance_public_ip" ou "webserver_security_group_id". Isso melhora a legibilidade e a manutenção de suas configurações.
  • Use uma convenção uniforme de nomenclatura: Mantenha uma convenção de nomenclatura uniforme em toda a sua base de código Terraform. Isso pode envolver o uso de sublinhados ou hifens para separação e manter o esquema de nomenclatura alinhado em todos os módulos e configurações.
  • Saídas relacionadas ao grupo: Agrupe as saídas relacionadas logicamente. Por exemplo, se você tiver várias saídas relacionadas a uma instância de banco de dados (endereço IP, porta, nome de usuário), agrupe-as sob um único cabeçalho em seu arquivo de configuração. Isso melhora a organização e facilita a localização de informações específicas.
  • Use comentários: Inclua comentários claros para explicar a finalidade e o uso de cada variável de saída. Isso é particularmente útil para resultados que podem não ser imediatamente autoexplicativos ou quando usados por outros módulos ou equipes.
  • Evite saídas desnecessárias: Evite definir saídas para dados que não são genuinamente necessários. Saídas excessivas podem desorganizar a saída e dificultar a identificação das informações mais relevantes. Avalie se os dados podem ser usados diretamente na configuração do Terraform ou se uma abordagem alternativa pode ser mais eficiente.
  • Evite saídas para segredos: Se possível, evite armazenar dados confidenciais nas configurações do Terraform. Explore métodos alternativos para gerenciar segredos, como aproveitar o HashiCorp Vault ou variáveis de ambiente.
  • Use o atributo sensível Terraform: Se usar saídas para segredos for inevitável, marque-as como sensíveis usando o atributo sensível no bloco de saída. Isso instrui o comando de saída terraform para suprimir o valor ao exibir a saída.

Veja um exemplo com o atributo sensível adicionado:

output "db_password" {
  value     = aws_db_instance.example.password
  sensitive = true
}

Conclusão

A saída Terraform permite preencher a lacuna entre configurações estáticas e infraestrutura dinâmica. Ao aproveitar os resultados, você pode simplificar o compartilhamento de dados, automatizar tarefas e simplificar a verificação.

Para aproveitar todo o potencial da sua infraestrutura, considere usar as soluções da Pure Storage, como a Portworx®, para permitir armazenamento persistente para suas implantações do Terraform Kubernetes, bem como o Pure Cloud Block Store.

10/2025
Virtual Machine Provisioning at Enterprise Scale
Sizing and scaling Red Hat OpenShift Virtualization with Portworx.
Whitepaper
22 pages

Confira os principais recursos e eventos

VÍDEO
Assista: O valor de um Enterprise Data Cloud.

Charlie Giancarlo sobre o por que de gerenciar dados — e não o armazenamento — é o futuro. Descubra como uma abordagem unificada transforma as operações de TI corporativas.

Assista agora
RECURSO
O armazenamento legado não pode potencializar o futuro.

Cargas de trabalho avançadas exigem velocidade, segurança e escala compatíveis com a IA. Sua pilha está pronta?

Faça a avaliação
DEMONSTRAÇÕES do PURE360
Explore, conheça e teste a Pure Storage.

Acesse vídeos e demonstrações sob demanda para ver do que a Pure Storage é capaz.

Assista às demonstrações
LIDERANÇA EM IDEIAS
A corrida pela inovação

Os insights e perspectivas mais recentes de líderes do setor na vanguarda da inovação do armazenamento.

Saiba mais
Seu navegador não é mais compatível.

Navegadores antigos normalmente representam riscos de segurança. Para oferecer a melhor experiência possível ao usar nosso site, atualize para qualquer um destes navegadores mais atualizados.