Cloud Pub/Sub Tutorial

This simple tutorial demonstrates writing, deploying, and triggering a Background Cloud Function with a Cloud Pub/Sub trigger. To learn more about Cloud Pub/Sub, see the Cloud Pub/Sub documentation.



This tutorial uses billable components of Cloud Platform, including:

  • Google Cloud Functions
  • Google Cloud Pub/Sub

Use the Pricing Calculator to generate a cost estimate based on your projected usage.

New Cloud Platform users might be eligible for a free trial.

Before you begin

  1. Sign in to your Google account.

    If you don't already have one, sign up for a new account.

  2. Select or create a Cloud Platform project.

    Go to the Manage resources page

  3. Enable billing for your project.

    Enable billing

  4. Enable the Cloud Functions and Cloud Pub/Sub APIs.

    Enable the APIs

  5. Install and initialize the Cloud SDK.
  6. Update and install gcloud components:
    gcloud components update &&
    gcloud components install beta
  7. Prepare your environment for Node.js development.

    Go to the setup guide

Preparing the application

  1. Create a directory on your local system for the application code:

    Linux or Mac OS X

    Create the directory:

    mkdir ~/gcf_pubsub

    Move into the directory:

    cd ~/gcf_pubsub


    Create the directory:

    mkdir %HOMEDRIVE%%HOMEPATH%\gcf_pubsub

    Move into the directory:

    cd %HOMEDRIVE%%HOMEPATH%\gcf_pubsub

  2. Create an index.js file in the gcf_pubsub directory with the following contents:


     * Background Cloud Function to be triggered by Pub/Sub.
     * @param {object} event The Cloud Functions event.
     * @param {function} callback The callback function.
    exports.helloPubSub = (event, callback) => {
      const pubsubMessage =;
      const name = ? Buffer.from(, 'base64').toString() : 'World';
      console.log(`Hello, ${name}!`);

    The helloPubSub function is exported by the module and is executed when a message is published to the function's trigger topic.

Deploying the function

To deploy the helloPubSubfunction with a Cloud Pub/Sub trigger, run the following command in the gcf_pubsub directory:

gcloud beta functions deploy helloPubSub --trigger-resource my-topic --trigger-event google.pubsub.topic.publish
Argument Description
--trigger-resource <name> The name of the Cloud Pub/Sub topic to which the function will be subscribed.
--trigger-event <name> The name of the event type that the function will receive. In this case, it is the Pub/Sub topic.publish event

Triggering the function

  1. Publish a message to your Cloud Pub/Sub topic. In this example, the message is a name that the function will include in a greeting:

    gcloud beta pubsub topics publish [YOUR_TOPIC_NAME] --message [YOUR_NAME]

    Replace [YOUR_TOPIC_NAME] with the name of your Cloud Pub/Sub topic, and [YOUR_NAME] with an arbitrary string.

  2. Check the logs to be sure the executions have completed:

    gcloud beta functions logs read --limit 50

Cleaning up

To avoid incurring charges to your Google Cloud Platform account for the resources used in this tutorial:

Deleting the project

The easiest way to eliminate billing is to delete the project you created for the tutorial.

To delete the project:

  1. In the Cloud Platform Console, go to the Projects page.

    Go to the Projects page

  2. In the project list, select the project you want to delete and click Delete project. After selecting the checkbox next to the project name, click
      Delete project
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Deleting the Cloud Functions

Deleting Cloud Functions does not remove any resources stored in Cloud Storage.

To delete a Cloud Function, run the following command:

gcloud beta functions delete [NAME_OF_FUNCTION]

where [NAME_OF_FUNCTION] is the name of the function to delete.

You can also delete Cloud Functions from the Google Cloud Platform Console.

Send feedback about...

Cloud Functions Documentation