
- Terraform Block: The “terraform” block is used to specify settings for the Terraform execution environment, such as the required Terraform version and any backend configuration settings.
Example:
terraform {
required_version = ">= 0.14"
backend "s3" {
bucket = "my-terraform-state"
key = "terraform.tfstate"
region = "us-west-2"
}
}
- Provider Block: A provider block specifies the details of the provider being used. The provider is responsible for creating and managing resources in a specific infrastructure. The provider block is required for every Terraform configuration file.
Example:
provider "aws" {
region = "us-west-2"
}
- Resource Block: A resource block specifies a single resource to be managed by Terraform. It includes the resource type, name, and its configuration options.
Example:
resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
}
- Data Block: A data block defines data sources that can be queried from an external system, such as a cloud provider or a database.
Example:
data "aws_ami" "ubuntu" {
most_recent = true
filter {
name = "name"
values = ["ubuntu/images/*ubuntu-xenial-16.04-amd64-server-*"]
}
}
- Module Block: A module block specifies a reusable set of resources and configurations. Modules can be used to organize and reuse code across multiple Terraform configurations.
Example:
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "3.0.0"
name = "my-vpc"
cidr = "10.0.0.0/16"
azs = ["us-west-2a", "us-west-2b", "us-west-2c"]
}
- Output Block: An output block defines the values that Terraform should output after applying a configuration. Outputs are useful for retrieving information from Terraform to use in other parts of your infrastructure.
Example:
output "public_ip" {
value = aws_instance.example.public_ip
}
- Variable Block: A variable block defines variables that can be used in a Terraform configuration. Variables are used to provide values that may change depending on the environment.
Example:
variable "aws_region" {
type = string
default = "us-west-2"
}
- Locals Block: The locals block defines local values that can be used within a Terraform module or configuration file. These values are computed once during Terraform execution and can be used to simplify complex expressions or provide more descriptive names for values.
Example:
locals {
instance_count = length(var.instance_types)
instance_names = [ "web-${count.index}" for count.index in range(local.instance_count) ]
}
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.
Find Trusted Cardiac Hospitals
Compare heart hospitals by city and services — all in one place.
Explore Hospitals