Publish and receive messages in Pub/Sub by using the gcloud CLI

This page shows you how to do the following operations in Pub/Sub using the Google Cloud CLI:

  • Create a topic and subscription.
  • Publish messages to the topic.
  • Receive messages from the subscription.

To follow step-by-step guidance for this task directly in the Google Cloud console, click Guide me:

Guide me


Before you begin

Complete the following steps before running your pipeline.

Set up your project

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Set up a Google Cloud console project.

    Set up a project

    Click to:

    • Create or select a project.
    • Enable the Pub/Sub API for that project.

    You can view and manage these resources at any time in the Google Cloud console.

  3. Install the Google Cloud CLI.

  4. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  5. To initialize the gcloud CLI, run the following command:

    gcloud init
  6. Set up a Google Cloud console project.

    Set up a project

    Click to:

    • Create or select a project.
    • Enable the Pub/Sub API for that project.

    You can view and manage these resources at any time in the Google Cloud console.

  7. Install the Google Cloud CLI.

  8. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  9. To initialize the gcloud CLI, run the following command:

    gcloud init

Required roles

To complete this quickstart, you need the following Identity and Access Management (IAM) (IAM) roles.

To get the permissions that you need to complete this quickstart, ask your administrator to grant you the Pub/Sub Editor (roles/pubsub.editor) IAM role on your project. For more information about granting roles, see Manage access to projects, folders, and organizations.

You might also be able to get the required permissions through custom roles or other predefined roles.

Create a topic

Create a topic with the ID my-topic:

gcloud pubsub topics create my-topic

Create a subscription

Create a subscription with the ID my-sub and attach it to my-topic:

gcloud pubsub subscriptions create my-sub --topic=my-topic

Publish messages

Publish a message to my-topic:

gcloud pubsub topics publish my-topic --message="hello"

Receive messages

Receive the message from my-sub:

gcloud pubsub subscriptions pull my-sub --auto-ack

The gcloud CLI prints the message to the command line.

How did it go?

What's next