Google Chat অ্যাপ ডিবাগ করুন

একজন গুগল চ্যাট অ্যাপস ডেভেলপার হিসেবে আপনাকে পরিবর্তনগুলি পরীক্ষা করতে বা জটিল সমস্যা সমাধানের জন্য কোড ডিবাগ করতে হতে পারে। আপনার অ্যাপের আর্কিটেকচার, অ্যাপটি কী করে, আপনার অ্যাপটি কীভাবে স্থাপন করা হয় এবং আপনার পছন্দের উপর নির্ভর করে চ্যাট অ্যাপগুলি ডিবাগ করা বিভিন্ন উপায়ে করা যেতে পারে।

এই পৃষ্ঠায় ব্যাখ্যা করা হয়েছে কিভাবে ngrok ব্যবহার করে একটি HTTP চ্যাট অ্যাপ ডিবাগ করতে হয়, যা একটি ইউনিফাইড ইনগ্রেস প্ল্যাটফর্ম যা আপনি স্থানীয় ডেভেলপমেন্ট পরিবেশ পরীক্ষা করতে ব্যবহার করতে পারেন। এই নির্দেশিকায়, আপনি স্থানীয় পরিবেশে কোড পরিবর্তন পরীক্ষা করবেন এবং দূরবর্তী পরিবেশে সমস্যা সমাধান করবেন।

স্থানীয় উন্নয়ন পরিবেশ থেকে ডিবাগ

এই বিভাগে, আপনি আপনার স্থানীয় পরিবেশে কার্যকর হওয়া আপনার চ্যাট অ্যাপের সাথে ইন্টারঅ্যাক্ট করেন।

স্থানীয় উন্নয়ন পরিবেশ থেকে ডিবাগ

চিত্র ১. স্থানীয় উন্নয়ন পরিবেশে ডিবাগ।

কর্মশালা

নোড.জেএস

পাইথন

জাভা

পূর্বশর্ত

নোড.জেএস

  • আপনার স্থানীয় পরিবেশে node এবং npm সর্বশেষ সংস্করণ ইনস্টল করা হয়েছে
  • আপনার স্থানীয় পরিবেশে ইনস্টল করা nodemon সর্বশেষ সংস্করণ, এটি স্বয়ংক্রিয়ভাবে পুনরায় লোড করার উদ্দেশ্যে ব্যবহৃত হয়:

    npm install -g nodemon
  • একটি HTTP চ্যাট অ্যাপ যা মেসেজিংয়ের জন্য কনফিগার করা আছে। আপনি Quickstart গাইডের Prerequisites , Set up the environment এবং Publish the app to Google Chat বিভাগগুলি অনুসরণ করতে পারেন। পার্থক্য হল আপনাকে অ্যাপের নাম Debug App এবং HTTP endpoint URL http://example.com এর মতো যেকোনো কিছুতে সেট করতে হবে।

  • আপনার স্থানীয় পরিবেশে একটি IDE সেট আপ করা হয়েছে যা ডিবাগ করতে পারে। চিত্রের উদ্দেশ্যে আমরা এই নির্দেশিকায় Visual Studio Code IDE এবং এর ডিফল্ট ডিবাগিং বৈশিষ্ট্যগুলি ব্যবহার করি।

  • আপনার স্থানীয় পরিবেশে Git ইনস্টল করা হয়েছে

  • একটি ngrok অ্যাকাউন্ট।

পাইথন

  • আপনার স্থানীয় পরিবেশে python3 এর সর্বশেষ সংস্করণ ইনস্টল করা হয়েছে
  • আপনার স্থানীয় পরিবেশে ইনস্টল করা pip এবং virtualenv এর সর্বশেষ সংস্করণ, এগুলি যথাক্রমে Python প্যাকেজ এবং ভার্চুয়াল পরিবেশ পরিচালনা করতে ব্যবহৃত হয়।
  • একটি HTTP চ্যাট অ্যাপ যা মেসেজিংয়ের জন্য কনফিগার করা আছে। আপনি Quickstart গাইডের Prerequisites , Set up the environment এবং Publish the app to Google Chat বিভাগগুলি অনুসরণ করতে পারেন। পার্থক্য হল আপনাকে অ্যাপের নাম Debug App এবং HTTP endpoint URL http://example.com এর মতো যেকোনো কিছুতে সেট করতে হবে।
  • আপনার স্থানীয় পরিবেশে একটি IDE সেট আপ করা হয়েছে যা ডিবাগ করতে পারে। চিত্রের উদ্দেশ্যে আমরা এই নির্দেশিকায় Visual Studio Code IDE এবং এর ডিফল্ট ডিবাগিং বৈশিষ্ট্যগুলি ব্যবহার করি।
  • আপনার স্থানীয় পরিবেশে Git ইনস্টল করা হয়েছে
  • একটি ngrok অ্যাকাউন্ট।
  • আপনার স্থানীয় পরিবেশে gcloud এর সর্বশেষ সংস্করণ ইনস্টল এবং আরম্ভ করা হয়েছে

জাভা

  • আপনার স্থানীয় পরিবেশে ইনস্টল করা Java SE 11's JDK এর সর্বশেষ স্থিতিশীল সংস্করণ।
  • আপনার স্থানীয় পরিবেশে ইনস্টল করা Apache Maven সর্বশেষ সংস্করণ, এটি জাভা প্রকল্প পরিচালনা করতে ব্যবহৃত হয়।
  • একটি HTTP চ্যাট অ্যাপ যা মেসেজিংয়ের জন্য কনফিগার করা আছে। আপনি Quickstart গাইডের Prerequisites , Set up the environment এবং Publish the app to Google Chat বিভাগগুলি অনুসরণ করতে পারেন। পার্থক্য হল আপনাকে অ্যাপের নাম Debug App এবং HTTP endpoint URL http://example.com এর মতো যেকোনো কিছুতে সেট করতে হবে।
  • আপনার স্থানীয় পরিবেশে একটি IDE সেট আপ করা হয়েছে যা ডিবাগ করতে পারে। চিত্রের উদ্দেশ্যে আমরা এই নির্দেশিকায় Visual Studio Code IDE এবং এর ডিফল্ট ডিবাগিং বৈশিষ্ট্যগুলি ব্যবহার করি।
  • আপনার স্থানীয় পরিবেশে Git ইনস্টল করা হয়েছে
  • একটি ngrok অ্যাকাউন্ট।
  • আপনার স্থানীয় পরিবেশে gcloud এর সর্বশেষ সংস্করণ ইনস্টল এবং আরম্ভ করা হয়েছে

লোকালহোস্ট পরিষেবাটি সর্বজনীনভাবে উপলব্ধ করুন

আপনার স্থানীয় পরিবেশকে ইন্টারনেটের সাথে সংযুক্ত করতে হবে যাতে চ্যাট অ্যাপটি এটি অ্যাক্সেস করতে পারে। ngrok অ্যাপ্লিকেশনটি একটি পাবলিক URL-এ করা HTTP অনুরোধগুলিকে আপনার স্থানীয় পরিবেশে পুনঃনির্দেশিত করতে ব্যবহৃত হয়।

  1. আপনার স্থানীয় পরিবেশের একটি ব্রাউজারে, আপনার ngrok অ্যাকাউন্টে সাইন ইন করুন।
  2. অ্যাপ্লিকেশনটি ইনস্টল করুন এবং আপনার স্থানীয় পরিবেশে আপনার authtoken সেট আপ করুন।
  3. আপনার ngrok অ্যাকাউন্টে একটি স্ট্যাটিক ডোমেইন তৈরি করুন , এই নির্দেশিকার নির্দেশাবলীতে এটি NGROK_STATIC_DOMAIN হিসাবে উল্লেখ করা হয়েছে।

চ্যাট অ্যাপ কনফিগার করুন

আপনার স্ট্যাটিক ডোমেনে সমস্ত HTTP অনুরোধ পাঠানোর জন্য Chat অ্যাপটিকে কনফিগার করুন।

  1. গুগল ক্লাউড কনসোলে, গুগল চ্যাট এপিআই পৃষ্ঠাটি খুলুন:

    Google Chat API পৃষ্ঠায় যান

  2. কনফিগারেশন ট্যাবে ক্লিক করুন।

  3. ইন্টারেক্টিভ বৈশিষ্ট্য > সংযোগ সেটিংসে যান এবং টেক্সট ফিল্ড HTTP এন্ডপয়েন্ট URL এর মান এতে সেট করুন:

    https://NGROK_STATIC_DOMAIN
    

    আপনার ngrok অ্যাকাউন্টে NGROK_STATIC_DOMAIN এর পরিবর্তে স্ট্যাটিক ডোমেইনটি ব্যবহার করুন।

  4. সংরক্ষণ করুন ক্লিক করুন।

চ্যাট অ্যাপটি তার সমস্ত HTTP অনুরোধগুলি স্ট্যাটিক ডোমেনে পাঠায়

চিত্র ২. চ্যাট অ্যাপটি তার সমস্ত HTTP অনুরোধ স্ট্যাটিক ডোমেনে পাঠায়। ngrok পাবলিক সার্ভিস চ্যাট অ্যাপ এবং স্থানীয়ভাবে কার্যকর হওয়া অ্যাপ্লিকেশন কোডের মধ্যে একটি সেতু হিসেবে কাজ করে।

চ্যাট অ্যাপটি পরীক্ষা করুন

আপনি স্থানীয়ভাবে আপনার চ্যাট অ্যাপটি স্থাপন, কনফিগার, পরীক্ষা, ডিবাগ এবং স্বয়ংক্রিয়ভাবে পুনরায় লোড করতে পারেন।

নোড.জেএস

  1. GitHub থেকে আপনার স্থানীয় পরিবেশে googleworkspace/google-chat-samples সংগ্রহস্থলটি ক্লোন করুন, এতে কার্যকর করার জন্য অ্যাপ্লিকেশনটির কোড রয়েছে:

    git clone https://github.com/googleworkspace/google-chat-samples.git
  2. আপনার স্থানীয় পরিবেশে ইনস্টল করা Visual Studio Code IDE থেকে, নিম্নলিখিতগুলি করুন:

    1. একটি নতুন উইন্ডোতে, google-chat-samples/node/basic-app ফোল্ডারটি খুলুন।
    2. package.json ফাইলে দুটি স্ক্রিপ্ট যোগ করে স্বয়ংক্রিয়-পুনঃলোড ডিবাগের জন্য অ্যাপ্লিকেশনটি কনফিগার করুন:

      {
          ...
          "scripts": {
              ...
              "debug": "node --inspect index.js",
              "debug-watch": "nodemon --watch ./ --exec npm run debug"
          }
          ...
      }
      
    3. রুট ডিরেক্টরি থেকে, অ্যাপ্লিকেশনটি ইনস্টল করুন:

      npm install
    4. রুট ডিরেক্টরিতে .vscode/launch.json ফাইলটি তৈরি করে Debug Watch নামে একটি লঞ্চ তৈরি এবং কনফিগার করুন যা স্ক্রিপ্ট debug-watch ট্রিগার করে:

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "node",
              "request": "launch",
              "name": "Debug Watch",
              "cwd": "${workspaceRoot}",
              "runtimeExecutable": "npm",
              "runtimeArgs": ["run-script", "debug-watch"]
          }]
      }
      
    5. index.js ফাইলে HTTP অনুরোধ প্রক্রিয়াকরণকে বিরতি দেয় এমন একটি ব্রেকপয়েন্ট যোগ করুন এবং পূর্বে যোগ করা Debug Watch কনফিগারেশন ব্যবহার করে চালানো এবং ডিবাগ করা শুরু করুন । অ্যাপ্লিকেশনটি এখন 9000 পোর্টে HTTP অনুরোধগুলি চলছে এবং শুনছে।

      অ্যাপ্লিকেশনটি `9000` পোর্টে HTTP অনুরোধগুলি চলছে এবং শুনছে।

      চিত্র ৩। অ্যাপ্লিকেশনটি 9000 পোর্টে HTTP অনুরোধগুলি চলছে এবং শুনছে।

  3. আপনার স্থানীয় পরিবেশে ngrok অ্যাপ্লিকেশনটি চালু করুন:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

    আপনার ngrok অ্যাকাউন্টের NGROK_STATIC_DOMAIN এর পরিবর্তে স্ট্যাটিক ডোমেইন লিখুন। এখন সমস্ত অনুরোধ আপনার স্থানীয় পরিবেশ এবং অ্যাপ্লিকেশন দ্বারা ব্যবহৃত পোর্টে পুনঃনির্দেশিত হবে।

    `ngrok` সার্ভার চলমান এবং পুনঃনির্দেশিত টার্মিনাল

    চিত্র ৪। ngrok সার্ভার চলমান এবং পুনঃনির্দেশিত টার্মিনাল।

  4. ngrok অ্যাপ্লিকেশনটি আপনার লোকালহোস্টে একটি ওয়েব ইন্টারফেসও চালু করে, আপনি এটি একটি ব্রাউজারে খুলে সমস্ত কার্যকলাপ পর্যবেক্ষণ করতে পারেন।

    `ngrok` অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেসটি কোনও HTTP অনুরোধ দেখায় না

    চিত্র ৫। ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেসটিতে কোনও HTTP অনুরোধ দেখানো হচ্ছে না।

  5. আপনার চ্যাট অ্যাপটিকে সরাসরি বার্তা পাঠিয়ে পরীক্ষা করুন:

    • গুগল চ্যাট খুলুন।

      গুগল চ্যাটে যান

    • নতুন চ্যাট ক্লিক করুন।

    • ডায়ালগে, আপনার চ্যাট অ্যাপের নাম লিখুন।

    • অনুসন্ধানের ফলাফলে, আপনার চ্যাট অ্যাপটি খুঁজুন, যোগ করুন > চ্যাট ক্লিক করুন।

    • ডাইরেক্ট মেসেজ স্পেসে, Hello টাইপ করুন এবং enter টিপুন। আপনার চ্যাট অ্যাপটি সক্রিয়ভাবে ডিবাগ করা হচ্ছে বলে উত্তর দিচ্ছে না।

  6. আপনার স্থানীয় পরিবেশে Visual Studio Code , আপনি দেখতে পাবেন যে সেট করা ব্রেকপয়েন্টে এক্সিকিউশন থামানো হয়েছে।

    যে ব্রেকপয়েন্টটি সেট করা হয়েছিল সেখানে এক্সিকিউশন থামানো হয়।

    চিত্র ৬। সেট করা ব্রেকপয়েন্টে এক্সিকিউশন থামানো হয়েছে।

  7. গুগল চ্যাটের সময় শেষ হওয়ার আগে যখন আপনি Visual Studio Code ডিবাগার থেকে এক্সিকিউশন পুনরায় শুরু করেন, তখন চ্যাট অ্যাপটি Your message : Hello

  8. আপনার স্থানীয় পরিবেশে ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে আপনি HTTP অনুরোধ এবং প্রতিক্রিয়া লগগুলি পরীক্ষা করতে পারেন।

    `ngrok` অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে HTTP অনুরোধ

    চিত্র ৭। ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে HTTP অনুরোধ।

  9. অ্যাপ্লিকেশন আচরণ পরিবর্তন করতে, index.json এর Here was your message " ইনলাইন 35 দিয়ে Your message প্রতিস্থাপন করুন। যখন আপনি ফাইলটি সংরক্ষণ করেন, তখন nodemon স্বয়ংক্রিয়ভাবে আপডেট করা সোর্স কোড সহ অ্যাপ্লিকেশনটি পুনরায় লোড করে এবং Visual Studio Code ডিবাগ মোডে থাকে।

    অ্যাপ্লিকেশনটি চলমান এবং কোড পরিবর্তনের সাথে পোর্ট `9000`-এ HTTP অনুরোধগুলি শুনছে।

    চিত্র ৮। কোড পরিবর্তন লোড হওয়ার সাথে সাথে অ্যাপ্লিকেশনটি 9000 পোর্টে HTTP অনুরোধগুলি চলছে এবং শুনছে।

  10. এবার, দ্বিতীয়বার Hello বার্তা পাঠানোর পরিবর্তে, আপনি আপনার স্থানীয় পরিবেশে ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেসে লগ করা শেষ HTTP অনুরোধটি নির্বাচন করতে পারেন এবং Replay ক্লিক করতে পারেন। গতবারের মতো, আপনার চ্যাট অ্যাপটি উত্তর দেয় না কারণ এটি সক্রিয়ভাবে ডিবাগ করা হচ্ছে।

  11. যখন আপনি Visual Studio Code ডিবাগার থেকে এক্সিকিউশন পুনরায় শুরু করবেন, তখন আপনি আপনার স্থানীয় পরিবেশে ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে দেখতে পাবেন যে অ্যাপ্লিকেশনটি বার্তাটির আপডেটেড সংস্করণের সাথে একটি প্রতিক্রিয়া তৈরি করে Here was your message : Hello

পাইথন

  1. অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রের জন্য ব্যবহার করার জন্য নতুন ব্যবহারকারী শংসাপত্র অর্জন করুন:

    gcloud config set project PROJECT_ID
    gcloud auth application-default login

    অ্যাপের ক্লাউড প্রোজেক্টের জন্য PROJECT_ID এর পরিবর্তে প্রোজেক্ট আইডি দিন।

  2. GitHub থেকে আপনার স্থানীয় পরিবেশে googleworkspace/google-chat-samples সংগ্রহস্থলটি ক্লোন করুন, এতে অ্যাপ্লিকেশন কোড রয়েছে:

    git clone https://github.com/googleworkspace/google-chat-samples.git
  3. আপনার স্থানীয় পরিবেশে ইনস্টল করা Visual Studio Code IDE থেকে, নিম্নলিখিতগুলি করুন:

    1. একটি নতুন উইন্ডোতে, google-chat-samples/python/avatar-app ফোল্ডারটি খুলুন।
    2. Python env জন্য একটি নতুন ভার্চুয়াল পরিবেশ তৈরি করুন এবং এটি সক্রিয় করুন:

      virtualenv env
      source env/bin/activate
    3. ভার্চুয়াল পরিবেশে pip ব্যবহার করে সমস্ত প্রকল্প নির্ভরতা ইনস্টল করুন:

      pip install -r requirements.txt
    4. রুট ডিরেক্টরিতে .vscode/launch.json ফাইলটি তৈরি করুন এবং Debug Watch নামে একটি লঞ্চ কনফিগার করুন যা ভার্চুয়াল পরিবেশে ডিবাগ মোডে 9000 পোর্টে functions-framework মডিউল থেকে অ্যাপ্লিকেশনটি ট্রিগার করে env :

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "python",
              "request": "launch",
              "name": "Debug Watch",
              "python": "${workspaceFolder}/env/bin/python3",
              "module": "functions_framework",
              "args": [
                  "--target", "avatar_app",
                  "--port", "9000",
                  "--debug"
              ]
          }]
      }
      
    5. main.py ফাইলে HTTP অনুরোধ প্রক্রিয়াকরণকে বিরতি দেয় এমন একটি ব্রেকপয়েন্ট যোগ করুন এবং পূর্বে যোগ করা Debug Watch কনফিগারেশন ব্যবহার করে রানিং এবং ডিবাগিং শুরু করুন । অ্যাপ্লিকেশনটি এখন 9000 পোর্টে HTTP অনুরোধগুলি চলছে এবং শুনছে।

      অ্যাপ্লিকেশনটি `9000` পোর্টে HTTP অনুরোধগুলি চলছে এবং শুনছে।

      চিত্র ৩। অ্যাপ্লিকেশনটি 9000 পোর্টে HTTP অনুরোধগুলি চলছে এবং শুনছে।

  4. আপনার স্থানীয় পরিবেশে ngrok অ্যাপ্লিকেশনটি চালু করুন:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

    আপনার ngrok অ্যাকাউন্টের NGROK_STATIC_DOMAIN এর পরিবর্তে স্ট্যাটিক ডোমেইন লিখুন। এখন সমস্ত অনুরোধ আপনার স্থানীয় পরিবেশ এবং অ্যাপ্লিকেশন দ্বারা ব্যবহৃত পোর্টে পুনঃনির্দেশিত হবে।

    `ngrok` সার্ভার চলমান এবং পুনঃনির্দেশিত টার্মিনাল

    চিত্র ৪। ngrok সার্ভার চলমান এবং পুনঃনির্দেশিত টার্মিনাল।

  5. ngrok অ্যাপ্লিকেশনটি আপনার লোকালহোস্টে একটি ওয়েব ইন্টারফেসও চালু করে, আপনি এটি একটি ব্রাউজারে খুলে সমস্ত কার্যকলাপ পর্যবেক্ষণ করতে পারেন।

    `ngrok` অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেসটি কোনও HTTP অনুরোধ দেখায় না

    চিত্র ৫। ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেসটিতে কোনও HTTP অনুরোধ দেখানো হচ্ছে না।

  6. আপনার চ্যাট অ্যাপটিকে সরাসরি বার্তা পাঠিয়ে পরীক্ষা করুন:

    • গুগল চ্যাট খুলুন।

      গুগল চ্যাটে যান

    • নতুন চ্যাট ক্লিক করুন।

    • ডায়ালগে, আপনার চ্যাট অ্যাপের নাম লিখুন।

    • অনুসন্ধানের ফলাফলে, আপনার চ্যাট অ্যাপটি খুঁজুন, যোগ করুন > চ্যাট ক্লিক করুন।

    • ডাইরেক্ট মেসেজ স্পেসে, Hey! টাইপ করুন এবং enter টিপুন। আপনার চ্যাট অ্যাপটি সক্রিয়ভাবে ডিবাগ করা হচ্ছে বলে উত্তর দিচ্ছে না।

  7. আপনার স্থানীয় পরিবেশে Visual Studio Code , আপনি দেখতে পাবেন যে সেট করা ব্রেকপয়েন্টে এক্সিকিউশন থামানো হয়েছে।

    যে ব্রেকপয়েন্টটি সেট করা হয়েছিল সেখানে এক্সিকিউশন থামানো হয়।

    চিত্র ৬। সেট করা ব্রেকপয়েন্টে এক্সিকিউশন থামানো হয়েছে।

  8. গুগল চ্যাটের সময় শেষ হওয়ার আগে যখন আপনি Visual Studio Code ডিবাগার থেকে এক্সিকিউশন পুনরায় শুরু করেন, তখন চ্যাট অ্যাপটি বার্তায় আপনার নাম এবং অবতারের ছবি সহ উত্তর দেয়।

  9. আপনার স্থানীয় পরিবেশে ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে আপনি HTTP অনুরোধ এবং প্রতিক্রিয়া লগগুলি পরীক্ষা করতে পারেন।

    `ngrok` অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে HTTP অনুরোধ

    চিত্র ৭। ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে HTTP অনুরোধ।

  10. অ্যাপ্লিকেশন আচরণ পরিবর্তন করতে, main.py ফাইলের Hello Hey ইনলাইন 51 দিয়ে প্রতিস্থাপন করুন। যখন আপনি ফাইলটি সংরক্ষণ করেন, তখন Visual Studio Code স্বয়ংক্রিয়ভাবে আপডেট করা সোর্স কোড সহ অ্যাপ্লিকেশনটি পুনরায় লোড করে এবং ডিবাগ মোডে থাকে।

    অ্যাপ্লিকেশনটি চলমান এবং কোড পরিবর্তনের সাথে পোর্ট `9000`-এ HTTP অনুরোধগুলি শুনছে।

    চিত্র ৮। কোড পরিবর্তন লোড হওয়ার সাথে সাথে অ্যাপ্লিকেশনটি 9000 পোর্টে HTTP অনুরোধগুলি চলছে এবং শুনছে।

  11. এবার, দ্বিতীয়বার " Hey! " মেসেজ পাঠানোর পরিবর্তে, আপনি আপনার স্থানীয় পরিবেশে ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেসে লগ করা শেষ HTTP অনুরোধটি নির্বাচন করতে পারেন এবং Replay ক্লিক করতে পারেন। গতবারের মতো, আপনার চ্যাট অ্যাপটি উত্তর দিচ্ছে না কারণ এটি সক্রিয়ভাবে ডিবাগ করা হচ্ছে।

  12. যখন আপনি Visual Studio Code ডিবাগার থেকে এক্সিকিউশন পুনরায় শুরু করেন, তখন আপনি আপনার স্থানীয় পরিবেশে ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে দেখতে পাবেন যে অ্যাপ্লিকেশনটি বার্তার আপডেট করা সংস্করণের সাথে একটি প্রতিক্রিয়া তৈরি করে।

জাভা

  1. অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রের জন্য ব্যবহার করার জন্য নতুন ব্যবহারকারী শংসাপত্র অর্জন করুন:

    gcloud config set project PROJECT_ID
    gcloud auth application-default login

    অ্যাপের ক্লাউড প্রোজেক্টের জন্য PROJECT_ID এর পরিবর্তে প্রোজেক্ট আইডি দিন।

  2. আপনার স্থানীয় পরিবেশে GitHub থেকে googleworkspace/google-chat-samples সংগ্রহস্থলটি ক্লোন করুন, এতে অ্যাপ্লিকেশন কোড রয়েছে:

    git clone https://github.com/googleworkspace/google-chat-samples.git
  3. আপনার স্থানীয় পরিবেশে ইনস্টল করা Visual Studio Code IDE থেকে, নিম্নলিখিতগুলি করুন:

    1. একটি নতুন উইন্ডোতে, google-chat-samples/java/avatar-app ফোল্ডারটি খুলুন।
    2. pom.xml ফাইলে Google Cloud Functions Framework build plugin function-maven-plugin যোগ করে Maven প্রকল্পটি স্থানীয়ভাবে পোর্ট 9000 এ অ্যাপ্লিকেশন App চালানোর জন্য কনফিগার করুন:

      ...
      <plugin>
          <groupId>com.google.cloud.functions</groupId>
          <artifactId>function-maven-plugin</artifactId>
          <version>0.11.0</version>
          <configuration>
              <functionTarget>App</functionTarget>
              <port>9000</port>
          </configuration>
      </plugin>
      ...
      
    3. আপনি এখন এটি স্থানীয়ভাবে ডিবাগ মোডে চালু করতে পারেন:

      mvnDebug function:run
      Preparing to execute Maven in debug mode
      Listening for transport dt_socket at address: 8000
    4. রুট ডিরেক্টরিতে .vscode/launch.json ফাইলটি তৈরি করুন এবং Remote Debug Watch নামে একটি লঞ্চ কনফিগার করুন যা পূর্বে 8000 পোর্ট দিয়ে চালু হওয়া অ্যাপ্লিকেশনের সাথে সংযুক্ত থাকে:

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "java",
              "request": "attach",
              "name": "Remote Debug Watch",
              "projectName": "http-function",
              "hostName": "localhost",
              "port": 8000
          }]
      }
      
    5. App.java ফাইলে HTTP অনুরোধ প্রক্রিয়াকরণকে বিরতি দেয় এমন একটি ব্রেকপয়েন্ট যোগ করুন এবং পূর্বে যোগ করা Remote Debug Watch কনফিগারেশন ব্যবহার করে সংযুক্তি এবং ডিবাগিং শুরু করুন । অ্যাপ্লিকেশনটি এখন 9000 পোর্টে HTTP অনুরোধগুলি চলছে এবং শুনছে।

      অ্যাপ্লিকেশনটি `9000` পোর্টে HTTP অনুরোধগুলি চলছে এবং শুনছে।

      চিত্র ৩। অ্যাপ্লিকেশনটি 9000 পোর্টে HTTP অনুরোধগুলি চলছে এবং শুনছে।

  4. আপনার স্থানীয় পরিবেশে ngrok অ্যাপ্লিকেশনটি চালু করুন:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

    আপনার ngrok অ্যাকাউন্টের NGROK_STATIC_DOMAIN এর পরিবর্তে স্ট্যাটিক ডোমেইন লিখুন। এখন সমস্ত অনুরোধ আপনার স্থানীয় পরিবেশ এবং অ্যাপ্লিকেশন দ্বারা ব্যবহৃত পোর্টে পুনঃনির্দেশিত হবে।

    `ngrok` সার্ভার চলমান এবং পুনঃনির্দেশিত টার্মিনাল

    চিত্র ৪। ngrok সার্ভার চলমান এবং পুনঃনির্দেশিত টার্মিনাল।

  5. ngrok অ্যাপ্লিকেশনটি আপনার লোকালহোস্টে একটি ওয়েব ইন্টারফেসও চালু করে, আপনি এটি একটি ব্রাউজারে খুলে সমস্ত কার্যকলাপ পর্যবেক্ষণ করতে পারেন।

    `ngrok` অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেসটি কোনও HTTP অনুরোধ দেখায় না

    চিত্র ৫। ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেসটিতে কোনও HTTP অনুরোধ দেখানো হচ্ছে না।

  6. আপনার চ্যাট অ্যাপটিকে সরাসরি বার্তা পাঠিয়ে পরীক্ষা করুন:

    • গুগল চ্যাট খুলুন।

      গুগল চ্যাটে যান

    • নতুন চ্যাট ক্লিক করুন।

    • ডায়ালগে, আপনার চ্যাট অ্যাপের নাম লিখুন।

    • অনুসন্ধানের ফলাফলে, আপনার চ্যাট অ্যাপটি খুঁজুন, যোগ করুন > চ্যাট ক্লিক করুন।

    • ডাইরেক্ট মেসেজ স্পেসে, Hey! টাইপ করুন এবং enter টিপুন। আপনার চ্যাট অ্যাপটি সক্রিয়ভাবে ডিবাগ করা হচ্ছে বলে উত্তর দিচ্ছে না।

  7. আপনার স্থানীয় পরিবেশে Visual Studio Code , আপনি দেখতে পাবেন যে সেট করা ব্রেকপয়েন্টে এক্সিকিউশন থামানো হয়েছে।

    যে ব্রেকপয়েন্টটি সেট করা হয়েছিল সেখানে এক্সিকিউশন থামানো হয়।

    চিত্র ৬। সেট করা ব্রেকপয়েন্টে এক্সিকিউশন থামানো হয়েছে।

  8. গুগল চ্যাটের সময় শেষ হওয়ার আগে যখন আপনি Visual Studio Code ডিবাগার থেকে এক্সিকিউশন পুনরায় শুরু করেন, তখন চ্যাট অ্যাপটি বার্তায় আপনার নাম এবং অবতারের ছবি সহ উত্তর দেয়।

  9. আপনার স্থানীয় পরিবেশে ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে আপনি HTTP অনুরোধ এবং প্রতিক্রিয়া লগগুলি পরীক্ষা করতে পারেন।

    `ngrok` অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে HTTP অনুরোধ

    চিত্র ৭। ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে HTTP অনুরোধ।

  10. অ্যাপ্লিকেশন আচরণ পরিবর্তন করতে, App.java ফাইলের Hey ইনলাইন 55 দিয়ে Hello প্রতিস্থাপন করুন, mvnDebug প্রক্রিয়াটি পুনরায় চালু করুন এবং পুনরায় সংযুক্ত করতে এবং ডিবাগিং পুনরায় চালু করতে Remote Debug Watch পুনরায় চালু করুন।

  11. এবার, দ্বিতীয়বার Hey! বার্তা পাঠানোর পরিবর্তে, আপনি আপনার স্থানীয় পরিবেশে ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেসে লগ করা শেষ HTTP অনুরোধটি নির্বাচন করতে পারেন এবং Replay ক্লিক করতে পারেন। গতবারের মতো, আপনার চ্যাট অ্যাপটি উত্তর দিচ্ছে না কারণ এটি সক্রিয়ভাবে ডিবাগ করা হচ্ছে।

  12. যখন আপনি Visual Studio Code ডিবাগার থেকে এক্সিকিউশন পুনরায় শুরু করেন, তখন আপনি আপনার স্থানীয় পরিবেশে ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে দেখতে পাবেন যে অ্যাপ্লিকেশনটি বার্তার আপডেট করা সংস্করণের সাথে একটি প্রতিক্রিয়া তৈরি করে।

দূরবর্তী পরিবেশ থেকে ডিবাগ করুন

এই বিভাগে, আপনি আপনার চ্যাট অ্যাপের সাথে ইন্টারঅ্যাক্ট করবেন যা একটি দূরবর্তী পরিবেশে কার্যকর হয়।

দূরবর্তী পরিবেশ থেকে ডিবাগ করুন

চিত্র ৯। দূরবর্তী পরিবেশ থেকে ডিবাগ।

পূর্বশর্ত

  • আপনার চ্যাট অ্যাপের সাথে একটি সরাসরি বার্তা স্থান। আপনি Quickstart গাইডের " আপনার চ্যাট অ্যাপ পরীক্ষা করুন" বিভাগটি অনুসরণ করতে পারেন এবং একটি শুরু করার জন্য আপনার চ্যাট অ্যাপটি অনুসন্ধান করতে পারেন।
  • আপনার অ্যাপ্লিকেশনটি আপনার দূরবর্তী পরিবেশে একটি নির্দিষ্ট পোর্টে ডিবাগার সক্ষম করে চলমান, এই নির্দেশিকার নির্দেশাবলীতে এটিকে REMOTE_DEBUG_PORT হিসাবে উল্লেখ করা হয়েছে।
  • আপনার স্থানীয় পরিবেশ আপনার দূরবর্তী পরিবেশে ssh করতে পারে।
  • আপনার স্থানীয় পরিবেশে একটি IDE সেট আপ করা হয়েছে যা ডিবাগ করতে পারে। চিত্রের উদ্দেশ্যে আমরা এই নির্দেশিকায় Visual Studio Code IDE এবং এর ডিফল্ট ডিবাগিং বৈশিষ্ট্যগুলি ব্যবহার করি।

আপনার স্থানীয় এবং দূরবর্তী পরিবেশ সংযুক্ত করুন

আপনার স্থানীয় পরিবেশে যেখানে আপনি একটি ডিবাগ ক্লায়েন্ট সংযোগ শুরু করতে চান, একটি SSH টানেল সেট আপ করুন:

ssh -L LOCAL_DEBUG_PORT:localhost:REMOTE_DEBUG_PORT REMOTE_USERNAME@REMOTE_ADDRESS

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • LOCAL_DEBUG_PORT : আপনার স্থানীয় পরিবেশে ডিবাগ পোর্ট।
  • REMOTE_USERNAME : আপনার দূরবর্তী পরিবেশের ব্যবহারকারীর নাম।
  • REMOTE_ADDRESS : আপনার দূরবর্তী পরিবেশের ঠিকানা।
  • REMOTE_DEBUG_PORT : আপনার দূরবর্তী পরিবেশে ডিবাগ পোর্ট।

আপনার স্থানীয় পরিবেশের ডিবাগ পোর্টটি এখন আপনার দূরবর্তী পরিবেশের ডিবাগ পোর্টের সাথে সংযুক্ত।

ডিবাগিং শুরু করুন

আপনার স্থানীয় পরিবেশে ইনস্টল করা Visual Studio Code IDE থেকে, নিম্নলিখিতগুলি করুন:

  1. একটি নতুন উইন্ডোতে, আপনার অ্যাপের সোর্স কোডটি খুলুন।
  2. রুট ডিরেক্টরিতে .vscode/launch.json ফাইলটি তৈরি করুন এবং Debug Remote নামে একটি লঞ্চ কনফিগার করুন যা আপনার স্থানীয় পরিবেশে ডিবাগ পোর্টের সাথে সংযুক্ত হবে:

    নোড.জেএস

    {
        "version": "0.2.0",
        "configurations": [{
            "type": "node",
            "request": "attach",
            "name": "Debug Remote",
            "address": "127.0.0.1",
            "port": LOCAL_DEBUG_PORT
        }]
    }
    

    পাইথন

    {
        "version": "0.2.0",
        "configurations": [{
            "type": "python",
            "request": "attach",
            "name": "Debug Remote",
            "connect": {
                "host": "127.0.0.1",
                "port": LOCAL_DEBUG_PORT
            }
        }]
    }
    

    জাভা

    {
        "version": "0.2.0",
        "configurations": [{
            "type": "java",
            "request": "attach",
            "name": "Debug Remote",
            "hostName": "127.0.0.1",
            "port": LOCAL_DEBUG_PORT
        }]
    }
    

    আপনার স্থানীয় পরিবেশে LOCAL_DEBUG_PORT ডিবাগ পোর্ট দিয়ে প্রতিস্থাপন করুন।

  3. আপনার অ্যাপের সোর্স কোডে একটি ব্রেকপয়েন্ট যোগ করুন যা HTTP অনুরোধ প্রক্রিয়াকরণকে থামায়, এবং আগে যোগ করা Debug Remote কনফিগারেশন দিয়ে চালানো এবং ডিবাগ করা শুরু করুন

আপনার চ্যাট অ্যাপের ডাইরেক্ট মেসেজ স্পেসে, আপনি যা পরীক্ষা করতে চান তা টাইপ করুন এবং enter টিপুন। আপনার চ্যাট অ্যাপটি উত্তর দেয় না কারণ এটি Visual Studio Code IDE-তে সক্রিয়ভাবে ডিবাগ করা হচ্ছে।