slide

Terraform - FotD - pow()

Ned Bellavance
2 min read

Cover

This is part of an ongoing series of posts documenting the built-in interpolation functions in Terraform. For more information, check out the beginning post. In this post I am going to cover the pow() function. The example file is on GitHub here.

What is it?

Function name: pow(base,exponent)

Returns: Takes a base value and raises it by the exponent

Example:

# Returns 8
output "pow_output" {
  value = "${pow("2","3")}"
}

Example file:

##############################################
# Function: pow
##############################################
##############################################
# Variables
##############################################
variable "base" {}

variable "exp" {}


##############################################
# Resources
##############################################

##############################################
# Outputs
##############################################
output "pow_output" {
  value = "${pow(var.base, var.expZ)}"
}

Run the following from the pow folder to get example output for a number of different cases:

#Basic functionality
terraform apply -var 'base=2' -var 'exp=3'
terraform apply -var 'base=-1' -var 'exp=3'
terraform apply -var 'base=3.1' -var 'exp=-2'

#Gives NaN, weird, guess it doesn't like decimal exponent
terraform apply -var 'base=-3.1' -var 'exp=2.3'

#Checking maximums, 308 seems to be the max
terraform apply -var 'base=10' -var 'exp=309'
terraform apply -var 'base=10' -var 'exp=308'

Why use it?

This is a bit like the log function, both from a mathematical and usefulness perspective. Mathematically, this is the inverse operation of a log function. How useful this function is to deploying automated infrastructure is a bit more debatable. It is pretty easy to implement though, since the pow function is a part of the math package in Golang.

Lessons Learned

The function has an upper limit on value, so anything more than 10^308 is rendered as infinity. Since there are only about 10^82 atoms in the universe, I guess that’s more than sufficient. The function also does not like a negative base value with a decimal for the exponent. The resulting value is NaN. I checked and that is how Golang renders it as well, so that’s not an issue of implementation on Terraform’s part.

Coming up next is the replace() function.

LatestArticles



Passing the AI-900 Exam

February 4, 2026

Terraform - FotD - pow()

Planning for 2026

January 2, 2026

Terraform - FotD - pow()

2025 Year in Review

December 30, 2025

Terraform - FotD - pow()