Skip to content

Configure Snippets using Terraform

Last updated View as MarkdownAgent setup

You can create Snippets using the Terraform Cloudflare provider ↗︎.

To get started with Terraform for Cloudflare configuration, refer to Get started.

Example configuration

The following example Terraform configuration creates a snippet and an associated snippet rule that defines when the snippet code will run. The snippet code is loaded from the file1.js file in your machine.

resource "cloudflare_snippet" "my_snippet" {
	zone_id  = "<ZONE_ID>"
	name = "my_test_snippet_1"
	main_module = "file1.js"
	files {
		name = "file1.js"
		content = file("file1.js")
	}
}

resource "cloudflare_snippet_rules" "cookie_snippet_rule" {
	zone_id  = "<ZONE_ID>"
	rules {
		enabled = true
		expression = "http.cookie eq \"a=b\""
		description = "Trigger snippet on specific cookie"
		snippet_name = "my_test_snippet_1"
	}
	depends_on = [cloudflare_snippet.my_snippet]
}

The name of a snippet can only contain the characters a-z, 0-9, and _ (underscore). The name must be unique in the context of the zone. You cannot change the snippet name after creating the snippet.

All snippet_name values in the cloudflare_snippet_rules resource must match the names of existing snippets.

More resources

Refer to the Terraform Cloudflare provider documentation ↗︎ for more information on the cloudflare_snippet and cloudflare_snippet_rules resources.

Was this helpful?