Loading

Quipoin Menu

Learn • Practice • Grow

terraform / Terraform Locals
tutorial

Terraform Locals

Local values (or locals) let you assign a name to an expression. They are similar to variables, but you cannot set them from outside; they are internal to the configuration. Locals help avoid repeating complex expressions and make your configuration more readable.

Declaring Locals

Use a locals block to define one or more named expressions.
locals {
common_tags = {
Environment = var.environment
Project = "demo"
}
instance_name = "web-${var.environment}"
}

Using Locals

Reference a local value with local.<name>:
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = var.instance_type
tags = local.common_tags
}

Benefits of Locals

  • DRY: Write an expression once, reuse many times.
  • Clarity: Give a name to a complex expression.
  • Modularity: Change the definition in one place.

Example: Combining Locals and Variables

variable "environment" { default = "dev" }

locals {
name_prefix = "${var.environment}-app"
subnet_ids = var.environment == "prod" ? ["subnet-prod1", "subnet-prod2"] : ["subnet-dev1"]
}

resource "aws_instance" "app" {
count = length(local.subnet_ids)
subnet_id = local.subnet_ids[count.index]
tags = { Name = "${local.name_prefix}-${count.index}" }
}

Local vs Variable

  • Variables are input parameters (set by user).
  • Locals are derived expressions (internal).
  • Use variables for values that change between runs; use locals for intermediate calculations.


Two Minute Drill
  • Locals assign names to expressions for reuse.
  • Define in a locals block, reference with local.name.
  • Unlike variables, locals cannot be set externally.
  • Ideal for common tags, name prefixes, or complex conditionals.

Need more clarification?

Drop us an email at career@quipoinfotech.com