Built in Functions
Last updated
Last updated
Terraform provides many built in functions. These functions can be called by functionname() inside ${}
. For example, ${file(config.txt)}
will read the content of the file.
A list of commonly used functions,
Function
Description
Example
basename(path)
Returns filename of the a path
basename("/home/isuru/file.txt") returns file.txt
coalesce(string1, string2, ...)
Returns the first non empty value
coalsec("", "", "hello")
coalescelist(list1, list2, ...)
Returns the first non empty list
"
element(list, index)
Returns a single element from a list at the given index
element(module.vpc.public_subnet, count.index)
format(format, args, ...)
Formats a string/list according to the given format
format("server-%03d, count.index + 1) returns server-001, server-002
index(list, elem)
Finds the index of a given element in a list
index(aws_instance.foo.*.tags.Env, "prod")
join(delim, list)
Joins a list together with a delimiter
join(",", var.AMIS) returns "ami-123, ami-456, ami-789"
list(item1, item2, ...)
create a new list
join(":", list("a", "b", "c")) returns a:b:c
lookup(map, key, [default])
Perform a lookup on a map, using "key". Returns value representing "key" in the map(lookup("k", "v"), "k", "not found") returns "v"
lower(string)
returns lowercase value of "string"
lower("Hello") returns hello
map(key, value)
returns a new map using key:value
map("k", "v", "k2", "v2") returns: {"k" = "v", "k2" = "v2"}
merge(map1, map2, ...)
Merge maps(union)
merge(map("k", "v"), map("k2", "v2")) returns: {"k" = "v", "k2" = "v2"}
replace(string, search, replace)
Returns a search and replace on string
replace("aaab", "a", "b") returns bbbb
split(delim, string)
splits a string into a list
split(",", "a,b,c,d") returns ["a", "b", "c", "d"]
substr(string, offset, length)
Extract substring from string
substr("abcd", -3, 3)returns cde
timestamp()
returns RFC 3339 timestamp
"Server started at ${timestamp()}" Server started at 2021-05-27T10:42:46Z
uppser(string)
Returns uppsecased string
upper('string') returns STRING
uuid()
Returns a UUID string in RFC 4122 v4 format
uuid() returns: c5f44842-beaa-11eb-8529-0242ac130003
values(map)
returns values of a map
values(map("k", "v", "k2", "v2")) returns["v", "v2"]