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
modulee umsource; acesse os resultados por meio demodule.NAME.OUTPUT. - As fontes podem ser locais, do Git ou do registro; fixe a
versione executeinit. - 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
- Provedores e Recursos
- Variáveis e Saídas
- Fundamentos do Gerenciamento de Estado
- Módulos e reutilização de código