Skip to Content

Wat is Terraform Output?

Illustratie van meerdere abstracte serverstacks in een digitale omgeving op een blauwe achtergrond.

Terraform is een algemeen aanvaard instrument voor het definiëren en provisioneren van infrastructuur als code . Een van de essentiële functies van deze tool is Terraform output, waarmee gebruikers nuttige informatie uit Terraform-configuraties kunnen extraheren en weergeven.

Dit artikel gaat in op het belang van Terraform-output, de syntaxis en het gebruik ervan, en best practices om uw infrastructure-as-code-projecten te verbeteren.

Inzicht in Terraform Output

Stel dat u een complexe infrastructuur beheert en kritieke data moet delen tussen verschillende resources of externe systemen. Terraform output is een functie waarmee u precies dat kunt doen. Deze functie extraheert en toont moeiteloos waardevolle informatie uit uw Terraform-configuraties en stelt u in staat deze te delen tussen verschillende modules, werkruimten en externe systemen.

Terraform outputs onthullen waardevolle informatie over de resources die door Terraform worden beheerd. Met de opdrachtregeltool terraforme output kunt u deze outputwaarden ophalen en weergeven, welke andere componenten van uw infrastructuur of externe systemen vervolgens kunnen verbruiken.

Het hebben van de functie van Terraform output biedt verschillende voordelen, voornamelijk:

  • Het delen van data: Terraform outputs blinken uit in het delen van kenmerken van dynamisch gegenereerde resources tussen Terraform-configuraties en andere systemen. Stel dat u een EC2-instantie creëert met Terraform. Het uitvoerblok kan het openbare IP-adres vastleggen, dat vervolgens door een andere Terraform-configuratie kan worden gebruikt om een beveiligingsgroepregel in te stellen of door te geven aan een externe configuratiebeheertool.
  • Automatisering: Outputs maken geautomatiseerd configuratiebeheer mogelijk door dynamische waarden te bieden voor afhankelijke resources. Als u bijvoorbeeld een databaseserver levert met Terraform en de databasepoort dynamisch is toegewezen, kan het uitvoerblok deze poort vastleggen. Deze vastgelegde poort kan vervolgens binnen een andere configuratie worden gebruikt om een verbinding met de database vanaf een webapplicatie tot stand te brengen.
  • Debugging en verificatie: Outputs gaan verder dan alleen het verifiëren van de staat van middelen. Tijdens het oplossen van problemen kunt u de uitvoerwaarden onderzoeken om eventuele inconsistenties of onverwachte resourceconfiguraties op te sporen die problemen met afhankelijke processen kunnen veroorzaken.
  • Consistentie: Outputs bevorderen consistentie tussen omgevingen. Door te verwijzen naar outputs in plaats van hardcoded waarden, kunt u identieke configuratielogica handhaven in ontwikkelings-, test- en productieomgevingen.
  • Documentatie: Outputs kunnen fungeren als een vorm van documentatie en bieden duidelijke en beknopte informatie over de infrastructuur die door Terraform wordt geleverd. Dit kan bijzonder waardevol zijn voor andere engineers of teams die het systeem moeten begrijpen.

Syntaxis en gebruik van Terraform Outputs

Terraform outputs worden gedefinieerd binnen configuratiebestanden met behulp van het output block. Hier is de syntaxis-uitsplitsing:

output "<name>" {
  value = <expression>
}
  • <name>: Dit is een door de gebruiker gedefinieerde naam voor de uitvoervariabele. Kies een beschrijvende naam die de data weergeeft die het bezit.
  • <expression>: Dit is een Terraform-uitdrukking die de waarde evalueert die u wilt onthullen. Het kan verwijzen naar attributen van resources, functies gebruiken of berekeningen uitvoeren.

Voorbeelden van uitgangen

De volgende AWSAWSvoorbeelden laten zien hoe u Terraform-outputs als verschillende datatypes kunt weergeven:

  • String output:

output "instance_id" {
  value = aws_instance.example.id
}
  • Uitvoer aantal:

output "instance_count" {
  value = length(aws_instance.example)
}
  • Lijstuitvoer:

output "instance_ips" {
  value = aws_instance.example[*].public_ip
}
  • Uitvoer kaart:

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

Verwijzen naar uitgangen in uw code

Eenmaal gedefinieerd, kunt u verwijzen naar outputs binnen uw Terraform-code met behulp van hun namen. Hier is een voorbeeld:

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

In dit voorbeeld verwijst de example_module naar de instance_id-uitgang van een andere module met de naam other_module_name. Dit laat zien hoe outputs de communicatie en de uitwisseling van data tussen modules vergemakkelijken.

Uitvoervariabelen vs. databronnen

Terraform outputs en databronnen lijken op het eerste gezicht misschien vergelijkbaar, maar ze dienen verschillende doeleinden in uw Infrastructure-as-Code (IaC)-workflows. Hier is een overzicht om de verschillen te verduidelijken:

Terraforme outputvariabelen

Terraform outputs onthullen informatie over resources die door Terraform worden beheerd. De uitvoerwaarden zijn afgeleid van kenmerken van bestaande bronnen binnen uw Terraform-configuratie. Outputs worden doorgaans gebruikt in gevallen die betrekking hebben op:

  • Data delen tussen Terraform-modules of -configuraties
  • Informatie doorgeven aan externe systemen voor configuratiebeheer of -bewaking
  • Vereenvoudiging van configuratielogica door te verwijzen naar dynamische waarden in plaats van hardcoded data

Een voorbeeld van een dergelijk scenario is het extraheren van het publieke IP-adres van een EC2-instantie en het gebruiken om een beveiligingsgroepregel in een andere Terraform-module te configureren.

Terraforme databronnen

Databronnen halen data uit externe bronnen. Het communiceert met API's of plug-ins om informatie op te halen van cloudproviders, configuratiebeheertools of andere externe systemen. Databronnen worden gebruikt in gevallen die betrekking hebben op:

  • Toegang tot informatie over bestaande resources die niet door Terraform zelf worden beheerd
  • Externe data gebruiken om Terraform-resources dynamisch te configureren
  • Uw IaC integreren met andere tools en platforms

Een voorbeeld is het gebruik van een databron om een lijst met beschikbare regio's in een cloudprovider op te halen voordat er resources in die regio's worden gecreëerd.

Eenvoudig gezegd hangt de keuze tussen het gebruik van een outputvariabele of een databron af van de oorsprong van de data die u nodig hebt:

  • Als de data afkomstig zijn van resources die binnen uw Terraform-configuratie worden beheerd, gebruik dan een uitvoervariabele.
  • Als de data zich in een extern systeem bevinden of dynamisch moeten worden opgehaald, gebruik dan een databron.

Best practices voor het gebruik van Terraform Output

Bij het gebruik van Terraform-outputs moet u de volgende best practices overwegen:

  • Gebruik beschrijvende namen: Kies duidelijke en beknopte namen die de data weergeven die door de outputvariabele worden blootgesteld. Vermijd generieke namen zoals "output1" of "data". Gebruik in plaats daarvan namen als "rds_instance_public_ip" of "webserver_security_group_id". Dit verbetert de leesbaarheid en onderhoudbaarheid van uw configuraties.
  • Gebruik een consistente naamgevingsconventie: Zorg voor een consistente naamgevingsconventie in uw Terraform-codebasis. Dit kan het gebruik van onderstrepingstekens of koppeltekens voor scheiding inhouden en het naamgevingsschema op één lijn houden tussen alle modules en configuraties.
  • Groepsgerelateerde outputs: Groepeer gerelateerde outputs logisch samen. Als u bijvoorbeeld meerdere outputs hebt met betrekking tot een database-instantie (IP-adres, poort, gebruikersnaam), groepeer ze dan onder één kop binnen uw configuratiebestand. Dit verbetert de organisatie en maakt het gemakkelijker om specifieke informatie te vinden.
  • Gebruik opmerkingen: Voeg duidelijke opmerkingen toe om het doel en het gebruik van elke outputvariabele uit te leggen. Dit is met name nuttig voor outputs die misschien niet onmiddellijk voor de hand liggend zijn of wanneer ze door andere modules of teams worden gebruikt.
  • Vermijd onnodige output: Vermijd het definiëren van outputs voor data die niet echt nodig zijn. Overmatige output kan de output in de war brengen en het moeilijker maken om de meest relevante informatie te identificeren. Evalueer of de data direct binnen uw Terraform-configuratie kunnen worden gebruikt of dat een alternatieve aanpak efficiënter kan zijn.
  • Vermijd outputs voor geheimen: Vermijd indien mogelijk het volledig opslaan van gevoelige data in Terraform-configuraties. Ontdek alternatieve methoden voor het beheer van geheimen, zoals het gebruik van HashiCorp Vault of omgevingsvariabelen.
  • Gebruik het attribuut Terraform sensitive: Als het gebruik van outputs voor geheimen onvermijdelijk is, markeer ze dan als gevoelig met behulp van het gevoelige attribuut binnen het outputblok. Dit instrueert de opdracht terraforme output om de waarde te onderdrukken bij het weergeven van output.

Hier is een voorbeeld met het gevoelige attribuut toegevoegd:

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

Conclusie

Terraform output stelt u in staat om de kloof tussen statische configuraties en dynamische infrastructuur te overbruggen. Door gebruik te maken van outputs kunt u het delen van data stroomlijnen, taken automatiseren en verificatie vereenvoudigen.

Om het volledige potentieel van uw infrastructuur te ontsluiten, kunt u overwegen Pure Storage-oplossingen zoals Portworx® te gebruiken om persistente opslag mogelijk te maken voor uw Terraform Kubernetes-implementaties en Pure Cloud Block Store™ om de ideale opslagoplossing te bieden voor uw cloudgebaseerde toepassingen.

10/2025
Virtual Machine Provisioning at Enterprise Scale
Sizing and scaling Red Hat OpenShift Virtualization with Portworx.
Whitepaper
22 pagina's

Blader door key resources en evenementen

VIDEO
Bekijk: De waarde van een Enterprise Data Cloud

Charlie Giancarlo over waarom het beheren van data en niet opslag de toekomst zal zijn. Ontdek hoe een uniforme aanpak de IT-activiteiten van bedrijven transformeert.

Nu bekijken
RESOURCE
Legacy-storage kan de toekomst niet aandrijven.

Moderne workloads vragen om AI-ready snelheid, beveiliging en schaalbaarheid. Is uw stack er klaar voor?

Doe de assessment
PURE360 DEMO’S
Ontdek, leer en ervaar Pure Storage.

Krijg toegang tot on-demand video's en demo's om te zien wat Pure Storage kan doen.

Demo’s bekijken
THOUGHT LEADERSHIP
De innovatierace

De nieuwste inzichten en perspectieven van industrieleiders in de voorhoede van opslaginnovatie.

Meer lezen
Uw browser wordt niet langer ondersteund!

Oudere browsers vormen vaak een veiligheidsrisico. Om de best mogelijke ervaring te bieden bij het gebruik van onze site, dient u te updaten naar een van deze nieuwste browsers.