Pular para o conteúdo principal

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 fmt antes de commits para manter o código limpo
  • Use terraform validate para evitar erros antes do plan
  • Utilize terraform show para entender a infraestrutura provisionada
  • Inclua esses comandos em pipelines de CI/CD

Fluxo de Trabalho Recomendado​

  1. Escreva ou edite seu código
  2. Rode terraform fmt
  3. Rode terraform validate
  4. Rode terraform plan
  5. Rode terraform apply
  6. Use terraform show para inspecionar