Parameterized resources in Terraform
On this page
There are cases where you might want to declare a single, parameterized resource in place of a (possibly variable) number of resources to be managed. Terraform enables this through some of its native constructs.
File-based parameterization
You can use a combination of the for_each
meta-argument and the fileset function to your advantage, for example when creating browser checks that share all their settings apart from their script:
resource "checkly_check" "browser-check" {
for_each = fileset("${path.module}/scripts", "*") // Iterates through the files in the scripts folder in your project's directory
name = each.key // Sets the check name to match the file's
type = "BROWSER"
activated = true
frequency = 1
double_check = true
ssl_check = false
locations = [
"us-west-1",
"eu-central-1"
]
script = file("${path.module}/scripts/${each.key}") // Assigns the script contained in each file to each new created check resource
}
This will create as many browser checks running each minute as there are files in the ./scripts
folder in your project’s path.
Aside from checks, these constructs can be useful for a variety of resources like alert channels, snippets and more.
Last updated on November 6, 2024. You can contribute to this documentation by editing this page on Github