Create a workflow that executes a Cloud Run job using Terraform

Deploys a sample workflow using Terraform.

Explore further

For detailed documentation that includes this code sample, see the following:

Code sample

Terraform

To learn how to apply or remove a Terraform configuration, see Basic Terraform commands . For more information, see the Terraform provider reference documentation .

  # Create a workflow 
 resource 
  
 "google_workflows_workflow" 
  
 "default" 
  
 { 
  
 name 
  
 = 
  
 "cloud-run-job-workflow" 
  
 region 
  
 = 
  
 "us-central1" 
  
 description 
  
 = 
  
 "Workflow that routes a Cloud Storage event and executes a Cloud Run job" 
  
 deletion_protection 
  
 = 
  
 false 
 # set to "true" in production 
 # Note that $$ is needed for Terraform 
  
 source_contents 
  
 = 
  
<< EOF 
  
 main 
 : 
  
 params 
 : 
  
 [ 
 event 
 ] 
  
 steps 
 : 
  
 - 
  
 init 
 : 
  
 assign 
 : 
  
 - 
  
 project_id 
 : 
  
 $$ 
 { 
 sys.get_env 
 ( 
 "GOOGLE_CLOUD_PROJECT_ID" 
 )} 
  
 - 
  
 event_bucket 
 : 
  
 $$ 
 { 
 event.data.bucket 
 } 
  
 - 
  
 event_file 
 : 
  
 $$ 
 { 
 event.data.name 
 } 
  
 - 
  
 target_bucket 
 : 
  
 "${google_storage_bucket.default.name}" 
  
 - 
  
 job_name 
 : 
  
 parallel-job 
  
 - 
  
 job_location 
 : 
  
 us-central 
 1 
  
 - 
  
 check_input_file 
 : 
  
 switch 
 : 
  
 - 
  
 condition 
 : 
  
 $$ 
 { 
 event_bucket 
  
 = 
 = 
  
 target_bucket 
 } 
  
 next 
 : 
  
 run_job 
  
 - 
  
 condition 
 : 
  
 true 
  
 next 
 : 
  
 end 
  
 - 
  
 run_job 
 : 
  
 call 
 : 
  
 googleapis.run.v1.namespaces.jobs.run 
  
 args 
 : 
  
 name 
 : 
  
 $$ 
 { 
 "namespaces/" + project_id + "/jobs/" 
  
 + 
  
 job_name 
 } 
  
 location 
 : 
  
 $$ 
 { 
 job_location 
 } 
  
 body 
 : 
  
 overrides 
 : 
  
 containerOverrides 
 : 
  
 env 
 : 
  
 - 
  
 name 
 : 
  
 INPUT_BUCKET 
  
 value 
 : 
  
 $$ 
 { 
 event_bucket 
 } 
  
 - 
  
 name 
 : 
  
 INPUT_FILE 
  
 value 
 : 
  
 $$ 
 { 
 event_file 
 } 
  
 result 
 : 
  
 job_execution 
  
 - 
  
 finish 
 : 
  
 return 
 : 
  
 $$ 
 { 
 job_execution 
 } 
  
 EOF 
 } 
 

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser .

Create a Mobile Website
View Site in Mobile | Classic
Share by: