Nachrichten in Google Cloud Pub/Sub veröffentlichen

In dieser Kurzanleitung erfahren Sie, wie Sie ein Programm erstellen, das eine "Hello World!" Nachricht an ein Pub/Sub-Thema mithilfe der Pub/Sub API über die SAP BTP-Edition des ABAP SDK for Google Cloud sendet.

Hinweise

Bevor Sie diese Kurzanleitung ausführen, müssen Sie oder Ihre Administratoren die folgenden Voraussetzungen erfüllt haben:

  • Gewähren Sie dem Dienstkonto die IAM-Rolle roles/pubsub.publisher.

  • Achten Sie darauf, dass die Pub/Sub API in Ihrem Google Cloud-Projekt aktiviert ist.

    Zur API-Bibliothek

  • Erstellen Sie ein Pub/Sub-Thema SAMPLE_TOPIC_01 und fügen Sie demselben ein Pull-Abo SAMPLE_SUB_TOPIC_01 hinzu. Weitere Informationen finden Sie unter Thema erstellen und Abo erstellen.

ABAP-Klasse erstellen, um Nachrichten in einem Pub/Sub-Thema zu veröffentlichen

  1. Paket erstellen:

    1. Rufen Sie in ADT den Project Explorer auf.
    2. Klicken Sie mit der rechten Maustaste auf das Paket ZLOCAL und wählen Sie Neu > ABAP-Paket aus.
    3. Geben Sie die folgenden Details für das Paket ein:

      • Name: Geben Sie ZABAPSDK_TEST ein.
      • Beschreibung: Geben Sie ABAP SDK Test Package ein.
    4. Klicken Sie auf Next (Weiter).

    5. Klicken Sie im Dialogfeld Transportanfrage auswählen das Kästchen Neue Anfrage erstellen an.

    6. Geben Sie eine Beschreibung für die Transportanfrage ein.

    7. Klicken Sie auf Finish (Beenden).

  2. Erstellen Sie eine ABAP-Klasse, um die Pub/Sub API aufzurufen:

    1. Klicken Sie mit der rechten Maustaste auf Ihr ABAP-Paket und wählen Sie Neu > ABAP-Klasse aus.
    2. Geben Sie die folgenden Details für Ihre ABAP-Klasse ein:

      • Name: Geben Sie ZGOOG_CL_QS_PUBSUB ein.
      • Beschreibung: Geben Sie Quick start for Pub/Sub API ein.
    3. Klicken Sie auf Next (Weiter).

    4. Wählen Sie eine Transportanfrage aus und klicken Sie auf Finish (Fertigstellen).

  3. Ersetzen Sie im Code-Editor den Standardcode durch das folgende Code-Snippet:

    CLASS zcl_qs_publish_messages DEFINITION
     PUBLIC FINAL
     CREATE PUBLIC.
    
     PUBLIC SECTION.
       INTERFACES if_oo_adt_classrun.
    ENDCLASS.
    
    CLASS zcl_qs_publish_messages IMPLEMENTATION.
     METHOD if_oo_adt_classrun~main.
    
       DATA ls_input         TYPE /goog/cl_pubsub_v1=>ty_023.
       DATA lo_pubsub        TYPE REF TO /goog/cl_pubsub_v1.
       DATA lv_p_projects_id TYPE string.
       DATA lv_p_topics_id   TYPE string.
    
       TRY.
           " Open HTTP connection
           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
           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 ).
             out->write( 'Message was published!' ).
           ELSE.
             out->write( 'Message was not published!' ).
           ENDIF.
    
           " Close the HTTP Connection
           lo_pubsub->close( ).
    
         CATCH /goog/cx_sdk INTO DATA(lo_exception).
           MESSAGE lo_exception->get_text( ) TYPE 'E'.
       ENDTRY.
     ENDMETHOD.
    ENDCLASS.
    

    Ersetzen Sie DEMO_PUBSUB durch den Namen des Clientschlüssels.

  4. Speichern und aktivieren Sie die Änderungen.

  5. Führen Sie Ihre Anwendung aus

    1. Wählen Sie die ABAP-Klasse ZGOOG_CL_QS_PUBSUB aus.
    2. Klicken Sie auf Ausführen > Ausführen als > ABAP-Anwendung (Console). Alternativ können Sie F9 drücken.
  6. So prüfen Sie die Ergebnisse:

    1. Rufen Sie in der Google Cloud Console Pub/Sub auf.

    2. Wählen Sie das Abo SAMPLE_SUB_TOPIC_01 aus und wechseln Sie zum Tab Nachrichten.

    3. Mit der PULL-Funktion können Sie prüfen, ob die Nachricht „Hello World!“ in diesem Thema veröffentlicht wurde.

Nächste Schritte