What is Cloudformation's !Sub equivalent in Terraform

Viewed 89

I'm trying to use a variable in Terraform and make a concatenation like I'd do using !Sub in Cloudformation.

Something like this..

variable "aws_region" {
   default = "us-west-1"
}

resource "aws_subnet" "apple" {
   availability_zone = "${var.aws_region}a"
   vpc_id     = module.vpc.vpc_id
   cidr_block = "${var.subnet_cidr1}"
}

How do I do acheive this? availability_zone = us-west-1a

1 Answers

Option 1: use interpolation:

// addeed from a list
availability_zone = "${var.aws_region}-${var.some_aws_instance_names[count.index]}"
// or static string
availability_zone = "${var.aws_region}-1a"     
// or two local variable   
avilability_zone = "${var.aws_region}-${var.someLocalVariable}"

Option 2: Use Join Reference Terraform

If you just want to concatenate !Sub without a separator like "Aws"+"-Instance1A" = "Aws-Instance1A", then:

join("", ["Aws", "-Instance1A"])

Aws-Instance1A

join(", ", ["foo", "bar", "choco", "late"])

foo, bar, choco, late

join(", ", ["foo"])

foo

Related