Google ক্লাউডের জন্য ABAP SDK ব্যবহার করে Cloud Pub/Sub-এ একটি ইভেন্ট প্রকাশ করুন

1. ভূমিকা

এই কোডল্যাবে, আমরা Google ক্লাউডের জন্য ABAP SDK ব্যবহার করে Google Cloud Pub/Sub API- এ একটি ইভেন্ট প্রকাশ করার পদক্ষেপগুলি তালিকাভুক্ত করেছি।

নিম্নলিখিত Google ক্লাউড পরিষেবাগুলি এই কোডল্যাবে ব্যবহার করা হয়:

  • পাব/সাব
  • মেঘের শেল

আপনি কি নির্মাণ করবেন

আপনি নিম্নলিখিত শিখবেন:

  • একটি Google ক্লাউড প্রকল্পে পাব/সাব সক্ষম করুন৷
  • একটি পাব/সাব বিষয় তৈরি করুন।
  • বার্তা প্রকাশ করুন.

2. আপনি শুরু করার আগে

6757b2fb50ddcc2d.png

  • আপনার অ্যাকাউন্টের জন্য প্রমাণীকরণ করতে নিম্নলিখিত কমান্ডগুলি চালান এবং ডিফল্ট প্রকল্পটিকে abap-sdk-poc এ সেট করুন। Zone us-west4-b উদাহরণ হিসেবে ব্যবহার করা হয়েছে। যদি প্রয়োজন হয়, অনুগ্রহ করে আপনার পছন্দের উপর ভিত্তি করে নিম্নলিখিত কমান্ডগুলিতে প্রকল্প এবং অঞ্চল পরিবর্তন করুন।
gcloud auth login
gcloud config set project abap-sdk-poc
gcloud config set compute/zone us-west4-b

3. ওভারভিউ

এই কোডল্যাবের সুযোগে একটি পাব/সাব পরিষেবার নিম্নলিখিত উপাদানগুলি জড়িত:

  • প্রকাশক (একজন প্রযোজকও বলা হয়): বার্তা তৈরি করে এবং একটি নির্দিষ্ট বিষয়ে মেসেজিং পরিষেবাতে পাঠায় (প্রকাশ করে)।
  • বার্তা: মেসেজিং পরিষেবার মাধ্যমে যে ডেটা স্থানান্তরিত হয়।
  • বিষয়: একটি নামযুক্ত সত্তা যা বার্তাগুলির একটি ফিড প্রতিনিধিত্ব করে৷

4f5676da8922467f.png

4. পাব/সাব পরিষেবা সেট আপ করুন৷

  1. প্রয়োজনীয় ভূমিকা সহ একটি পরিষেবা অ্যাকাউন্ট তৈরি করতে, ক্লাউড শেল টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:
gcloud iam service-accounts create abap-sdk-pubsub-tester --display-name="Service Account for PubSub"
  1. আপনার পরিষেবা অ্যাকাউন্টে Pub/Sub API সক্রিয় করতে ( abap-sdk-poc ), ক্লাউড শেল টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:
gcloud services enable pubsub.googleapis.com
  1. একটি বিষয় তৈরি করতে সক্ষম হওয়ার জন্য পরিষেবা অ্যাকাউন্টে IAM ভূমিকা pubsub.topics.create প্রদান করুন। ক্লাউড শেল টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:
gcloud endpoints services add-iam-policy-binding pubsub.googleapis.com \ --member='serviceAccount:abap-sdk-pubusb-tester@abap-sdk-poc.iam.gserviceaccount.com' \
--role='roles/roles/pubsub.topics.create'
  1. বিষয়ে একটি বার্তা প্রকাশ করতে সক্ষম হওয়ার জন্য পরিষেবা অ্যাকাউন্টে IAM ভূমিকা pubsub.topics.publish মঞ্জুর করুন৷ ক্লাউড শেল টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:
gcloud endpoints services add-iam-policy-binding pubsub.googleapis.com \ --member='serviceAccount:abap-sdk-pubusb-tester@abap-sdk-poc.iam.gserviceaccount.com' \
--role='roles/roles/pubsub.topics.publish'
  1. যাচাই করতে, ভূমিকা যোগ করা হয়েছে, IAM পৃষ্ঠায় যান। আপনি যে পরিষেবা অ্যাকাউন্টটি তৈরি করেছেন সেটিকে নির্ধারিত ভূমিকা সহ তালিকাভুক্ত করা উচিত।

5. ক্লায়েন্ট কী কনফিগার করুন

/GOOG/CLIENT_KEY টেবিলে কনফিগারেশন বজায় রাখতে, নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:

  1. SAP GUI-তে, লেনদেন কোড SPRO লিখুন।
  2. SAP রেফারেন্স IMG এ ক্লিক করুন।
  3. Google ক্লাউড > বেসিক সেটিংস > কনফিগার ক্লায়েন্ট কী-এর জন্য ABAP SDK-এ ক্লিক করুন।
  4. নতুন এন্ট্রি ক্লিক করুন.
  5. নিম্নলিখিত ক্ষেত্রের জন্য মান লিখুন:

মাঠ

বর্ণনা

গুগল ক্লাউড কী নাম

PUBSUB_DEMO

Google ক্লাউড পরিষেবা অ্যাকাউন্টের নাম

abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com

গুগল ক্লাউড স্কোপ

https://www.googleapis.com/auth/cloud-platform

Google ক্লাউড প্রকল্প শনাক্তকারী

abap-sdk-poc

অনুমোদন শ্রেণী

/GOOG/CL_AUTH_GOOGLE৷

অন্যান্য ক্ষেত্রগুলি ফাঁকা রাখুন

ec6b6f94bfa85533.png

6. একটি বিষয় তৈরি করুন

আপনি API স্টাব /GOOG/CL_PUBSUB_V1-এর CREATE_TOPICS পদ্ধতি ব্যবহার করে একটি বিষয় তৈরি করেন। পদ্ধতির স্বাক্ষর:

d40fde108ccf2853.png

  1. SAP GUI-তে, লেনদেন কোড SE38 লিখুন।
  2. ZPUBSUB_DEMO নামে একটি প্রতিবেদন তৈরি করুন।
  3. পপ-আপে যেটি খোলে, নীচে দেখানো হিসাবে বিশদ প্রদান করুন এবং সংরক্ষণ করুন ক্লিক করুন।

f9cbdabb6ca96fc4.png

  1. পরবর্তী পপ-আপে, হয় স্থানীয় অবজেক্ট নির্বাচন করুন বা উপযুক্ত হিসাবে একটি প্যাকেজ নাম দিন।
  2. ABAP সম্পাদকে, নিম্নলিখিত কোড যোগ করুন:
" Data Declaration
DATA:
  lo_client        TYPE REF TO /goog/cl_pubsub_v1.

TRY.
    " Open HTTP Connection
    CREATE OBJECT lo_client EXPORTING iv_key_name = 'PUBSUB_DEMO'.

    " Populate relevant parameters
    DATA(lv_p_projects_id) = CONV string( lo_client->gv_project_id ).
    DATA(lv_p_topics_id) = CONV string( 'PUBSUB_DEMO_TOPIC' ).

    " Call API method pubsub.topics.create
    lo_client->create_topics(
      EXPORTING
        iv_p_projects_id = lv_p_projects_id
        iv_p_topics_id   = lv_p_topics_id
      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) ).

    IF lo_client->is_success( lv_ret_code ) = abap_true.
      DATA(lv_msg) = 'Topic ' && ':' && lv_p_topics_id && ' was created!'.
      MESSAGE lv_msg TYPE 'I' .
    ELSE.
      MESSAGE lv_err_text TYPE 'E'.
    ENDIF.

    " Close HTTP Connection
    lo_client->close( ).

  CATCH /goog/cx_sdk INTO DATA(lo_exception).
    MESSAGE lo_exception->get_text( ) TYPE 'E'.
    RETURN.
ENDTRY.
  1. প্রতিবেদনটি সংরক্ষণ করুন এবং সক্রিয় করুন।
  2. রিপোর্ট চালান (F8)।

সফলভাবে সঞ্চালন করার সময় আপনাকে নীচে দেখানো হিসাবে রিপোর্ট আউটপুট দেখতে হবে:

16aa8a4c59d776d9.png

7. বিষয়টিতে বার্তা প্রকাশ করুন

টপিকটি প্রস্তুত হওয়ার সাথে সাথে, আমরা এখন ডেটা পাঠানোর উপর ফোকাস করতে পারি। পরবর্তী পদক্ষেপ হিসাবে, আসুন শিখি কিভাবে এই বিষয়ে বার্তা প্রকাশ করতে হয়। API স্টাব /GOOG/CL_PUBSUB_V1 এর PUBLISH_TOPICS পদ্ধতি ব্যবহার করে বিষয়ে বার্তা প্রকাশ করা হয়।

পদ্ধতির স্বাক্ষর:

459fe21ce68bd811.png

  1. SAP GUI-তে, লেনদেন কোড SE38 লিখুন।
  2. ZPUBSUB_DEMO_PUBLISH নামে একটি প্রতিবেদন তৈরি করুন।
  3. পপ-আপে যেটি খোলে, নীচে দেখানো হিসাবে বিশদ প্রদান করুন এবং সংরক্ষণ করুন ক্লিক করুন।

9a180c4e9a1e139.png

  1. পরবর্তী পপ-আপে, হয় স্থানীয় অবজেক্ট নির্বাচন করুন বা উপযুক্ত হিসাবে একটি প্যাকেজ নাম দিন।
  2. ABAP সম্পাদকে, নিম্নলিখিত কোড যোগ করুন:
" Data Declaration
DATA:
  lo_client        TYPE REF TO /goog/cl_pubsub_v1,
  ls_message       TYPE /goog/cl_pubsub_v1=>ty_025,
  ls_input         TYPE /goog/cl_pubsub_v1=>ty_023.

TRY.
    " Open HTTP Connection
    CREATE OBJECT lo_client EXPORTING iv_key_name = 'PUBSUB_DEMO'.

    " Populate relevant parameters
    DATA(lv_p_projects_id) = CONV string( lo_client->gv_project_id ).
    DATA(lv_p_topics_id) = CONV string( 'PUBSUB_DEMO_TOPIC' ).

    ls_message-data = cl_http_utility=>encode_base64( unencoded = ' This message was published to topic' ).
    APPEND ls_message TO ls_input-messages.

    " Call API method : pubsub.topics.publish
    " This method publishes the message(encoded in base64 format to the topic )
    lo_client->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)  ).

    IF lo_client->is_success( lv_ret_code ) = abap_true.
       DATA(lv_msg) = 'Message was published to topic '  && ': ' &&         lv_p_topics_id.
      MESSAGE lv_msg TYPE 'I' DISPLAY LIKE 'S'.

    ELSE.
      MESSAGE lv_err_text TYPE 'E'.
    ENDIF.

    " Close HTTP Connection
    lo_client->close( ).

  CATCH /goog/cx_sdk INTO DATA(lo_exception).
    MESSAGE lv_err_text TYPE 'E'.
    RETURN.
ENDTRY.
  1. প্রতিবেদনটি সংরক্ষণ করুন এবং সক্রিয় করুন।
  2. রিপোর্ট চালান (F8)।

সফলভাবে সঞ্চালন করার সময় আপনাকে নীচে দেখানো হিসাবে রিপোর্ট আউটপুট দেখতে হবে:

384125235efc104.png

8. অভিনন্দন

অভিনন্দন! আপনি Google ক্লাউডের জন্য ABAP SDK ব্যবহার করে Google ক্লাউড প্ল্যাটফর্মের Pub/Sub API-এ সফলভাবে একটি বার্তা প্রকাশ করেছেন।

আপনি এখন বিভিন্ন Google ক্লাউড পরিষেবা অ্যাক্সেস করার জন্য ABAP SDK ব্যবহার করে আপনার শেখার যাত্রা চালিয়ে যেতে নীচের কোডল্যাবের সাথে এগিয়ে যেতে পারেন।

  • Cloud Pub/Sub থেকে একটি ইভেন্ট পান
  • Chunking সহ ক্লাউড স্টোরেজ বালতিতে একটি ফাইল আপলোড করুন
  • ABAP থেকে Vertex AI টেস্ট-বাইসন কল করুন
  • . . .

9. পরিষ্কার করুন

আপনি যদি Google ক্লাউডের জন্য ABAP SDK-এর সাথে সম্পর্কিত অতিরিক্ত কোডল্যাবগুলি চালিয়ে যেতে না চান, তাহলে অনুগ্রহ করে পরিষ্কারের সাথে এগিয়ে যান৷

প্রকল্পটি মুছুন

  • Google ক্লাউড প্রকল্প মুছুন:
gcloud projects delete abap-sdk-poc

পৃথক সম্পদ মুছুন

  1. গণনা উদাহরণ মুছুন:
gcloud compute instances delete abap-trial-docker
  1. ফায়ারওয়াল নিয়ম মুছুন:
gcloud compute firewall-rules delete sapmachine
  1. পরিষেবা অ্যাকাউন্ট মুছুন:
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com