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. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. Sélectionnez ou créez un projet Google Cloud Platform.

    Accéder à la page "Gérer les ressources"

  3. Assurez-vous que la facturation est activée pour votre projet Google Cloud Platform.

    Découvrir comment activer la facturation

  4. Activez Cloud Functions and Cloud Pub/Subles API requises.

    Activer les API.

  5. Install and initialize the Cloud SDK.
  6. Update gcloud components:
    gcloud components update
  7. Prepare your development environment.

Preparing the application

  1. Clone the sample app repository to your local machine:


    git clone

    Alternatively, you can download the sample as a zip file and extract it.


    git clone

    Alternatively, you can download the sample as a zip file and extract it.


    git clone

    Alternatively, you can download the sample as a zip file and extract it.

  2. Change to the directory that contains the Cloud Functions sample code for accessing Cloud Pub/Sub:


    cd nodejs-docs-samples/functions/helloworld/


    cd python-docs-samples/functions/helloworld/


    cd golang-samples/functions/helloworld/

  3. Take a look at the sample code:


     * Background Cloud Function to be triggered by Pub/Sub.
     * This function is exported by index.js, and executed when
     * the trigger topic receives a message.
     * @param {object} data The event payload.
     * @param {object} context The event metadata.
    exports.helloPubSub = (data, context) => {
      const pubSubMessage = data;
      const name =
        ? Buffer.from(, 'base64').toString()
        : 'World';
      console.log(`Hello, ${name}!`);


    def hello_pubsub(event, context):
        """Background Cloud Function to be triggered by Pub/Sub.
             event (dict):  The dictionary with data specific to this type of
             event. The `data` field contains the PubsubMessage message. The
             `attributes` field will contain custom attributes if there are any.
             context ( The Cloud Functions event
             metadata. The `event_id` field contains the Pub/Sub message ID. The
             `timestamp` field contains the publish time.
        import base64
        print("""This Function was triggered by messageId {} published at {}
        """.format(context.event_id, context.timestamp))
        if 'data' in event:
            name = base64.b64decode(event['data']).decode('utf-8')
            name = 'World'
        print('Hello {}!'.format(name))


    // Package helloworld provides a set of Cloud Functions samples.
    package helloworld
    import (
    // PubSubMessage is the payload of a Pub/Sub event.
    type PubSubMessage struct {
    	Data []byte `json:"data"`
    // HelloPubSub consumes a Pub/Sub message.
    func HelloPubSub(ctx context.Context, m PubSubMessage) error {
    	name := string(m.Data)
    	if name == "" {
    		name = "World"
    	log.Printf("Hello, %s!", name)
    	return nil

Deploying the function

To deploy the function with a Cloud Pub/Sub trigger, run the following command in the directory where the sample code is located:


gcloud functions deploy helloPubSub --runtime nodejs8 --trigger-topic YOUR_TOPIC_NAME
You can use the following values for the --runtime flag to use different Node.js versions:
  • nodejs6 (deprecated)
  • nodejs8
  • nodejs10 (beta)


gcloud functions deploy hello_pubsub --runtime python37 --trigger-topic YOUR_TOPIC_NAME


gcloud functions deploy HelloPubSub --runtime go111 --trigger-topic YOUR_TOPIC_NAME

where YOUR_TOPIC_NAME is the name of the Cloud Pub/Sub topic to which the function will be subscribed.

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 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 functions logs read --limit 50

You can also publish a message to a Pub/Sub topic from within a function.

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 that you created for the tutorial.

To delete the project:

  1. Dans la console GCP, accédez à la page "Projets".

    Accéder à la page Projets

  2. Dans la liste des projets, sélectionnez celui que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Deleting the Cloud Function

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

To delete the Cloud Function you created in this tutorial, run the following command:


gcloud functions delete helloPubSub 


gcloud functions delete hello_pubsub 


gcloud functions delete HelloPubSub 

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

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Cloud Functions Documentation