Introdução
No Terraform, os valores de output (saída) são uma forma de expor dados relevantes sobre seus recursos após a implantação. Eles funcionam como valores de retorno de um módulo do Terraform e podem ser usados para consultar facilmente informações como o endereço IP de um servidor, uma string de conexão de banco de dados ou um caminho de arquivo. Isso torna as informações facilmente acessíveis via linha de comando e permite que outras configurações do Terraform as utilizem.
Neste laboratório, você aprenderá a definir, aplicar e visualizar valores de output. Começaremos com uma configuração básica do Terraform que cria um arquivo local e, em seguida, adicionaremos um bloco de output para expor o caminho desse arquivo.
Criar o arquivo outputs.tf para definições de output
Nesta etapa, criaremos um arquivo dedicado para nossas definições de output. Embora você possa colocar blocos de output em qualquer arquivo .tf, é uma convenção comum e uma boa prática colocá-los em um arquivo separado chamado outputs.tf. Isso mantém sua configuração organizada e facilita a localização de todos os outputs do seu projeto.
Todo o seu trabalho será realizado no diretório ~/project, que é o diretório padrão no seu terminal.
Primeiro, vamos verificar o arquivo main.tf que foi pré-criado para você.
ls -l
Você deverá ver o arquivo main.tf e um diretório .terraform.
total 4
-rw-rw-r-- 1 labex labex 279 Oct 15 12:39 main.tf
Agora, crie o arquivo outputs.tf usando o comando touch.
touch outputs.tf
Este comando cria um arquivo vazio chamado outputs.tf no diretório atual. Você pode verificar a criação listando os arquivos novamente.
ls -l
Agora você verá o outputs.tf na lista de arquivos.
total 4
-rw-rw-r-- 1 labex labex 279 Oct 15 12:39 main.tf
-rw-rw-r-- 1 labex labex 0 Oct 15 12:39 outputs.tf
Definir output para o nome do arquivo local_file
Nesta etapa, você definirá um bloco de output no arquivo outputs.tf. Um bloco de output declara um único valor de saída para sua configuração do Terraform.
A sintaxe básica para um bloco de output é:
output "NAME" {
## Argumentos vão aqui
}
Aqui, NAME é uma string que fornece um nome para o output, o qual você usará posteriormente para consultar seu valor.
Vamos abrir o arquivo outputs.tf com o editor nano e adicionar nosso primeiro bloco de output.
nano outputs.tf
Agora, adicione o seguinte código ao arquivo. Nomearemos nosso output como file_path.
output "file_path" {
}
Após adicionar o código, salve o arquivo e saia do nano pressionando Ctrl+X, depois Y e, finalmente, Enter.
Este bloco ainda não faz muita coisa, pois falta um argumento value. Adicionaremos isso na próxima etapa.
Referenciar atributo de recurso no bloco de output
Nesta etapa, tornaremos nosso output útil informando qual valor ele deve exibir. Isso é feito usando o argumento value dentro do bloco de output. O valor é tipicamente uma referência a um atributo de um recurso definido em sua configuração.
A sintaxe para referenciar um atributo de recurso é <RESOURCE_TYPE>.<RESOURCE_NAME>.<ATTRIBUTE>.
Em nosso arquivo main.tf, temos um recurso definido como:
resource "local_file" "example" {
## ...
}
O recurso local_file possui um atributo chamado filename, que contém o caminho para o arquivo que ele gerencia. Para referenciar este atributo, usamos local_file.example.filename.
Vamos adicionar essa referência ao nosso bloco de output. Abra o outputs.tf novamente com o nano.
nano outputs.tf
Modifique o arquivo para incluir o argumento value conforme mostrado abaixo:
output "file_path" {
value = local_file.example.filename
}
Isso informa ao Terraform que o output file_path deve ter o valor do atributo filename do recurso local_file chamado example.
Salve o arquivo e saia do nano pressionando Ctrl+X, Y e Enter.
Executar terraform apply para atualizar a configuração
Nesta etapa, você aplicará as alterações de configuração. Sempre que você adicionar, remover ou modificar outputs, deve executar terraform apply para que o Terraform reconheça as alterações e atualize o arquivo de estado (state file). O arquivo de estado é onde o Terraform armazena os valores dos seus outputs.
Execute o comando terraform apply no seu terminal.
terraform apply
O Terraform mostrará primeiro um plano de execução. Ele detectará que você adicionou um output e planejará adicioná-lo. Como o recurso local_file ainda não existe, ele também planejará criá-lo.
Você será solicitado a confirmar a ação. Digite yes e pressione Enter.
Terraform used the selected providers to generate the following execution plan.
Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
## local_file.example will be created
+ resource "local_file" "example" {
+ content = "This is an example file managed by Terraform."
+ content_base64sha256 = (known after apply)
+ content_base64sha512 = (known after apply)
+ content_md5 = (known after apply)
+ content_sha1 = (known after apply)
+ content_sha256 = (known after apply)
+ content_sha512 = (known after apply)
+ directory_permission = "0777"
+ file_permission = "0777"
+ filename = "./example.txt"
+ id = (known after apply)
}
Plan: 1 to add, 0 to change, 0 to destroy.
Changes to Outputs:
+ file_path = "./example.txt"
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
local_file.example: Creating...
local_file.example: Creation complete after 0s [id=ec3adcab998872def2df6200fb03992ac6f237a4]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Outputs:
file_path = "./example.txt"
Como você pode ver no resultado, a aplicação foi bem-sucedida e o Terraform agora exibe o output file_path com seu valor.
Executar terraform output para visualizar o nome do arquivo
Nesta etapa, você usará o comando terraform output para visualizar os valores de saída do seu arquivo de estado. Isso é útil para recuperar informações sobre sua infraestrutura sem precisar analisar o arquivo de estado manualmente ou executar o terraform apply novamente.
Para ver todos os outputs definidos em sua configuração, basta executar o comando sem argumentos.
terraform output
Isso exibirá todos os outputs em um formato legível.
file_path = "./example.txt"
Você também pode consultar um valor de output específico fornecendo seu nome como argumento. Isso é útil em scripts ou quando você precisa apenas de uma informação específica.
terraform output file_path
Este comando imprimirá apenas o valor bruto do output especificado.
"./example.txt"
Isso facilita o uso do output em scripts de shell, por exemplo, atribuindo-o a uma variável: FILE=$(terraform output -raw file_path). A flag -raw remove as aspas.
Resumo
Parabéns por concluir o laboratório!
Neste laboratório, você aprendeu os fundamentos do gerenciamento de outputs no Terraform. Você realizou com sucesso:
- A organização da sua configuração criando um arquivo
outputs.tfdedicado. - A definição de um bloco
outputpara declarar um valor de saída. - A referência a um atributo de recurso dentro de um bloco de output para expor seu valor.
- A aplicação da configuração usando
terraform applypara tornar o output disponível. - A consulta do valor de saída a partir da linha de comando usando
terraform output.
Os outputs do Terraform são um recurso poderoso para extrair informações importantes da sua infraestrutura e integrar seus fluxos de trabalho do Terraform com outras ferramentas e scripts.



