Skip to Content

¿Qué es Terraform Output?

Ilustración de múltiples pilas de servidores abstractos en un entorno digital sobre un fondo azul.

Terraform es una herramienta ampliamente aceptada para definir y aprovisionar la infraestructura como código . Una de las características esenciales de esta herramienta es la salida Terraform, que permite que los usuarios extraigan y muestren información útil de las configuraciones Terraform.

Este artículo profundiza en la importancia de la producción de Terraform, su sintaxis y uso y las mejores prácticas para mejorar sus proyectos de infraestructura como código.

Entender el resultado de Terraform

Supongamos que está gestionando una infraestructura compleja y necesita compartir datos críticos entre varios recursos o sistemas externos. La salida Terraform es una característica que le permite hacer exactamente eso. Esta función extrae y muestra fácilmente información valiosa de sus configuraciones Terraform y le permite compartirla entre diferentes módulos, espacios de trabajo y sistemas externos.

Los resultados de Terraform exponen información valiosa sobre los recursos gestionados por Terraform. La herramienta de línea de comandos de salida terraform le permite recuperar y mostrar estos valores de salida, que otros componentes de su infraestructura o sistemas externos pueden consumir.

Tener la característica de salida Terraform proporciona varias ventajas, principalmente:

  • Intercambio de datos: Los resultados de Terraform destacan por compartir atributos de recursos generados dinámicamente entre las configuraciones de Terraform y otros sistemas. Supongamos que crea una instancia EC2 con Terraform. El bloque de salida puede capturar la dirección IP pública, que luego puede ser utilizada por otra configuración de Terraform para configurar una regla de grupo de seguridad o pasarse a una herramienta de administración de configuración externa.
  • Automatización: Las salidas permiten la gestión automatizada de la configuración al proporcionar valores dinámicos para los recursos dependientes. Por ejemplo, si aprovisiona un servidor de base de datos con Terraform y el puerto de base de datos está asignado dinámicamente, el bloque de salida puede capturar este puerto. Este puerto capturado puede usarse en otra configuración para establecer una conexión a la base de datos desde una aplicación web.
  • Depuración y verificación: Los resultados van más allá de simplemente verificar el estado de los recursos. Durante la resolución de problemas, puede examinar los valores de salida para detectar cualquier incoherencia o configuración de recursos inesperada que pueda estar causando problemas con los procesos dependientes.
  • Coherencia: Los resultados promueven la coherencia en todos los entornos. Al hacer referencia a las salidas en lugar de a los valores codificados, puede mantener una lógica de configuración idéntica en todos los entornos de desarrollo, prueba y producción.
  • La documentación: Los resultados pueden actuar como una forma de documentación, ofreciendo información clara y concisa sobre la infraestructura aprovisionada por Terraform. Esto puede ser especialmente valioso para otros ingenieros o equipos que necesitan entender el sistema.

Sintaxis y uso de las salidas Terraform

Las salidas Terraform se definen dentro de los archivos de configuración usando el bloque de salida. Aquí tiene el desglose de sintaxis:

output "<name>" {
  value = <expression>
}
  • <name>: este es un nombre definido por el usuario para la variable de salida. Elija un nombre descriptivo que refleje los datos que contiene.
  • <expression>: se trata de una expresión de Terraform que evalúa el valor que desea exponer. Puede hacer referencia a atributos de recursos, usar funciones o realizar cálculos.

Ejemplos de resultados

Los siguientes ejemplos de instancias de AWS muestran cómo puede mostrar las salidas de Terraform como diferentes tipos de datos:

  • Salida de cadena:

output "instance_id" {
  value = aws_instance.example.id
}
  • Número de salida:

output "instance_count" {
  value = length(aws_instance.example)
}
  • Resultado de la lista:

output "instance_ips" {
  value = aws_instance.example[*].public_ip
}
  • Salida de mapa:

output "instance_tags" {
  value = {
    for instance in aws_instance.example :
    instance.id => instance.tags
  }
}

Referencia a los resultados de su código

Una vez definido, puede hacer referencia a las salidas dentro de su código Terraform usando sus nombres. Aquí tiene un ejemplo:

module "example_module" {
  source  = "./modules/example"
  # Reference the output from another module
  instance_id = var.other_module_name.instance_id
}

En este ejemplo, el example_module hace referencia a la salida instance_id de otro módulo llamado other_module_name. Esto demuestra cómo las salidas facilitan la comunicación y el intercambio de datos entre módulos.

Variables de salida frente a fuentes de datos

Las salidas Terraform y las fuentes de datos pueden parecer similares a primera vista, pero sirven para distintos fines en sus flujos de trabajo de infraestructura como código (IaC). Aquí tiene un desglose para aclarar las diferencias:

Variables de salida Terraform

Los resultados de Terraform exponen información sobre los recursos gestionados por Terraform. Los valores de salida se derivan de atributos de recursos existentes dentro de su configuración Terraform. Los resultados suelen usarse en casos que implican:

  • Compartir datos entre módulos o configuraciones de Terraform
  • Traspaso de información a sistemas externos para la gestión o la supervisión de la configuración
  • Simplificar la lógica de configuración haciendo referencia a los valores dinámicos en lugar de a los datos codificados

Un ejemplo de tal escenario es extraer la dirección IP pública de una instancia EC2 y usarla para configurar una regla de grupo de seguridad en otro módulo Terraform.

Fuentes de datos Terraform

Las fuentes de datos recuperan datos de fuentes externas. Interactúa con API o complementos para obtener información de proveedores de la nube, herramientas de gestión de la configuración u otros sistemas externos. Las fuentes de datos se utilizan en casos que implican:

  • Acceso a información sobre recursos existentes que no son gestionados por Terraform
  • Uso de datos externos para configurar dinámicamente los recursos de Terraform
  • Integrar su IaC con otras herramientas y plataformas

Un ejemplo es el uso de una fuente de datos para recuperar una lista de regiones disponibles en un proveedor de nube antes de crear recursos en esas regiones.

En pocas palabras, la elección entre usar una variable de salida o una fuente de datos depende del origen de los datos que necesita:

  • Si los datos se originan a partir de recursos administrados dentro de su configuración Terraform, use una variable de salida.
  • Si los datos residen en un sistema externo o es necesario recuperarlos dinámicamente, use una fuente de datos.

Mejores prácticas para usar la salida Terraform

Cuando utilice los resultados de Terraform, debe tener en cuenta las siguientes buenas prácticas:

  • Utilice nombres descriptivos: Elija nombres claros y concisos que reflejen los datos expuestos por la variable de salida. Evite nombres genéricos como "salida1" o "datos". En lugar de ello, use nombres como "rds_instance_public_ip" o "webserver_security_group_id". Esto mejora la legibilidad y el mantenimiento de sus configuraciones.
  • Utilice una convención de nomenclatura coherente: Mantenga una convención de nomenclatura homogénea en toda su base de código Terraform. Esto puede implicar el uso de guiones bajos o guiones para la separación y mantener el esquema de nomenclatura alineado en todos los módulos y configuraciones.
  • Resultados relacionados con el grupo: Agrupe lógicamente los resultados relacionados. Por ejemplo, si tiene varias salidas relacionadas con una instancia de base de datos (dirección IP, puerto, nombre de usuario), clasifíquelas en un solo encabezado dentro de su archivo de configuración. Esto mejora la organización y facilita la búsqueda de información específica.
  • Utilice comentarios: Incluya comentarios claros para explicar el propósito y el uso de cada variable de salida. Esto es especialmente útil para los resultados que pueden no ser autoexplicativos inmediatamente o cuando los utilizan otros módulos o equipos.
  • Evite los resultados innecesarios: Evite definir resultados para datos que no sean realmente necesarios. Los resultados excesivos pueden abarrotar los resultados y dificultar la identificación de la información más relevante. Evalúe si los datos pueden usarse directamente dentro de su configuración Terraform o si un enfoque alternativo puede ser más eficiente.
  • Evite los resultados de los secretos: Si es posible, evite almacenar datos confidenciales en configuraciones Terraform por completo. Explore métodos alternativos para gestionar los secretos, como el uso de HashiCorp Vault o las variables de entorno.
  • Utilice el atributo sensible Terraform: Si es inevitable usar salidas para secretos, márquelas como sensibles usando el atributo sensible dentro del bloque de salida. Esto indica al comando de salida de terraforme que suprima el valor cuando muestre la salida.

Aquí tiene un ejemplo con el atributo sensible añadido:

output "db_password" {
  value     = aws_db_instance.example.password
  sensitive = true
}

Conclusión

La salida Terraform le permite salvar la brecha entre las configuraciones estáticas y la infraestructura dinámica. Al aprovechar los resultados, puede optimizar el intercambio de datos, automatizar las tareas y simplificar la verificación.

Para aprovechar todo el potencial de su infraestructura, considere el uso de las soluciones de Pure Storage, como Portworx®, para permitir el almacenamiento persistente de sus implementaciones de Terraform Kubernetes, así como de Pure Cloud Block Store™, para proporcionar la solución de almacenamiento ideal para sus aplicaciones basadas en la nube.

05/2025
Why Enterprises are Switching to the Pure Storage® Platform
See how Pure Storage enables organizations to unify all data storage on a single, as-a-service platform that is easy to deploy, manage, and scale.
E-Book
20 pages

Explore los recursos y eventos clave

PURE//ACCELERATE® 2025
Regístrese para experimentar Pure//Accelerate.

Inspírese, aprenda de los innovadores y mejore sus conocimientos para tener éxito con los datos.

Vea lo que está ocurriendo
EVENTOS PURE//ACCELERATE
Vamos a estar en una ciudad cerca de usted. Descubra dónde.

Experimente lo que la plataforma de almacenamiento de datos más avanzada del mundo y una nube de datos empresariales pueden hacer, por usted.

Regístrese ahora
VÍDEO
Ver: El valor de Enterprise Data Cloud.

Charlie Giancarlo explica por qué la gestión de los datos —y no del almacenamiento— es el futuro. Descubra cómo un enfoque unificado transforma las operaciones de TI de la empresa.

Ver ahora
RECURSO
El almacenamiento tradicional no puede impulsar el futuro.

Las cargas de trabajo modernas exigen velocidad, seguridad y escala preparadas para la IA. ¿Su stack está listo?

Realice la evaluación
Your Browser Is No Longer Supported!

Older browsers often represent security risks. In order to deliver the best possible experience when using our site, please update to any of these latest browsers.