Memublikasikan pesan ke Google Cloud Pub/Sub

Panduan memulai ini menunjukkan cara membuat program yang memublikasikan "Halo Dunia!" ke topik Pub/Sub menggunakan Pub/Sub API.

Sebelum memulai

Sebelum menjalankan panduan memulai ini, pastikan Anda atau administrator Anda telah memenuhi prasyarat berikut:

  • Autentikasi untuk mengakses Google Cloud API sudah disiapkan. Lihat cara menyiapkan autentikasi.

  • Memberikan peran IAM roles/pubsub.publisher kepada akun layanan.

  • Pastikan Pub/Sub API diaktifkan di project Google Cloud Anda.

    Buka koleksi API

  • Buat topik Pub/Sub SAMPLE_TOPIC_01 dan tambahkan langganan pull SAMPLE_SUB_TOPIC_01 ke topik yang sama. Untuk mengetahui informasi selengkapnya, lihat Membuat topik dan Membuat langganan.

Buat program untuk memublikasikan pesan ke Google Cloud

  1. Dalam sistem SAP, buat program yang dapat dieksekusi di namespace kustom Anda (misalnya, Z atau Y) menggunakan transaksi SE38.

    1. Di SAP GUI, masukkan kode transaksi SE38.

    2. Di kolom Program, masukkan nama program, misalnya, ZDEMO_PUBSUB.

    3. Klik Buat.

    4. Tentukan atribut program:

      1. Di kolom Title, masukkan judul program Anda, misalnya, Publish messages to a Pub/Sub topic.

      2. Di kolom Type, pilih Executable Program.

      3. Klik Simpan.

    5. Simpan program sebagai Local Object.

    6. Di ABAP Editor, tambahkan kode berikut:

      **********************************************************************
      *  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.
      

      Ganti DEMO_PUBSUB dengan nama kunci klien.

  2. Jalankan aplikasi Anda di SE38.

  3. Untuk memvalidasi hasilnya, ikuti langkah-langkah berikut:

    1. Di konsol Google Cloud, buka Pub/Sub.

    2. Pilih langganan SAMPLE_SUB_TOPIC_01, lalu buka tab Pesan.

    3. Gunakan fitur PULL untuk memeriksa apakah pesan "Hello World!" telah dipublikasikan ke topik.

Langkah selanjutnya