Skip to Content

¿Qué es la salida de Terraform?

Ilustración de varias 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 a los usuarios extraer y mostrar información útil de las configuraciones de 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.

Comprender la salida de Terraform

Supongamos que está administrando una infraestructura compleja y necesita compartir datos críticos entre varios recursos o sistemas externos. La salida Terraform es una función que le permite hacer precisamente eso. Esta función extrae y muestra sin esfuerzo información valiosa de sus configuraciones de 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 administrados por Terraform. La herramienta de línea de comandos de salida de terraforma le permite recuperar y mostrar estos valores de salida, que otros componentes de su infraestructura o sistemas externos pueden consumir.

Contar con la función de salida Terraform proporciona varios beneficios, principalmente:

  • Intercambio de datos: Los resultados de Terraform se 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 pasar a una herramienta de administración de configuración externa.
  • Automatización: Las salidas potencian la administración de configuración automatizada al proporcionar valores dinámicos para recursos dependientes. Por ejemplo, si aprovisiona un servidor de base de datos con Terraform y el puerto de base de datos se asigna dinámicamente, el bloque de salida puede capturar este puerto. Este puerto capturado se puede utilizar dentro de 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 identificar cualquier inconsistencia o configuración de recursos inesperada que pueda estar causando problemas con los procesos dependientes.
  • Coherencia: Los resultados promueven la consistencia en todos los entornos. Al hacer referencia a las salidas en lugar de los valores codificados, puede mantener una lógica de configuración idéntica en los entornos de desarrollo, prueba y producción.
  • 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 particularmente valioso para otros ingenieros o equipos que necesitan comprender el sistema.

Sintaxis y uso de las salidas de Terraform

Las salidas de Terraform se definen dentro de los archivos de configuración mediante el bloque de salida. Este es el desglose de la 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>: Esta es una expresión 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
}
  • Salida de número:

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

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

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

Hacer referencia a los resultados en su código

Una vez definidas, puede hacer referencia a las salidas dentro de su código Terraform usando sus nombres. Este es 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, 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 de Terraform y las fuentes de datos pueden parecer similares a primera vista, pero tienen distintos propósitos en sus flujos de trabajo de infraestructura como código (IaC). Aquí hay un desglose para aclarar las diferencias:

Variables de salida de Terraform

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

  • Compartir datos entre módulos o configuraciones de Terraform
  • Transmitir información a sistemas externos para la administración o el monitoreo de la configuración.
  • Simplificar la lógica de configuración al hacer referencia a valores dinámicos en lugar de datos codificados

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

Fuentes de datos de Terraform

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

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

Un ejemplo es usar 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 necesite:

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

Mejores prácticas para usar la salida Terraform

Al usar los resultados de Terraform, debe considerar las siguientes mejores prácticas:

  • Use 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 su lugar, use nombres como "rds_instance_public_ip" o "webserver_security_group_id". Esto mejora la legibilidad y el mantenimiento de sus configuraciones.
  • Use una convención de nomenclatura consistente: Mantenga una convención de nomenclatura consistente en toda su base de código Terraform. Esto podría implicar el uso de guiones o guiones bajos para la separación y mantener el esquema de nomenclatura alineado en todos los módulos y configuraciones.
  • Resultados relacionados con el grupo: Agrupe los resultados relacionados de manera lógica. Por ejemplo, si tiene varias salidas relacionadas con una instancia de base de datos (dirección IP, puerto, nombre de usuario), agrupelas 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.
  • Use comentarios: Incluya comentarios claros para explicar el propósito y el uso de cada variable de salida. Esto es particularmente útil para los resultados que podrían no ser autoexplicativos de inmediato o cuando otros módulos o equipos los utilizan.
  • Evite los resultados innecesarios: Evite definir resultados para datos que no sean realmente necesarios. Las salidas excesivas pueden desordenar la salida y dificultar la identificación de la información más relevante. Evalúe si los datos pueden utilizarse directamente dentro de su configuración de Terraform o si un enfoque alternativo podría ser más eficiente.
  • Evite los resultados de secretos: Si es posible, evite almacenar datos confidenciales en configuraciones Terraform por completo. Explore métodos alternativos para administrar secretos, como aprovechar HashiCorp Vault o variables de entorno.
  • Use 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 terraforma que suprima el valor al mostrar la salida.

Este es un ejemplo con el atributo sensible agregado:

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

Conclusiones

La salida Terraform le permite cerrar 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 liberar todo el potencial de su infraestructura, considere usar las soluciones de Pure Storage como Portworx® para permitir el almacenamiento persistente para sus implementaciones de Terraform Kubernetes, así como Pure Cloud Block Store™ para proporcionar la solución de almacenamiento ideal para sus aplicaciones basadas en la nube.

10/2025
Virtual Machine Provisioning at Enterprise Scale
Sizing and scaling Red Hat OpenShift Virtualization with Portworx.
Informe técnico
22 pages

Buscar recursos y eventos clave

VIDEO
Vea: El valor de una Enterprise Data Cloud.

Charlie Giancarlo explica por qué la administración de datos, no el almacenamiento, es el futuro. Descubra cómo un enfoque unificado transforma las operaciones de TI de una empresa.

Mirar ahora
RECURSO
El almacenamiento heredado no puede impulsar el futuro.

Las cargas de trabajo modernas exigen velocidad, seguridad y escalabilidad listas para la AI. ¿Su pila está lista?

Realizar la evaluación
DEMOSTRACIONES DE PURE360
Explore, aprenda y experimente Pure Storage.

Acceda a videos y demostraciones según demanda para ver lo que Pure Storage puede hacer.

Mire las demostraciones
LIDERAZGO DE PENSAMIENTO
La carrera de la innovación.

Los últimos conocimientos y perspectivas de líderes de la industria que están a la vanguardia de la innovación en almacenamiento.

Más información
¡Su navegador ya no es compatible!

Los navegadores más antiguos a menudo representan riesgos de seguridad. Para brindar la mejor experiencia posible al utilizar nuestro sitio, actualice a cualquiera de estos navegadores más recientes.