0Pricing
DevOps Bootcamp · Aula

Módulos e reutilização de código

Aprenda como os módulos do Terraform empacotam infraestrutura reutilizável, aceitam entradas, expõem saídas e mantêm as configurações DRY e fáceis de manter.

Módulos e reutilização de código é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.

Por que usar módulos?

Copiar e colar os mesmos recursos entre ambientes causa divergências e erros. Um módulo é um contêiner reutilizável e parametrizado de recursos do Terraform, que pode ser chamado várias vezes com entradas diferentes, mantendo seu código DRY.

Toda configuração é um módulo

O diretório em que você executa terraform apply é o módulo raiz. Os módulos chamados por ele são módulos filhos. Portanto, você já usa módulos — está apenas adicionando mais alguns.

Anatomia de um módulo

Um módulo é apenas uma pasta com arquivos .tf, normalmente organizada assim:

  • main.tf — os recursos.
  • variables.tf — as variáveis de entrada.
  • outputs.tf — os valores expostos.

Definindo entradas

As entradas são declaradas como variáveis dentro do módulo, permitindo que quem o chama personalize seu comportamento.

variable "bucket_name" {
  type = string
}
variable "versioning" {
  type    = bool
  default = false
}

Usando as entradas

Os recursos do módulo referenciam suas variáveis.

resource "aws_s3_bucket" "this" {
  bucket = var.bucket_name
}

Expondo saídas

As saídas retornam valores úteis para quem chama o módulo, como IDs ou ARNs.

output "bucket_arn" {
  value = aws_s3_bucket.this.arn
}

Chamando um módulo

O módulo raiz chama um módulo filho com um bloco module, passando as entradas.

module "logs" {
  source     = "./modules/bucket"
  bucket_name = "app-logs"
  versioning  = true
}

Referenciando saídas de módulos

Acesse as saídas de um módulo com module.NAME.OUTPUT em outra parte da sua configuração.

resource "aws_s3_bucket_policy" "p" {
  bucket = module.logs.bucket_arn
}

Fontes de módulos

O source pode ser um caminho local, uma URL do Git ou o Registro público do Terraform.

module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "5.0.0"
}

Versionando módulos

Sempre fixe uma version para módulos do registro, para que as atualizações sejam deliberadas. Execute terraform init depois de adicionar ou alterar módulos para baixá-los.

Projetando bons módulos

Mantenha os módulos focados (um componente lógico), exponha apenas as entradas necessárias, documente as saídas e evite codificar diretamente valores específicos do ambiente. Módulos pequenos e combináveis são melhores do que um único módulo gigante.

Verificação rápida

Teste seus conhecimentos sobre módulos.

Recapitulação

Módulos tornam o Terraform reutilizável e DRY.

  • Um módulo é uma pasta de arquivos .tf com variáveis (entradas) e saídas.
  • Chame-o com um bloco module e um source; acesse os resultados por meio de module.NAME.OUTPUT.
  • As fontes podem ser locais, do Git ou do registro; fixe a version e execute init.
  • Projete módulos pequenos, focados e bem documentados.

Perguntas Frequentes

A aula “Módulos e reutilização de código” é grátis?

Sim — o texto completo de “Módulos e reutilização de código” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.

O que vou aprender em “Módulos e reutilização de código”?

Aprenda como os módulos do Terraform empacotam infraestrutura reutilizável, aceitam entradas, expõem saídas e mantêm as configurações DRY e fáceis de manter. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar DevOps Bootcamp?

Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Módulos e reutilização de código”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de DevOps Bootcamp?

Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Provedores e Recursos
  2. Variáveis e Saídas
  3. Fundamentos do Gerenciamento de Estado
  4. Módulos e reutilização de código
← Voltar para DevOps Bootcamp