Workflows connector that defines the built-in function used to access Pub/Sub 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 Pub/Sub connector:
# Create a Pub/Sub topic and a subscription to that topic
# Publish a message to the topic and pull the message from the subscription
# Delete both the subscription and the topic
# Expected output: "SUCCESS"
-
init
:
assign
:
-
project
:
${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
-
topic
:
"TOPIC_ID"
# replace TOPIC_ID placeholder
-
subscription
:
"SUBSCRIPTION_ID"
# replace SUBSCRIPTION_ID placeholder
-
message
:
{
"hello"
:
"world"
}
-
base64Msg
:
${base64.encode(json.encode(message))}
# encodes bytes to Base64 text
-
create_topic
:
call
:
googleapis.pubsub.v1.projects.topics.create
args
:
name
:
${"projects/" + project + "/topics/" + topic}
-
create_subscription_to_topic
:
call
:
googleapis.pubsub.v1.projects.subscriptions.create
args
:
name
:
${"projects/" + project + "/subscriptions/" + subscription}
body
:
name
:
${"projects/" + project + "/subscriptions/" + subscription}
topic
:
${"projects/" + project + "/topics/" + topic}
-
publish_message_to_topic
:
call
:
googleapis.pubsub.v1.projects.topics.publish
args
:
topic
:
${"projects/" + project + "/topics/" + topic}
body
:
messages
:
-
data
:
${base64Msg}
-
pull_message
:
call
:
googleapis.pubsub.v1.projects.subscriptions.pull
args
:
subscription
:
${"projects/" + project + "/subscriptions/" + subscription}
body
:
maxMessages
:
1
result
:
m
-
check_message
:
switch
:
-
condition
:
${m.receivedMessages[0].message.data != base64Msg}
next
:
failed
-
delete_subscription
:
call
:
googleapis.pubsub.v1.projects.subscriptions.delete
args
:
subscription
:
${"projects/" + project + "/subscriptions/" + subscription}
-
delete_topic
:
call
:
googleapis.pubsub.v1.projects.topics.delete
args
:
topic
:
${"projects/" + project + "/topics/" + topic}
-
the_end
:
return
:
"SUCCESS"
-
failed
:
raise
:
${"Received data:" + m.receivedMessages[0].message.data + " Expected data:" + base64Msg}
What's next
To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser .

