format
format
function produces a string by formatting a number of other values according to a specification string. Let's see an example
Note:- From now on we will refer Terraform as TF
We can use format
function as a printf
function in many other languages. I heavily used them in tagging my resources
in cloud.
tags = merge(
{
"Name" = format("%s-%03d-%s", var.namespace, count.index, var.environment)
},
var.tags,
)
or
name = format("%s-%s-%s", "elastic", var.environment, "SG")
consider variables are defined as below
variable "environment" {
description = "Name of the Environment"
type = string
default = "Stage"
}
variable "namespace" {
description = "Name to be used with identifier"
type = string
default = "elastic"
}
The above first code will generate the tag elastic-000-Stage
and with count.index
it will keep incrementing the %d
depending upon the number defined and the second code block will generate elastic-Stage-SG
.
join
join
takes 2 input the separator and the list of string and concatenate them and returns the strings
For example, see below code block
role = join("", aws_iam_role.elastic_iam_role.*.name)
The above code will generate the IAM role name as a string separated by blank space.
split
split
function produces the list when given input as a string lets see example below
availability_zone = element(split(",", var.azs), count.index)
with the above code, we will get a list of all the availability zones (azs).
replace
replace
function in TF is like sed
in Linux it searches for the given string and replaces it.
is_t_instance_type = replace(var.instance_type, "/^t[23]{1}\\..*$/", "1") == "1" ? true : false
Your substring wrapped in //
like /foo/
will be considered as a regular expression
In above example the value of var.instance_type
will be replace by the regular expression which will match t2
and t3
instance families in aws
.
Above functions are just very few out of mmany String Functions by Terraform.
Top comments (0)