mirror of
https://github.com/imjasonh/terraform-playground
synced 2026-07-06 23:12:22 +00:00
add cloudflare worker example
Signed-off-by: Jason Hall <jason@chainguard.dev>
This commit is contained in:
parent
201548b75a
commit
1e82289e81
3 changed files with 62 additions and 0 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -7,3 +7,5 @@ terraform.tfstate.backup
|
|||
terraform.tfstate.*.backup
|
||||
.terraform.tfstate.lock.*
|
||||
.terraform.lock.hcl
|
||||
|
||||
terraform.tfvars
|
||||
|
|
|
|||
54
cf-worker/main.tf
Normal file
54
cf-worker/main.tf
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
terraform {
|
||||
required_providers {
|
||||
cloudflare = { source = "cloudflare/cloudflare" }
|
||||
}
|
||||
}
|
||||
|
||||
variable "name" { type = string }
|
||||
variable "cloudflare_zone" { type = string }
|
||||
variable "cloudflare_api_token" { type = string }
|
||||
variable "cloudflare_account_id" { type = string }
|
||||
|
||||
provider "cloudflare" {
|
||||
api_token = var.cloudflare_api_token
|
||||
}
|
||||
|
||||
// TODO: need to manually enable the workers.dev route in the dashboard
|
||||
// use cloudflare_worker_route instead to set up routing
|
||||
resource "cloudflare_worker_script" "script" {
|
||||
account_id = var.cloudflare_account_id
|
||||
name = var.name
|
||||
content = file("script.js")
|
||||
|
||||
kv_namespace_binding {
|
||||
name = "KV"
|
||||
namespace_id = cloudflare_workers_kv_namespace.kv_ns.id
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
resource "cloudflare_worker_route" "route" {
|
||||
zone_id = data.cloudflare_zone.zone.id
|
||||
pattern = "${var.name}.${var.cloudflare_zone}/*"
|
||||
script_name = cloudflare_worker_script.script.name
|
||||
}
|
||||
|
||||
data "cloudflare_zone" "zone" {
|
||||
name = var.cloudflare_zone
|
||||
}
|
||||
*/
|
||||
|
||||
resource "cloudflare_workers_kv_namespace" "kv_ns" {
|
||||
account_id = var.cloudflare_account_id
|
||||
title = "${var.name}-namespace"
|
||||
}
|
||||
|
||||
// Set a value.
|
||||
resource "cloudflare_workers_kv" "kv" {
|
||||
account_id = var.cloudflare_account_id
|
||||
namespace_id = cloudflare_workers_kv_namespace.kv_ns.id
|
||||
key = "foo"
|
||||
value = "bar"
|
||||
}
|
||||
|
||||
6
cf-worker/script.js
Normal file
6
cf-worker/script.js
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
addEventListener("fetch", (event) => {
|
||||
console.log("Hello from the service worker!");
|
||||
let value = KV.get("foo");
|
||||
event.respondWith(new Response(value,
|
||||
{ headers: { "content-type": "text/plain" } }));
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue