0Pricing
Terraform Infrastructure as Code · Lección

Módulos y reutilización de código

Aprenda cómo los módulos de Terraform encapsulan infraestructura reutilizable, aceptan entradas, exponen salidas y mantienen las configuraciones DRY y fáciles de mantener.

Módulos y reutilización de código es una lección gratuita de Terraform Infrastructure as Code en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Terraform Infrastructure as Code, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Terraform Infrastructure as Code incluye 4 lecciones en total.

¿Por qué usar módulos?

Copiar y pegar los mismos recursos en distintos entornos provoca divergencias y errores. Un módulo es un contenedor reutilizable y parametrizado de recursos de Terraform que puede invocar varias veces con entradas diferentes, manteniendo el código DRY.

Toda configuración es un módulo

El directorio donde ejecuta terraform apply es el módulo raíz. Los módulos que invoca son módulos secundarios. Por tanto, ya utiliza módulos; simplemente está agregando más.

Anatomía de un módulo

Un módulo es simplemente una carpeta con archivos .tf, normalmente:

  • main.tf — los recursos.
  • variables.tf — las variables de entrada.
  • outputs.tf — los valores expuestos.

Definición de entradas

Las entradas se declaran como variables dentro del módulo, lo que permite a los consumidores personalizar su comportamiento.

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

Uso de las entradas

Los recursos del módulo hacen referencia a sus variables.

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

Exposición de salidas

Las salidas devuelven valores útiles al consumidor, como ID o ARN.

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

Invocación de un módulo

El módulo raíz invoca un módulo secundario mediante un bloque module y le pasa entradas.

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

Referencia a las salidas de un módulo

Acceda a las salidas de un módulo mediante module.NAME.OUTPUT desde cualquier otro lugar de la configuración.

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

Orígenes de los módulos

source puede ser una ruta local, una URL de Git o el Terraform Registry público.

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

Control de versiones de los módulos

Fije siempre un version para los módulos del registro, de modo que las actualizaciones sean deliberadas. Ejecute terraform init después de agregar o cambiar módulos para descargarlos.

Diseño de buenos módulos

Mantenga los módulos enfocados (un componente lógico), exponga solo las entradas que necesite, documente las salidas y evite codificar valores específicos del entorno. Los módulos pequeños y componibles son mejores que un único módulo enorme.

Comprobación rápida

Compruebe sus conocimientos sobre módulos.

Resumen

Los módulos hacen que Terraform sea reutilizable y DRY.

  • Un módulo es una carpeta de archivos .tf con variables (entradas) y salidas.
  • Invóquelo con un bloque module y un source; acceda a los resultados mediante module.NAME.OUTPUT.
  • Los orígenes pueden ser locales, de Git o del registro; fije version y ejecute init.
  • Diseñe módulos pequeños, enfocados y bien documentados.

Preguntas frecuentes

¿La lección «Módulos y reutilización de código» es gratis?

Sí — el texto completo de «Módulos y reutilización de código» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Terraform Infrastructure as Code, actualiza a CoddyKit PRO. El curso de Terraform Infrastructure as Code incluye 4 lecciones en total.

¿Qué aprenderé en «Módulos y reutilización de código»?

Aprenda cómo los módulos de Terraform encapsulan infraestructura reutilizable, aceptan entradas, exponen salidas y mantienen las configuraciones DRY y fáciles de mantener. Practicas Terraform Infrastructure as Code con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Terraform Infrastructure as Code?

No se requiere experiencia previa. Terraform Infrastructure as Code en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Módulos y reutilización de código»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Terraform Infrastructure as Code?

Sí. Cada lección de Terraform Infrastructure as Code incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Proveedores y recursos
  2. Variables y salidas
  3. Fundamentos de la gestión del estado
  4. Módulos y reutilización de código
← Volver a Terraform Infrastructure as Code