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
moduley unsource; acceda a los resultados mediantemodule.NAME.OUTPUT. - Los orígenes pueden ser locales, de Git o del registro; fije
versiony ejecuteinit. - 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
- Proveedores y recursos
- Variables y salidas
- Fundamentos de la gestión del estado
- Módulos y reutilización de código