← Terraform: planear alterações e operar infraestrutura
04 / 12 · 40 MIN

Módulos e identidade

Reutiliza configuração sem perder controlo de versões e endereços.

Conceito e mecanismo

Um módulo organiza recursos e uma interface de entradas e outputs. Reutilização não torna a origem automaticamente fiável nem elimina revisão de alterações. Define contratos, validações e uma estratégia de versão para consumidores. O lock file fixa dependências de providers, mas não fixa seleções de versões de módulos remotos da mesma forma. Usa uma versão ou referência apropriada à origem e revê upgrades. Recursos de módulos filhos continuam integrados na configuração que os chama. Um endereço identifica a instância no state; mudar a organização do código pode mudar esse endereço mesmo quando se pretende conservar o mesmo objeto remoto. A revisão deve separar alteração de endereço de alteração física da infraestrutura.

Aplicação guiada

Num exercício fictício, uma lista de ambientes gerida por count perde o primeiro elemento e altera a correspondência de índices. Para identidades estáveis, avalia for_each com chaves conhecidas e não sensíveis. Não uses um segredo como chave, porque a identidade da instância aparece em saídas. Um moved block regista a transição entre endereços e ajuda a preservar a associação existente; não migra uma base para outra região nem copia dados. Inspeciona o plano da refatorização e evita aceitar destruições inesperadas como custo inevitável de arrumar código. Mantém histórico de moved blocks quando consumidores ainda podem atualizar de versões antigas. Retirar esse histórico pode quebrar o caminho de atualização de uma equipa que ficou atrás.

NA PRÁTICA

Renomear module.rede para module.network precisa de mapear identidade, não apenas mudar texto.

Armadilhas comuns

Lock file como versão de todos os módulos; chave sensível; moved como migração de dados.

Tópicos relacionados: Configuração e dependências · Planos e validação · State e colaboração

Leva esta ideia contigo

Mantém contratos, versões e endereços previsíveis para cada consumidor.

Criar conta

Referência: Root and reusable child modules · Terraform v1.16 concepts; official documentation consulted 2026-09-30; provider and backend capabilities must be confirmed

Terraform é uma marca comercial da HashiCorp, Inc., uma empresa IBM. A dr.pt é uma plataforma de preparação independente e não está afiliada, associada, patrocinada, autorizada nem aprovada por HashiCorp. Os conteúdos e as perguntas são originais, não são perguntas oficiais de exame, e concluir os nossos testes não atribui nem garante qualquer certificação. Os nomes são usados apenas para identificar o tema. Todas as outras marcas pertencem aos respetivos titulares.