Workflows connector that defines the built-in function used to access Cloud Scheduler within a workflow.
Explore further
For detailed documentation that includes this code sample, see the following:
Code sample
YAML
# This workflow demonstrates how to use the Cloud Scheduler connector:
# Create a Pub/Sub topic and subscription for notifications
# Create a Cloud Scheduler job that runs every minute and publishes
# a message to the Pub/Sub topic when finished
# Retrieve message from the subscription and then delete all resources
# Expected output: "SUCCESS"
-
init
:
assign
:
-
project_id
:
${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
-
location_id
:
"us-central1"
-
job_id
:
"example-job-id"
-
topic
:
"example-topic-id"
-
subscription
:
"example-subscription-id"
-
create_topic
:
call
:
googleapis.pubsub.v1.projects.topics.create
args
:
name
:
${"projects/" + project_id + "/topics/" + topic}
-
create_subscription_to_topic
:
call
:
googleapis.pubsub.v1.projects.subscriptions.create
args
:
name
:
${"projects/" + project_id + "/subscriptions/" + subscription}
body
:
name
:
${"projects/" + project_id + "/subscriptions/" + subscription}
topic
:
${"projects/" + project_id + "/topics/" + topic}
-
create_job
:
call
:
googleapis.cloudscheduler.v1.projects.locations.jobs.create
args
:
parent
:
${"projects/" + project_id + "/locations/" + location_id}
body
:
name
:
${"projects/" + project_id + "/locations/" + location_id + "/jobs/" + job_id}
description
:
"An
example
job
created
by
Workflows
to
test
the
Cloud
Scheduler
connector."
schedule
:
"*
*
*
*
*"
# runs job every minute
pubsubTarget
:
topicName
:
${"projects/" + project_id + "/topics/" + topic}
attributes
:
job
:
"finished!"
-
sleep
:
call
:
sys.sleep
args
:
seconds
:
100
# sleeps for 100 seconds to allow job to run
-
pull_message
:
call
:
googleapis.pubsub.v1.projects.subscriptions.pull
args
:
subscription
:
${"projects/" + project_id + "/subscriptions/" + subscription}
body
:
maxMessages
:
1
-
delete_job
:
call
:
googleapis.cloudscheduler.v1.projects.locations.jobs.delete
args
:
name
:
${"projects/" + project_id + "/locations/" + location_id + "/jobs/" + job_id}
-
delete_subscription
:
call
:
googleapis.pubsub.v1.projects.subscriptions.delete
args
:
subscription
:
${"projects/" + project_id + "/subscriptions/" + subscription}
-
delete_topic
:
call
:
googleapis.pubsub.v1.projects.topics.delete
args
:
topic
:
${"projects/" + project_id + "/topics/" + topic}
-
the_end
:
return
:
"SUCCESS"
What's next
To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser .

