“`html
Erros comuns em Terraform que você deve evitar
Terraform é ótimo para automatizar infraestrutura, mas alguns erros repetem na rotina e custam tempo, dinheiro e confiança.
Abaixo eu organizo os problemas mais frequentes (e como corrigir) para você aplicar no seu dia a dia.
1 1) Ignorar o ciclo de vida do state
O arquivo de estado é a “fonte de verdade” do Terraform para saber o que já existe.
Quando você trata o state como algo secundário, o risco de drift e de destruição acidental cresce muito.
- Erro comum: manter state local e rodar CI/CD e usuários diferentes no mesmo projeto.
- Erro comum: “consertar na mão” mexendo no state sem entender o impacto.
- Erro comum: esquecer lock (quando aplicável) e deixar execuções concorrentes competirem.
locking
drift
auditoria
2 2) Variáveis sem tipagem e validação
A ausência de validação transforma configurações simples em armadilhas.
Você acha que está passando um valor “óbvio”, mas o Terraform aceita strings erradas, formatos inconsistentes e valores fora de faixa.
- Erro comum: usar variáveis sem
typee semvalidation, aceitando qualquer coisa. - Erro comum: deixar padrões (defaults) que mascaram erros em ambientes diferentes.
- Erro comum: misturar formatos (ex.: CIDR como string sem validar, nomes com espaços, tags vazias).
type safety
fail fast
3 3) Mapeamentos instáveis e recursos com “troca de identidade”
Se os seus for_each e chaves mudam ao longo do tempo, o Terraform pode recriar recursos.
Isso costuma acontecer sem você perceber: basta uma alteração no formato das chaves, na ordem de uma lista ou em dados “derivados” do ambiente.
- Erro comum: usar
countquando o ideal éfor_eachcom uma chave estável. - Erro comum: gerar chaves a partir de índices de lista (ex.:
[0],[1]). - Erro comum: usar dados que mudam (ex.: nomes criados com timestamp) como parte da identidade do recurso.
- Erro comum: “concatenar” strings sem padronizar (case, separadores, trimming), causando diferenças entre ambientes.
Repare no ponto: a chave do for_each é o nome lógico. Se você quiser mudar o nome físico, faça isso de forma explícita (alterando a chave), sabendo que isso recria.
4 4) Dependências implícitas e execução “ok” que quebra em produção
Quando o Terraform não entende a dependência real, ele pode tentar criar recursos fora de ordem.
E quando “funciona local”, geralmente é coincidência: timing, permissões, ou algum recurso já existente.
- Erro comum: confiar em side effects (ex.: achar que um bucket já existe ou que um vínculo já foi criado).
- Erro comum: não referenciar outputs/ids de recursos diretamente, preferindo strings “copiadas e coladas”.
- Erro comum: ignorar diferenças de permissões/contas: IAM/roles que existem em um ambiente, mas não no outro.
- Erro comum: usar
depends_onsem necessidade (ou usar quando realmente precisa sem entender o porquê).
resource.attr, outputs, IDs).Reserve
depends_on para casos onde a dependência não é capturada automaticamente.
permissões
referências
Quer deixar seu Terraform ainda mais sólido?
Recomendo que você leia também outros posts do yurideveloper.com.br para aprofundar práticas como organização de módulos, padrões de naming e estratégias para evitar drift.
“`
Sou Apaixonado pela programação e estou trilhando o caminho de ter cada diz mais conhecimento e trazer toda minha experiência vinda do Design para a programação resultando em layouts incríveis e idéias inovadoras! Conecte-se Comigo!