Lab: Mantendo a Qualidade do Código com fmt, validate e show no Terraform
Introdução
Neste laboratório, vamos explorar comandos auxiliares do Terraform que ajudam a manter a qualidade do código: terraform fmt, terraform validate e terraform show. Esses comandos são essenciais para manter o código limpo, funcional e fácil de revisar.
Pré-requisitos
- Terraform instalado (versão 1.12.2 ou superior)
- Azure CLI autenticada (
az login)
export ARM_SUBSCRIPTION_ID="subscription_id"
Estrutura de Arquivos
lab-fmt-validate-show/
├── main.tf
├── providers.tf
providers.tf
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "4.35.0"
}
}
required_version = ">= 1.12.2"
}
provider "azurerm" {
features {}
}
Código propositalmente mal formatado em main.tf
resource "azurerm_resource_group" "rg" {
name="meu-grupo"
location="East US"
}
Passo 1: Formatando o Código com terraform fmt
terraform fmt
Esse comando reescreve todos os arquivos .tf com identação padronizada. Não altera a lógica do código.
Código ap ós fmt:
resource "azurerm_resource_group" "rg" {
name = "meu-grupo"
location = "East US"
}
Passo 2: Validando o Código com terraform validate
Código com erro em main.tf
resource "azurerm_resource_group" "rg" {
nome = "grupo-invalido"
location = "East US"
}
Rodando a validação
terraform validate
Saída esperada
│ Error: Unsupported argument
│ on main.tf line 2, in resource "azurerm_resource_group" "rg":
│ 2: nome = "grupo-invalido"
│
│ An argument named "nome" is not expected here.
Corrigindo o erro
resource "azurerm_resource_group" "rg" {
name = "grupo-valido"
location = "East US"
}
Validando novamente
terraform validate
Saída esperada
Success! The configuration is valid.
Passo 3: Inspecionando com terraform show
Após rodar:
terraform init
terraform apply
Use:
terraform show
Saída esperada (exemplo)
# azurerm_resource_group.rg:
resource "azurerm_resource_group" "rg" {
location = "East US"
name = "grupo-valido"
id = "/subscriptions/.../resourceGroups/grupo-valido"
}
Analisando um plano salvo
terraform plan -out=tfplan
terraform show tfplan
Boas Práticas
- Execute
terraform fmtantes de commits para manter o código limpo - Use
terraform validatepara evitar erros antes doplan - Utilize
terraform showpara entender a infraestrutura provisionada - Inclua esses comandos em pipelines de CI/CD
Fluxo de Trabalho Recomendado
- Escreva ou edite seu código
- Rode
terraform fmt - Rode
terraform validate - Rode
terraform plan - Rode
terraform apply - Use
terraform showpara inspecionar