You can use a Workflows connector to support Pub/Sub operations, including publishing messages to a Pub/Sub topic.
A Pub/Sub topic is a resource to which messages are sent by publishers. A subscription represents the stream of messages from a topic that are to be delivered to the subscribing application. Learn more about Pub/Sub.
Publishing messages
Once a Pub/Sub topic and a subscription to that topic has been created, you can create a workflow that publishes a message to that topic:
YAML
- init: assign: - project: '${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}' - topic: TOPIC_ID - subscription: SUBSCRIPTION_ID - message: hello: world - base64Msg: '${base64.encode(json.encode(message))}' - publish_message_to_topic: call: googleapis.pubsub.v1.projects.topics.publish args: topic: '${"projects/" + project + "/topics/" + topic}' body: messages: - data: '${base64Msg}'
JSON
[ { "init": { "assign": [ { "project": "${sys.get_env(\"GOOGLE_CLOUD_PROJECT_ID\")}" }, { "topic": "TOPIC_ID" }, { "subscription": "SUBSCRIPTION_ID" }, { "message": { "hello": "world" } }, { "base64Msg": "${base64.encode(json.encode(message))}" } ] } }, { "publish_message_to_topic": { "call": "googleapis.pubsub.v1.projects.topics.publish", "args": { "topic": "${\"projects/\" + project + \"/topics/\" + topic}", "body": { "messages": [ { "data": "${base64Msg}" } ] } } } } ]
Replace the following:
TOPIC_ID: the ID or fully qualified identifier for the Pub/Sub topic.SUBSCRIPTION_ID: the ID or fully qualified identifier for the Pub/Sub subscription.
Pulling messages
You can create an Eventarc trigger that connects a Pub/Sub topic to a Workflows event receiver. A message is published to a Pub/Sub topic to generate an event, and the event is passed as a runtime argument to the destination workflow. For more information, see Trigger a workflow with events or Pub/Sub messages.
You can also create a workflow that pulls the Pub/Sub message. In the following example, the workflow waits for the message to be published using polling.