Publier des messages dans Google Cloud Pub/Sub

Ce guide de démarrage rapide explique comment créer un programme qui publie un message "Hello World!" dans un sujet Pub/Sub à l'aide de l'API Pub/Sub.

Avant de commencer

Avant d'exécuter ce guide de démarrage rapide, assurez-vous que vous ou vos administrateurs avez rempli les conditions préalables suivantes :

Créer un programme pour publier des messages dans Google Cloud

  1. Dans le système SAP, créez un programme exécutable dans votre espace de noms personnalisé (par exemple, Z ou Y) à l'aide de la transaction SE38.

    1. Dans l'interface utilisateur graphique de SAP, saisissez le code de transaction SE38.

    2. Dans le champ Programme, saisissez un nom pour votre programme, par exemple ZDEMO_PUBSUB.

    3. Cliquez sur Créer.

    4. Spécifiez les attributs du programme :

      1. Dans le champ Titre, saisissez un titre de votre programme, par exemple Publish messages to a Pub/Sub topic.

      2. Dans le champ Type, sélectionnez Executable Program.

      3. Cliquez sur Enregistrer.

    5. Enregistrez le programme en tant qu'objet local.

    6. Dans l'éditeur ABAP, ajoutez le code suivant :

      **********************************************************************
      *  Copyright 2023 Google LLC                                         *
      *                                                                    *
      *  Licensed under the Apache License, Version 2.0 (the "License");   *
      *  you may not use this file except in compliance with the License.  *
      *  You may obtain a copy of the License at                           *
      *      https://www.apache.org/licenses/LICENSE-2.0                   *
      *  Unless required by applicable law or agreed to in writing,        *
      *  software distributed under the License is distributed on an       *
      *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,      *
      *  either express or implied.                                        *
      *  See the License for the specific language governing permissions   *
      *  and limitations under the License.                                *
      **********************************************************************
      
      REPORT zr_qs_publish_messages.
      
      * Data Declaration
      DATA:
        lv_p_projects_id TYPE string,
        lv_p_topics_id   TYPE string,
        ls_input         TYPE /goog/cl_pubsub_v1=>ty_023.
      
      TRY.
      * Instantiate the client stub
          DATA(lo_pubsub) = NEW /goog/cl_pubsub_v1( iv_key_name = 'DEMO_PUBSUB' ).
      
      * Pass the relevant input parameters
          lv_p_topics_id = 'SAMPLE_TOPIC_01'.
          lv_p_projects_id = lo_pubsub->gv_project_id.
          APPEND VALUE #( data = cl_http_utility=>encode_base64( 'Hello World!' ) ) to ls_input-messages.
      
      * Call the API
          CALL METHOD lo_pubsub->publish_topics
            EXPORTING
              iv_p_projects_id = lv_p_projects_id
              iv_p_topics_id   = lv_p_topics_id
              is_input         = ls_input
            IMPORTING
              es_output        = DATA(ls_output)
              ev_ret_code      = DATA(lv_ret_code)
              ev_err_text      = DATA(lv_err_text)
              es_err_resp      = DATA(ls_err_resp).
      
      * Handle the output
          IF lo_pubsub->is_success( lv_ret_code ).
            MESSAGE 'Message was published!' TYPE 'S'.
          ELSE.
            MESSAGE 'Message was not published!' TYPE 'E'.
          ENDIF.
      
      * Close the HTTP Connection
          lo_pubsub->close( ).
      
        CATCH /goog/cx_sdk INTO DATA(lo_exception).
          MESSAGE lo_exception->get_text( ) TYPE 'E'.
      ENDTRY.
      

      Remplacez DEMO_PUBSUB par le nom de la clé client.

  2. Exécutez votre application dans SE38.

  3. Pour valider les résultats, procédez comme suit :

    1. Dans la console Google Cloud, accédez à Pub/Sub.

    2. Sélectionnez l'abonnement SAMPLE_SUB_TOPIC_01, puis accédez à l'onglet Messages.

    3. Utilisez la fonctionnalité PULL pour vérifier si le message "Hello World!" a été publié dans le sujet.

Étapes suivantes