DEV Community

Sarah Lean 🏴󠁧󠁢
Sarah Lean 🏴󠁧󠁢

Posted on • Originally published at techielass.com

1

Introduction to Terraform Outputs

Introduction to Terraform Outputs

In this post, we'll delve into the world of Terraform outputs, exploring what they are, how to create them, apply them, and harness their power in your infrastructure deployments, with Azure as our example platform.

What are Terraform Outputs?

Terraform outputs serve as a conduit for extracting essential information from your infrastructure once it's been provisioned. Whether it's an IP address, a URL, or a resource ID, outputs enable you to access key details about your resources.

For example, consider provisioning an Azure Storage Account with Terraform. Once created, you might want to retrieve its name for further use. With Terraform outputs, you can easily access this information.

Introduction to Terraform Outputs
Terraform output example

How to Create Outputs

Creating outputs in Terraform is straightforward. You define them within your configuration file using the 'output' block. You can display one output or multiple. For example, if we want to deploy an Azure storage account we can define two outputs, the storage account name and the storage account URL.

##
# Terraform Configuration
##

terraform {
  required_providers {
    azurerm = {
      source = "hashicorp/azurerm"
      version = "~> 3.100.0"
    }
  }
}

provider "azurerm" {
  features {}
}

##
# Deploy resource
##

resource "azurerm_storage_account" "example" {
  name = "techielasstfoutputs"
  resource_group_name = "demo-rg"
  location = "westus3"
  account_tier = "Standard"
  account_replication_type = "LRS"
  access_tier = "Hot"
}

##
# Output
##

output "storage_account_name" {
  value = azurerm_storage_account.example.name
}

output "storage_account_url" {
  value = azurerm_storage_account.example.primary_blob_endpoint
}

Enter fullscreen mode Exit fullscreen mode

How to Apply Outputs

Once you've defined your outputs, you apply your Terraform configuration just as usual. Terraform will execute the configuration, provision the resources, and display the outputs once it's done.

Below is an example of the outputs being displayed after the resource has been deployed.

Introduction to Terraform Outputs
Terraform output example

Using the Outputs

With outputs in hand, you can leverage them in other parts of your Terraform configuration. Suppose you want to reference the storage account name in another resource.

By defining an output for the storage account name, you can easily retrieve this information and utilize it in subsequent deployments. In your CI/CD pipeline, you can set up Terraform to automatically execute these deployments one after another, ensuring a smooth and efficient workflow.

As each deployment completes, the outputs generated can be captured and passed along to the next stage, enabling a cohesive and automated infrastructure provisioning process without manual intervention.

This streamlined approach empowers beginners to leverage Terraform's capabilities effectively within their development lifecycle, facilitating the creation and management of cloud resources with ease.

State Files and Outputs

It's crucial to understand that outputs are stored in Terraform state files, which contain information about your infrastructure. Running terraform show displays the current state of your infrastructure, including the outputs you defined.

Conclusion

Terraform outputs are a powerful tool for extracting valuable information from your infrastructure deployments. By mastering outputs, you can enhance automation, streamline integration, and gain deeper insights into your environment.

Image of AssemblyAI

Automatic Speech Recognition with AssemblyAI

Experience near-human accuracy, low-latency performance, and advanced Speech AI capabilities with AssemblyAI's Speech-to-Text API. Sign up today and get $50 in API credit. No credit card required.

Try the API

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay