このクイックスタートでは、ABAP SDK for Google Cloud の SAP BTP エディションで Pub/Sub API を使用し、「Hello World!」メッセージを Pub/Sub トピックにパブリッシュするプログラムの作成方法について説明します。
始める前に
このクイックスタートを実行する前に、自身または管理者によって次の事前準備が完了していることを確認してください。
Google Cloud アカウントとプロジェクトがある。
プロジェクトで課金が有効になっている。プロジェクトに対して課金が有効になっていることを確認する方法をご覧ください。
SAP BTP エディションの ABAP SDK for Google Cloud がインストールされ、構成されている。ABAP SDK for Google Cloud の SAP BTP エディションをインストールして構成する方法をご覧ください。
Google Cloud APIs にアクセスするための認証が設定されている。認証の設定方法をご覧ください。
SAP BTP、ABAP 環境にアクセスできる。
最新の Eclipse プラットフォームに最新の ABAP Development Tools(ADT)をダウンロードしてインストールしている。
ABAP Cloud プロジェクトが作成されている。
サービス アカウントに IAM ロール
roles/pubsub.publisher
を付与する。Google Cloud プロジェクトで Pub/Sub API が有効になっていることを確認する。
Pub/Sub トピック
SAMPLE_TOPIC_01
を作成し、pull サブスクリプションSAMPLE_SUB_TOPIC_01
を追加する。詳細については、トピックの作成とサブスクリプションを作成するをご覧ください。
Pub/Sub トピックにメッセージをパブリッシュする ABAP クラスを作成する
パッケージを作成します。
- ADT で、Project Explorer に移動します。
- パッケージ
ZLOCAL
を右クリックし、[New] > [ABAP Package] を選択します。 パッケージの次の詳細情報を入力します。
- Name: 「
ZABAPSDK_TEST
」と入力します。 - Description: 「
ABAP SDK Test Package
」と入力します。
- Name: 「
[次へ] をクリックします。
[Select a Transport Request] ダイアログで、[Create a new request] チェックボックスをオンにします。
転送リクエストの説明を入力します。
[完了] をクリックします。
Pub/Sub API を呼び出す ABAP クラスを作成します。
- ABAP パッケージを右クリックし、[New] > [ABAP Class] を選択します。
ABAP クラスの次の詳細情報を入力します。
- Name: 「
ZGOOG_CL_QS_PUBSUB
」と入力します。 - Description: 「
Quick start for Pub/Sub API
」と入力します。
- Name: 「
[次へ] をクリックします。
トランスポート リクエストを選択し、[完了] をクリックします。
コードエディタで、デフォルトのコードを次のコード スニペットに置き換えます。
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.
DEMO_PUBSUB
はクライアント キー名に置き換えます。変更を保存して有効にします。
アプリケーションを実行します。
- ABAP クラス
ZGOOG_CL_QS_PUBSUB
を選択します。 - [Run] > [Run As] > [ABAP Application (Console)] をクリックします。または、
F9
キーを押します。
- ABAP クラス
結果を検証するには、次の操作を行います。
Google Cloud コンソールで、[Pub/Sub] に移動します。
サブスクリプション
SAMPLE_SUB_TOPIC_01
を選択し、[メッセージ] タブに移動します。pull 機能を使用して、「Hello World!」メッセージがトピックにパブリッシュされているかどうかを確認します。
次のステップ
- ABAP SDK for Google Cloud の SAP BTP エディションによるアプリケーション開発ガイドを確認する。
- Cloud フォーラムのコミュニティで ABAP SDK for Google Cloud について質問したり、ディスカッションに参加する。