0Pricing
Terraform Infrastructure as Code · Aula

Criação de Módulos Reutilizáveis

Aprenda a criar seus próprios módulos do Terraform, definindo entradas, saídas e recursos para desenvolver configurações modulares e flexíveis.

Criação de Módulos Reutilizáveis é uma aula grátis de Terraform Infrastructure as Code no CoddyKit. Esta é a aula 2 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 Terraform Infrastructure as Code, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Terraform Infrastructure as Code inclui 4 aulas no total.

Crie seus Próprios Módulos do Terraform

Na lição anterior, aprendemos a usar módulos existentes do Terraform. Agora, vamos nos aprofundar na criação dos seus próprios módulos reutilizáveis!

Criar módulos ajuda a encapsular padrões comuns de infraestrutura, tornando suas configurações mais limpas, consistentes e fáceis de manter.

Organizando os Arquivos do seu Módulo

Um módulo do Terraform é essencialmente uma coleção de arquivos .tf armazenados em um diretório dedicado.

Em sua forma mais simples, o diretório de um módulo conterá:

  • variables.tf: Define as variáveis de entrada do módulo.
  • main.tf: Contém as declarações reais de recursos.
  • outputs.tf: Define os valores de saída do módulo.

Você também pode incluir versions.tf para os requisitos do provedor e README.md para a documentação.

Entradas do Módulo: Variáveis

Para tornar seu módulo flexível, você definirá variáveis de entrada. Elas permitem que os usuários do seu módulo personalizem seu comportamento sem alterar o código principal do módulo.

As variáveis são definidas usando um bloco variable, especificando uma description, um type e, opcionalmente, um valor default.

Exemplo: Definindo uma Variável de Módulo

Veja como você poderia definir uma variável para o tipo de instância no arquivo variables.tf do seu módulo:

# variables.tf
variable "instance_type" {
  description = "The EC2 instance type to use."
  type        = string
  default     = "t2.micro"
}

Recursos do Módulo: A Lógica Principal

O coração do seu módulo está nas declarações de recursos. Esses são os recursos reais da nuvem que o módulo provisionará.

Você colocará esses blocos de recursos, como uma instância do AWS EC2 ou um bucket do S3, no arquivo main.tf do seu módulo.

É importante observar que os recursos dentro do módulo geralmente usarão as variáveis de entrada que você definiu.

Declaração de Recurso Usando Entradas

Vamos declarar uma instância do EC2 em main.tf, usando nossa variável instance_type:

# main.tf
resource "aws_instance" "web_server" {
  ami           = "ami-0abcdef1234567890" # Example AMI ID
  instance_type = var.instance_type
  tags = {
    Name = "MyWebServer"
  }
}

Saídas do Módulo: Compartilhando Informações

Assim como os módulos recebem entradas, eles também podem fornecer valores de saída. Eles são úteis para exportar informações sobre os recursos criados pelo módulo.

Por exemplo, você pode querer exibir o endereço IP público de uma instância do EC2 ou o ARN de um bucket do S3.

As saídas são definidas em outputs.tf usando um bloco output.

Definindo um valor de saída do módulo

Veja como definir uma saída para o IP público da nossa instância do EC2 em outputs.tf:

# outputs.tf
output "instance_public_ip" {
  description = "The public IP address of the EC2 instance."
  value       = aws_instance.web_server.public_ip
}

Chamando seu novo módulo

Depois que o módulo for definido, poderá usá-lo em uma configuração raiz (ou em outro módulo), assim como qualquer outro módulo.

Você especificará a source (o caminho para o diretório do módulo) e passará valores para as variáveis de entrada dele.

# root_config/main.tf
module "my_web_server_module" {
  source        = "../my-ec2-module" # Path to your module
  instance_type = "t3.small"         # Override default
}

output "web_server_ip" {
  value = module.my_web_server_module.instance_public_ip
}

Verificação dos componentes do módulo

Você aprendeu sobre os principais arquivos de um módulo do Terraform. Qual arquivo é usado principalmente para definir valores que podem ser passados para dentro do módulo?

Recapitulação: criando módulos reutilizáveis

Ótimo trabalho! Agora você sabe como criar seus próprios módulos do Terraform.

  • Os módulos são diretórios que contêm arquivos .tf.
  • Use variables.tf para as entradas.
  • Coloque as definições de recursos em main.tf.
  • Defina as saídas em outputs.tf para expor dados.

Essa habilidade é essencial para criar uma infraestrutura como código escalável, fácil de manter e consistente.

Perguntas Frequentes

A aula “Criação de Módulos Reutilizáveis” é grátis?

Sim — o texto completo de “Criação de Módulos Reutilizáveis” é 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 Terraform Infrastructure as Code, atualize para CoddyKit PRO. O curso de Terraform Infrastructure as Code inclui 4 aulas no total.

O que vou aprender em “Criação de Módulos Reutilizáveis”?

Aprenda a criar seus próprios módulos do Terraform, definindo entradas, saídas e recursos para desenvolver configurações modulares e flexíveis. Você pratica Terraform Infrastructure as Code 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 Terraform Infrastructure as Code?

Nenhuma experiência prévia é necessária. Terraform Infrastructure as Code 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 2 de 4.

Quanto tempo leva a aula “Criação de Módulos Reutilizáveis”?

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 Terraform Infrastructure as Code?

Sim. Cada aula de Terraform Infrastructure as Code 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. Introdução aos Módulos do Terraform
  2. Criação de Módulos Reutilizáveis
  3. Usando espaços de trabalho para ambientes
  4. Publicando módulos em um registro
← Voltar para Terraform Infrastructure as Code