Find the Best Cosmetic Hospitals

Explore trusted cosmetic hospitals and make a confident choice for your transformation.

“Invest in yourself — your confidence is always worth it.”

Explore Cosmetic Hospitals

Start your journey today — compare options in one place.

Data Sources in Terraform resources explained with example

  • Data sources provide dynamic information about entities that are not managed by the current Terraform and configuration.
  • Variables provide static information.
  • Referencing a resource defined in a data source won’t create the resource itself, and your plan will fail if you reference nonexistent data or infrastructure.
  • Data sources allow data to be fetched or computed for use elsewhere in Terraform configuration.
  • External data sources must return information in JSON format.

This may include:

  • Configuration data from Consul
  • Information about the state of manually-configured infrastructure components
  • Another Terraform configuration
  • Defined outside of Terraform
  • Defined by another separate Terraform configuration.

data "azurerm_virtual_machine" "example" {
  name                = "simple-vm"
  resource_group_name = "demo"
}

output "virtual_machine_id" {
  value = data.azurerm_virtual_machine.example.id
}Code language: JavaScript (javascript)


data "aws_ami" "ubuntu" {
  most_recent = true

  filter {
    name   = "name"
    values = ["ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-20230325"]
  }

  filter {
    name   = "virtualization-type"
    values = ["hvm"]
  }

  owners = ["099720109477"] # Canonical
}

data "aws_availability_zones" "available" {
  state = "available"
}

output "virtual_machine_id" {
  value = data.aws_availability_zones.available.names[0]
}

output "virtual_machine_id1" {
  value = data.aws_availability_zones.available.names[1]
}


output "ips_with_list_interpolation" {
  value = [ for name in data.aws_availability_zones.available.names : name ]
}

resource "aws_instance" "first-ec2" {
  ami           = data.aws_ami.ubuntu.id # us-west-2
  instance_type = "t2.micro"
  tags = {
    Name = "RajeshKumar"
  }
  }
  
Code language: PHP (php)

Here’s an example of using the AWS data source in Terraform to retrieve information about an existing Amazon S3 bucket

In this example, we’re using the aws_s3_bucket data source to retrieve information about an existing S3 bucket named example-bucket. We’re then outputting several attributes of the bucket using the output block.

The aws_s3_bucket data source retrieves the specified bucket’s attributes such as bucket, region, arn, policy, id, acceleration_status, versioning, website_domain, website_endpoint, and logging as per the below documentation. https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/s3_bucket


data "aws_s3_bucket" "example" {
  bucket = "example-bucket"
}

output "bucket_name" {
  value = data.aws_s3_bucket.example.bucket
}

output "bucket_region" {
  value = data.aws_s3_bucket.example.region
}

output "bucket_arn" {
  value = data.aws_s3_bucket.example.arn
}

output "bucket_policy" {
  value = data.aws_s3_bucket.example.policy
}
Code language: JavaScript (javascript)

Here’s an example of using the AWS data source in Terraform to retrieve information about an existing availability zone

In this example, we’re using the aws_availability_zone data source to retrieve information about the availability zone named us-west-2a in the US West (Oregon) region. We’re then outputting the zone_id and zone_name attributes of the availability zone using the output block.

The aws_availability_zone data source retrieves the specified availability zone’s attributes such as zone_id, zone_name, region_name, and opt_in_status as per the below documentation. https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/availability_zone


data "aws_availability_zone" "example" {
  state = "available"
  name  = "us-west-2a"
}

output "zone_id" {
  value = data.aws_availability_zone.example.zone_id
}

output "zone_name" {
  value = data.aws_availability_zone.example.zone_name
}
Code language: JavaScript (javascript)

Find Trusted Cardiac Hospitals

Compare heart hospitals by city and services — all in one place.

Explore Hospitals
I'm Rajesh Kumar, a DevOps, SRE, DevSecOps, Cloud, and Platform Engineering expert passionate about sharing practical knowledge, real-world experiences, and industry best practices. I have worked at Cotocus and regularly write about technology, travel, investing, health, product reviews, and digital marketing through my various platforms. I publish technical articles at DevOps School, travel stories at Holiday Landmark, stock market insights at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow, and SEO and digital marketing strategies at Wizbrand.

Related Posts

Terraform workspace explained!!!

What is Terraform workspace? Have you worked with terraform workflow? such as terraform init/plan/apply/destroy with terraform configuration file? If Yes, you already have worked with Terraform workspace….

Read More

Terraform Tutorials: Templating in Terraform

Top 10 Templating Engines Across Major Programming Languages # Templating Engine Programming Language Common Framework / Ecosystem Typical Real Use 1 Jinja2 Python Flask, Ansible HTML generation,…

Read More

Terraform provisioners Tutorials and Complete Guide

Terraform provisioners are used to execute scripts or shell commands on a local or remote machine as part of resource creation/deletion. They are similar to “EC2 instance…

Read More

Terraform Tutorials: Local Values using Local Block

What is local value in terraform? In Terraform, a locals block is used to define local variables within a module, allowing you to create reusable expressions and…

Read More

Terraform Tutorials: Module Complete Guide

A Terraform module is a collection of configuration files that encapsulate resources used together to achieve a specific outcome. Modules promote reusability, organization, and maintainability in infrastructure…

Read More

What is Terrafile?

Terrafile is a tool used to manage Terraform modules as dependencies. It simplifies the process of downloading and managing Terraform modules by automating the fetching of modules…

Read More