You can now create and manage Workflows using Terraform, now supported in the Cloudflare Terraform provider v5.11.0. Workflows allow you to build durable, multi-step applications — without needing to worry about retrying failed tasks or managing infrastructure.
Now, you can deploy and manage Workflows through Terraform using the new cloudflare_workflow
resource:
resource "cloudflare_workflow" "my_workflow" { account_id = var.account_id workflow_name = "my-workflow" class_name = "MyWorkflow" script_name = "my-worker"}
Examples
Here are full examples of how to configure cloudflare_workflow
in Terraform, using the existing cloudflare_workers_script
resource, and the beta cloudflare_worker_version
resource.
With cloudflare_workflow
and cloudflare_workers_script
resource "cloudflare_workers_script" "workflow_worker" { account_id = var.cloudflare_account_id script_name = "my-workflow-worker"
content_file = "${path.module}/../dist/worker/index.js" content_sha256 = filesha256("${path.module}/../dist/worker/index.js") main_module = "index.js"}
resource "cloudflare_workflow" "workflow" { account_id = var.cloudflare_account_id workflow_name = "my-workflow" class_name = "MyWorkflow" script_name = cloudflare_workers_script.workflow_worker.script_name}
With cloudflare_workflow
, and the new beta resources
You can more granularly control the lifecycle of each Worker resource using the beta cloudflare_worker_version
resource, alongside the cloudflare_worker
and cloudflare_workers_deployment
resources.
resource "cloudflare_worker" "workflow_worker" { account_id = var.cloudflare_account_id name = "my-workflow-worker"}
resource "cloudflare_worker_version" "workflow_worker_version" { account_id = var.cloudflare_account_id worker_id = cloudflare_worker.workflow_worker.id
main_module = "index.js"
modules = [{ name = "index.js" content_file = "${path.module}/../dist/worker/index.js" content_type = "application/javascript+module" }]}
resource "cloudflare_workers_deployment" "workflow_deployment" { account_id = var.cloudflare_account_id script_name = cloudflare_worker.workflow_worker.name
strategy = "percentage" versions = [{ version_id = cloudflare_worker_version.workflow_worker_version.id percentage = 100 }]}
resource "cloudflare_workflow" "my_workflow" { account_id = var.cloudflare_account_id workflow_name = "my-workflow" class_name = "MyWorkflow" script_name = cloudflare_worker.workflow_worker.name}
Try it out
- Get started with the Cloudflare Terraform provider (v5.11.0) and the new
cloudflare_workflow
resource.
Source: Cloudflare
Latest Posts
- Power Apps – Create offline profiles in the maker studio for Canvas apps [MC1171647]
- Dynamics 365 Contact Center – Historical analytics – Enable Intent group and agent group-based metrics and dimensions [MC1175088]
- Introducing Image Search in Microsoft Teams [MC1174858]
- Microsoft 365 Copilot: Session persistence enhancement for Copilot chat [MC1174856]