0Pricing
DevOps Bootcamp · Lección

Funciones integradas de Terraform

Explore la amplia variedad de funciones integradas de Terraform para manipular cadenas, procesar listas, convertir tipos y mucho más, y mejorar sus configuraciones.

Funciones integradas de Terraform es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 2 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 DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.

Desbloquee configuraciones dinámicas

Las funciones integradas de Terraform son como miniprogramas que le ayudan a procesar y transformar valores directamente dentro de sus archivos de configuración.

Le permiten crear definiciones de infraestructura dinámicas, reutilizables e inteligentes.

  • Transformar datos: Cambiar cadenas, números o listas.
  • Calcular valores: Realizar cálculos o comprobaciones lógicas.
  • Generar contenido dinámico: Crear nombres de recursos o etiquetas sobre la marcha.

Transformaciones de texto

Las funciones de cadenas son esenciales para manipular texto. Dos funciones básicas son upper() y lower(), que cambian el uso de mayúsculas y minúsculas de una cadena.

Resultan útiles para estandarizar convenciones de nombres o cumplir requisitos específicos.

variable "region_code" {
  type    = string
  default = "us-east-1"
}

output "upper_region" {
  value = upper(var.region_code)
}

output "lower_example" {
  value = lower("AWS_REGION")
}

Unir y dividir cadenas

La función join() combina los elementos de una lista en una sola cadena utilizando un delimitador especificado. Por el contrario, split() divide una cadena en una lista de subcadenas basándose en un delimitador.

Son funciones muy útiles para analizar datos o construir nombres complejos.

variable "tags_list" {
  type    = list(string)
  default = ["web", "frontend", "prod"]
}

output "joined_tags" {
  value = join(",", var.tags_list)
}

output "split_string" {
  value = split("-", "server-01-app")
}

Matemáticas en sus configuraciones

Las funciones numéricas le ayudan a realizar operaciones matemáticas básicas. ceil() redondea hacia arriba, floor() redondea hacia abajo y min()/max() encuentran los valores más pequeño y más grande de un conjunto.

Son ideales para calcular cantidades de recursos o tamaños.

variable "instance_ratio" {
  type    = number
  default = 3.7
}

output "rounded_up_instances" {
  value = ceil(var.instance_ratio)
}

output "rounded_down_instances" {
  value = floor(var.instance_ratio)
}

output "smallest_val" {
  value = min(10, 5, 12, 8)
}

Trabajar con listas

Las listas son colecciones ordenadas de elementos. Funciones como length() indican cuántos elementos hay en una lista y element() recupera un elemento mediante su índice numérico (que comienza en 0).

Resultan prácticas para iterar o seleccionar elementos específicos.

variable "zones" {
  type    = list(string)
  default = ["us-east-1a", "us-east-1b", "us-east-1c"]
}

output "num_zones" {
  value = length(var.zones)
}

output "first_zone" {
  value = element(var.zones, 0)
}

Gestionar datos clave-valor

Los mapas almacenan datos como pares clave-valor. lookup() recupera el valor de una clave determinada, con un valor predeterminado opcional si no se encuentra la clave. merge() combina varios mapas en un solo mapa.

Son ideales para gestionar metadatos o etiquetas de recursos.

variable "server_info" {
  type = map(string)
  default = {
    name = "backend-server"
    env  = "dev"
  }
}

variable "additional_info" {
  type = map(string)
  default = {
    owner = "team-a"
  }
}

output "server_name" {
  value = lookup(var.server_info, "name", "unknown")
}

output "merged_map" {
  value = merge(var.server_info, var.additional_info)
}

Cambio de tipos de datos

A veces, un valor debe ser de un tipo de datos específico (por ejemplo, una cadena en lugar de un número) para un argumento de recurso. Las funciones de conversión de tipos, como tostring() y tonumber(), le ayudan a hacerlo.

Esto garantiza la compatibilidad entre las distintas partes de su configuración.

variable "port_number" {
  type    = number
  default = 8080
}

output "port_as_string" {
  value = tostring(var.port_number)
}

output "string_to_number" {
  value = tonumber("123") + 7
}

Funciones en acción

Las funciones integradas se pueden combinar o anidar para realizar transformaciones de datos complejas. En este ejemplo se construye el nombre de un recurso combinando variables, convirtiendo una de ellas a mayúsculas y comprobando que los tipos sean correctos.

variable "env" {
  type    = string
  default = "dev"
}

variable "service" {
  type    = string
  default = "app"
}

variable "instance_id" {
  type    = number
  default = 1
}

output "resource_name" {
  value = join("-", [
    upper(var.env),
    var.service,
    tostring(var.instance_id)
  ])
}

Prácticas recomendadas

Al utilizar funciones, procure mantener la claridad y facilitar el mantenimiento:

  • Mantenga la legibilidad: No anide demasiadas funciones si esto dificulta la comprensión del código.
  • Utilice variables: Almacene los resultados intermedios complejos en variables locales para mejorar la legibilidad.
  • Pruebe con terraform console: Experimente rápidamente con las funciones para comprobar su resultado antes de añadirlas a su configuración.

Desafío de funciones

Compruebe su comprensión de cómo funcionan conjuntamente las funciones integradas de Terraform.

¡Ha dominado las funciones!

¡Ha explorado las potentes funciones integradas de Terraform!

Ahora comprende cómo utilizar funciones de cadenas, numéricas, de colecciones y de conversión de tipos para hacer que sus configuraciones sean dinámicas y adaptables. Estas herramientas son fundamentales para escribir código de infraestructura reutilizable y eficiente.

Preguntas frecuentes

¿La lección «Funciones integradas de Terraform» es gratis?

Sí — el texto completo de «Funciones integradas de Terraform» 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 DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.

¿Qué aprenderé en «Funciones integradas de Terraform»?

Explore la amplia variedad de funciones integradas de Terraform para manipular cadenas, procesar listas, convertir tipos y mucho más, y mejorar sus configuraciones. Practicas DevOps Bootcamp 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 DevOps Bootcamp?

No se requiere experiencia previa. DevOps Bootcamp 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 2 de 4.

¿Cuánto tiempo toma la lección «Funciones integradas de Terraform»?

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 DevOps Bootcamp?

Sí. Cada lección de DevOps Bootcamp 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. Uso de bucles con `for_each` y `count`
  2. Funciones integradas de Terraform
  3. Expresiones condicionales y splats
  4. Bloques dinámicos para configuraciones anidadas
← Volver a DevOps Bootcamp