Skip to Content
Dismiss
Innovazione
Una piattaforma creata per l'AI

Unificata, automatizzata e pronta a trasformare i dati in intelligence.

Scopri come
Dismiss
16-18 giugno, Las Vegas
Pure//Accelerate® 2026

Scopri come trarre il massimo dai tuoi dati. 

Registrati ora

Che cos'è Terraform Output?

Illustrazione di più stack di server astratti in un ambiente digitale su sfondo blu.

Terraform è uno strumento ampiamente accettato per la definizione e il provisioning dell'infrastruttura come codice . Una delle caratteristiche essenziali di questo strumento è l'output Terraform, che consente agli utenti di estrarre e visualizzare informazioni utili dalle configurazioni Terraform.

Questo articolo illustra il significato dell'output Terraform, la sua sintassi e il suo utilizzo, nonché le best practice per migliorare i progetti Infrastructure-as-Code.

Informazioni sull'output Terraform

Supponiamo di gestire un'infrastruttura complessa e di dover condividere dati critici tra varie risorse o sistemi esterni. L'output Terraform è una funzionalità che ti consente di farlo. Questa funzionalità estrae e visualizza facilmente informazioni preziose dalle configurazioni Terraform e consente di condividerle tra diversi moduli, aree di lavoro e sistemi esterni.

Gli output di Terraform rivelano informazioni preziose sulle risorse gestite da Terraform. Lo strumento della riga di comando dell'output del terraform consente quindi di recuperare e visualizzare questi valori di output, che altri componenti dell'infrastruttura o dei sistemi esterni possono utilizzare.

La funzionalità dell'output Terraform offre diversi vantaggi, principalmente:

  • Condivisione dei dati: Gli output Terraform sono eccellenti per la condivisione degli attributi delle risorse generate dinamicamente tra le configurazioni Terraform e altri sistemi. Supponiamo di creare un'istanza EC2 con Terraform. Il blocco di output può acquisire l'indirizzo IP pubblico, che può quindi essere utilizzato da un'altra configurazione Terraform per configurare una regola del gruppo di sicurezza o trasmesso a uno strumento di gestione della configurazione esterno.
  • Automazione: Le uscite consentono la gestione automatizzata della configurazione fornendo valori dinamici per le risorse dipendenti. Ad esempio, se si esegue il provisioning di un server di database con Terraform e la porta del database viene assegnata in modo dinamico, il blocco di output può acquisire questa porta. Questa porta acquisita può quindi essere utilizzata in un'altra configurazione per stabilire una connessione al database da un'applicazione Web.
  • Debug e verifica: Gli output vanno oltre la semplice verifica dello stato delle risorse. Durante la risoluzione dei problemi, è possibile esaminare i valori di output per individuare eventuali incoerenze o configurazioni inattese delle risorse che potrebbero causare problemi con i processi dipendenti.
  • Coerenza: Gli output favoriscono la coerenza tra gli ambienti. Facendo riferimento agli output invece che ai valori codificati, è possibile mantenere una logica di configurazione identica negli ambienti di sviluppo, test e produzione.
  • Documentazione: Gli output possono fungere da documentazione, fornendo informazioni chiare e concise sull'infrastruttura fornita da Terraform. Ciò può essere particolarmente utile per altri ingegneri o team che devono comprendere il sistema.

Sintassi e utilizzo delle uscite Terraform

Le uscite Terraform sono definite all'interno dei file di configurazione utilizzando il blocco di uscita. Ecco il dettaglio della sintassi:

output "<name>" {
  value = <expression>
}
  • <name>: si tratta di un nome definito dall'utente per la variabile di output. Scegli un nome descrittivo che rifletta i dati in suo possesso.
  • <expression>: si tratta di un'espressione Terraform che valuta il valore che si desidera esporre. Può fare riferimento agli attributi delle risorse, utilizzare le funzioni o eseguire calcoli.

Esempi di output

I seguenti esempi di istanza AWS mostrano come visualizzare gli output Terraform come diversi tipi di dati:

  • Uscita stringa:

output "instance_id" {
  value = aws_instance.example.id
}
  • Numero di output:

output "instance_count" {
  value = length(aws_instance.example)
}
  • Elenco dei risultati:

output "instance_ips" {
  value = aws_instance.example[*].public_ip
}
  • Output della mappa:

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

Riferimento alle uscite nel codice

Una volta definiti, puoi fare riferimento agli output nel codice Terraform utilizzando i loro nomi. Ecco un esempio:

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

In questo esempio, example_module fa riferimento all'output instance_id di un altro modulo denominato other_module_name. Questo dimostra come gli output facilitano la comunicazione e lo scambio di dati tra i moduli.

Variabili di output e origini dati

A prima vista, gli output e le origini dati di Terraform potrebbero sembrare simili, ma hanno scopi distinti nei workflow IaC (Infrastructure-as-Code). Ecco un riepilogo dettagliato per chiarire le differenze:

Variabili di uscita Terraform

Gli output di Terraform espongono informazioni sulle risorse gestite da Terraform. I valori di output derivano dagli attributi delle risorse esistenti nella configurazione Terraform. Le uscite sono in genere utilizzate nei casi che includono:

  • Condivisione dei dati tra moduli o configurazioni Terraform
  • Passaggio di informazioni a sistemi esterni per la gestione o il monitoraggio della configurazione
  • Semplificare la logica di configurazione facendo riferimento ai valori dinamici invece che ai dati hardcoded

Un esempio di tale scenario è l'estrazione dell'indirizzo IP pubblico di un'istanza EC2 e il suo utilizzo per configurare una regola del gruppo di sicurezza in un altro modulo Terraform.

Origini dati Terraform

Le origini dati recuperano i dati da origini esterne. Interagisce con API o plug-in per recuperare informazioni da provider cloud, strumenti di gestione della configurazione o altri sistemi esterni. Le origini dati sono utilizzate nei casi che includono:

  • Accesso alle informazioni sulle risorse esistenti che non sono gestite da Terraform stesso
  • Utilizzo di dati esterni per configurare dinamicamente le risorse Terraform
  • Integrazione dell'IaC con altri strumenti e piattaforme

Un esempio è l'utilizzo di un'origine dati per recuperare un elenco di regioni disponibili in un provider cloud prima di creare risorse in tali regioni.

In poche parole, la scelta tra l'utilizzo di una variabile di output o di un'origine dati dipende dall'origine dei dati necessari:

  • Se i dati provengono da risorse gestite all'interno della configurazione Terraform, utilizzare una variabile di output.
  • Se i dati risiedono in un sistema esterno o devono essere recuperati in modo dinamico, utilizzare un'origine dati.

Best practice per utilizzare Terraform Output

Quando si utilizzano gli output Terraform, è necessario considerare le seguenti best practice:

  • Usa nomi descrittivi: Scegli nomi chiari e concisi che riflettano i dati esposti dalla variabile di output. Evita nomi generici come "output1" o "dati". Usa invece nomi come "rds_instance_public_ip" o "webserver_security_group_id." Ciò migliora la leggibilità e la manutenibilità delle configurazioni.
  • Usa una convenzione di denominazione coerente: Mantieni una convenzione di denominazione coerente in tutto il tuo codebase Terraform. Ciò potrebbe comportare l'uso di trattini bassi o trattini per la separazione e il mantenimento dell'allineamento dello schema di denominazione tra tutti i moduli e le configurazioni.
  • Output correlati al gruppo: Raggruppa gli output correlati in modo logico. Ad esempio, se sono presenti più output correlati a un'istanza di database (indirizzo IP, porta, nome utente), raggrupparli sotto un'unica intestazione nel file di configurazione. Questo migliora l'organizzazione e facilita la ricerca di informazioni specifiche.
  • Usa i commenti: Includere commenti chiari per spiegare lo scopo e l'utilizzo di ciascuna variabile di output. Ciò è particolarmente utile per gli output che potrebbero non essere immediatamente autoesplicativi o quando utilizzati da altri moduli o team.
  • Evitare output non necessari: Evita di definire gli output per i dati che non sono realmente necessari. Un numero eccessivo di output può ingombrare l'output e rendere più difficile l'identificazione delle informazioni più rilevanti. Valuta se i dati possono essere utilizzati direttamente nella configurazione Terraform o se un approccio alternativo potrebbe essere più efficiente.
  • Evita gli output per i segreti: Se possibile, evita di archiviare completamente i dati sensibili nelle configurazioni Terraform. Scopri metodi alternativi per la gestione dei segreti, come lo sfruttamento di HashiCorp Vault o delle variabili di ambiente.
  • Usa l'attributo sensibile Terraform: Se l'utilizzo delle uscite per i segreti è inevitabile, contrassegnarle come sensibili utilizzando l'attributo sensibile all'interno del blocco di uscita. Questo indica al comando di uscita terraform di sopprimere il valore quando viene visualizzata l'uscita.

Ecco un esempio con l'attributo sensibile aggiunto:

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

Conclusione

L'output Terraform consente di colmare il divario tra configurazioni statiche e infrastruttura dinamica. Sfruttando gli output, puoi semplificare la condivisione dei dati, automatizzare le attività e semplificare la verifica.

Per sfruttare appieno il potenziale della tua infrastruttura, considera l'utilizzo di soluzioni Pure Storage come Portworx® per abilitare lo storage persistente per i deployment Kubernetes Kubernetes Terraform e Pure Cloud Block Store™ per fornire la soluzione di storage ideale per le tue applicazioni basate su cloud.

Potrebbe interessarti anche...

04/2026
Accelerate Banking Transformation with Portworx
Banks need to manage data at scale without compromising on performance or security. Build a platform to automate, protect, and unify container data management at scale.
Solution brief
4 pages

Esplora risorse ed eventi principali

TRADESHOW
Pure//Accelerate® 2026
June 16-18, 2026 | Resorts World Las Vegas

Preparati all'evento più importante a cui parteciperai quest'anno.

Registrati ora
DEMO DI PURE360
Esplora, scopri e prova Pure Storage.

Accedi a video e demo on demand per scoprire i vantaggi che Pure Storage ti offre.

Guarda le demo
VIDEO
Guarda: Il valore di un Enterprise Data Cloud (EDC).

Charlie Giancarlo spiega perché il futuro è nella gestione dei dati, non dello storage. Scopri in che modo un approccio unificato trasforma le operazioni IT aziendali.

Guarda
RISORSA
Lo storage legacy non può alimentare il futuro.

I workload moderni richiedono velocità, sicurezza e scalabilità AI-ready. Il tuo stack è pronto?

Effettua la valutazione
Il browser che stai usando non è più supportato.

I browser non aggiornati spesso comportano rischi per la sicurezza. Per offrirti la migliore esperienza possibile sul nostro sito, ti invitiamo ad aggiornare il browser alla versione più recente.

Personalize for Me
Steps Complete!
1
2
3
Personalize your Everpure experience
Select a challenge, or skip and build your own use case.
Strategie di virtualizzazione pronte per affrontare il futuro

Soluzioni di storage per tutte le tue esigenze

Consenti progetti di AI di qualunque dimensione

Storage a performance elevate per pipeline dei dati, formazione e inferenza

Proteggiti dalla perdita dei dati

Soluzioni di resilienza informatica che proteggono i tuoi dati

Riduci i costi delle operazioni su cloud

Storage efficiente dal punto di vista dei costi per Azure, AWS e private cloud

Accelera le performance di applicazioni e database

Storage a bassa latenza per le performance delle applicazioni

Riduci il consumo di energia e di ingombro del data center

Storage efficiente delle risorse per ottimizzare l'utilizzo dei data center

Confirm your outcome priorities
Your scenario prioritizes the selected outcomes. You can modify or choose next to confirm.
Primary
Reduce My Storage Costs
Lower hardware and operational spend.
Primary
Strengthen Cyber Resilience
Detect, protect against, and recover from ransomware.
Primary
Simplify Governance and Compliance
Easy-to-use policy rules, settings, and templates.
Primary
Deliver Workflow Automation
Eliminate error-prone manual tasks.
Primary
Use Less Power and Space
Smaller footprint, lower power consumption.
Primary
Boost Performance and Scale
Predictability and low latency at any size.
What’s your role and industry?
We've inferred your role based on your scenario. Modify or confirm and select your industry.
Select your industry
Financial services
Government
Healthcare
Education
Telecommunications
Automotive
Hyperscaler
Electronic design automation
Retail
Service provider
Transportation
Which team are you on?
Technical leadership team
Defines the strategy and the decision making process
Infrastructure and Ops team
Manages IT infrastructure operations and the technical evaluations
Business leadership team
Responsible for achieving business outcomes
Security team
Owns the policies for security, incident management, and recovery
Application team
Owns the business applications and application SLAs
Describe your ideal environment
Tell us about your infrastructure and workload needs. We chose a few based on your scenario.
Select your preferred deployment
Hosted
Dedicated off-prem
On-prem
Your data center + edge
Public cloud
Public cloud only
Hybrid
Mix of on-prem and cloud
Select the workloads you need
Databases
Oracle, SQL Server, SAP HANA, open-source

Key benefits:

  • Instant, space-efficient snapshots

  • Near-zero-RPO protection and rapid restore

  • Consistent, low-latency performance

 

AI/ML and analytics
Training, inference, data lakes, HPC

Key benefits:

  • Predictable throughput for faster training and ingest

  • One data layer for pipelines from ingest to serve

  • Optimized GPU utilization and scale
Data protection and recovery
Backups, disaster recovery, and ransomware-safe restore

Key benefits:

  • Immutable snapshots and isolated recovery points

  • Clean, rapid restore with SafeMode™

  • Detection and policy-driven response

 

Containers and Kubernetes
Kubernetes, containers, microservices

Key benefits:

  • Reliable, persistent volumes for stateful apps

  • Fast, space-efficient clones for CI/CD

  • Multi-cloud portability and consistent ops
Cloud
AWS, Azure

Key benefits:

  • Consistent data services across clouds

  • Simple mobility for apps and datasets

  • Flexible, pay-as-you-use economics

 

Virtualization
VMs, vSphere, VCF, vSAN replacement

Key benefits:

  • Higher VM density with predictable latency

  • Non-disruptive, always-on upgrades

  • Fast ransomware recovery with SafeMode™

 

Data storage
Block, file, and object

Key benefits:

  • Consolidate workloads on one platform

  • Unified services, policy, and governance

  • Eliminate silos and redundant copies

 

What other vendors are you considering or using?
Thinking...
Your personalized, guided path
Get started with resources based on your selections.