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

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

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

স্থানীয় ডেভেলপমেন্ট এনভায়রনমেন্ট থেকে ডিবাগ করা

এই বিভাগে, আপনি নিজের Chat অ্যাপের সাথে ইন্টার‍্যাক্ট করেন যা আপনার লোকাল এনভায়রনমেন্টে এক্সিকিউট করে।

স্থানীয় ডেভেলপমেন্ট
এনভায়রনমেন্ট থেকে ডিবাগ করা

ছবি ১. স্থানীয় ডেভেলপমেন্ট এনভায়রনমেন্টে ডিবাগ করুন।

ওয়ার্কশপ

Node.js

Python

Java

পূর্বশর্ত

Node.js

  • আপনার লোকাল এনভায়রনমেন্টে node ও npm-এর লেটেস্ট ভার্সন ইনস্টল করা থাকতে হবে।
  • আপনার লোকাল এনভায়রনমেন্টে nodemon-এর লেটেস্ট ভার্সন ইনস্টল করা থাকতে হবে, এটি অটোমেটিক রিলোড করার জন্য ব্যবহার করা হয়:

    npm install -g nodemon
  • মেসেজিংয়ের জন্য কনফিগার করা একটি HTTP চ্যাট অ্যাপ। আপনি দ্রুত শুরু করার নির্দেশিকার পূর্বশর্ত, এনভায়রনমেন্ট সেট-আপ করুন, এবং Google Chat-এ অ্যাপ প্রকাশ করুন বিভাগগুলি অনুসরণ করতে পারেন। একমাত্র পার্থক্য হল যে আপনাকে অ্যাপের নাম Debug App এবং HTTP এন্ডপয়েন্ট URL http://example.com-এর মতো কিছুতে সেট করতে হবে।

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

  • Git ইনস্টল করা আপনার লোকাল এনভায়রনমেন্টে।

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

Python

Java

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

Chat অ্যাপ যাতে অ্যাক্সেস করতে পারে সেই জন্য আপনাকে নিজের লোকাল এনভায়রনমেন্টকে ইন্টারনেটের সাথে কানেক্ট করতে হবে। আপনার লোকাল এনভায়রনমেন্টে পাবলিক URL-এ করা HTTP অনুরোধ রিডাইরেক্ট করতে ngrok অ্যাপ্লিকেশন ব্যবহার করা হয়।

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

Chat অ্যাপ কনফিগার করা

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

  1. Google API Console-এ, Google Chat API পৃষ্ঠা খুলুন:

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

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

  3. ইন্ট্যার‍্যাক্টিভ ফিচার > কানেকশন সেটিংস > ট্রিগার বিকল্পে যান এবং আপনি যে ট্রিগার পরীক্ষা করতে চান (যেমন, মেসেজ) তার জন্য HTTP এন্ডপয়েন্ট URL সেট করুন:

    https://NGROK_STATIC_DOMAIN
    

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

  4. সেভ করুন বিকল্পে ক্লিক করুন।

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

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

Chat অ্যাপ পরীক্ষা করা

আপনি নিজের Chat অ্যাপ লোকালি ডেপ্লয়, কনফিগার, পরীক্ষা, ডিবাগ ও অটোমেটিক রিলোড করতে পারবেন।

Node.js

  1. আপনার লোকাল এনভায়রনমেন্টে GitHub থেকে googleworkspace/add-ons-samples রিপোজিটরি ক্লোন করুন এতে অ্যাপ্লিকেশন এক্সিকিউট করার কোড থাকে:

    git clone https://github.com/googleworkspace/add-ons-samples.git
  2. আপনার লোকাল এনভায়রনমেন্টে ইনস্টল করা Visual Studio Code IDE থেকে, নিচে উল্লেখ করা কাজগুলি করুন:

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

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

      npm install
    4. Debug Watch নামে একটি লঞ্চ তৈরি ও কনফিগার করুন যা রুট ডিরেক্টরিতে .vscode/launch.json ফাইল তৈরি করে 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. সরাসরি মেসেজ পাঠিয়ে আপনার Chat অ্যাপ পরীক্ষা করে দেখুন:

    • Google Chat খুলুন।

      Google Chat-এ যান

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

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

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

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

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

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

    ছবি ৬. সেট করা ব্রেকপয়েন্টে এক্সিকিউশন পজ করা হয়েছে।

  7. আপনি যখন Visual Studio Code Google Chat-এর টাইম-আউট হওয়ার আগে চ্যাট অ্যাপের ডিবাগার থেকে এক্সিকিউশন আবার শুরু করেন, তখন আপনার মেসেজের উত্তর দেওয়া হয়।

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

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

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

  9. অ্যাপ্লিকেশনের আচরণ পরিবর্তন করতে, index.js ফাইলে উত্তরের টেক্সট আপডেট করুন। আপনি ফাইলটি সেভ করলে, nodemon আপডেট করা সোর্স কোড সহ অ্যাপ্লিকেশনটি অটোমেটিক রিলোড করে এবং Visual Studio Code ডিবাগ মোডে থাকে।

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

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

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

  11. আপনি Visual Studio Code-এর ডিবাগার থেকে এক্সিকিউশন আবার শুরু করলে, আপনার লোকাল এনভায়রনমেন্টে ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে আপনি দেখতে পাবেন যে অ্যাপ্লিকেশনটি মেসেজের আপডেট করা ভার্সন সহ একটি উত্তর জেনারেট করে।

Python

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

    gcloud config set project PROJECT_ID
    gcloud auth application-default login

    অ্যাপের Cloud প্রোজেক্টের প্রোজেক্ট আইডি দিয়ে PROJECT_ID পরিবর্তন করুন।

  2. আপনার লোকাল এনভায়রনমেন্টে GitHub থেকে googleworkspace/add-ons-samples রিপোজিটরি ক্লোন করুন এতে অ্যাপ্লিকেশন কোড আছে:

    git clone https://github.com/googleworkspace/add-ons-samples.git
  3. আপনার লোকাল এনভায়রনমেন্টে ইনস্টল করা Visual Studio Code IDE থেকে, নিচে উল্লেখ করা কাজগুলি করুন:

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

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

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

      {
          "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. সরাসরি মেসেজ পাঠিয়ে আপনার Chat অ্যাপ পরীক্ষা করে দেখুন:

    • Google Chat খুলুন।

      Google Chat-এ যান

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

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

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

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

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

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

    ছবি ৬. সেট করা ব্রেকপয়েন্টে এক্সিকিউশন পজ করা হয়েছে।

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

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

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

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

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

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

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

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

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

Java

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

    gcloud config set project PROJECT_ID
    gcloud auth application-default login

    অ্যাপের Cloud প্রোজেক্টের প্রোজেক্ট আইডি দিয়ে PROJECT_ID পরিবর্তন করুন।

  2. আপনার লোকাল এনভায়রনমেন্টে GitHub থেকে googleworkspace/add-ons-samples রিপোজিটরি ক্লোন করুন এতে অ্যাপ্লিকেশন কোড আছে:

    git clone https://github.com/googleworkspace/add-ons-samples.git
  3. আপনার লোকাল এনভায়রনমেন্টে ইনস্টল করা Visual Studio Code IDE থেকে, নিচে উল্লেখ করা কাজগুলি করুন:

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

      ...
      <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. সরাসরি মেসেজ পাঠিয়ে আপনার Chat অ্যাপ পরীক্ষা করে দেখুন:

    • Google Chat খুলুন।

      Google Chat-এ যান

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

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

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

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

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

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

    ছবি ৬. সেট করা ব্রেকপয়েন্টে এক্সিকিউশন পজ করা হয়েছে।

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

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

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

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

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

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

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

রিমোট এনভায়রনমেন্ট থেকে ডিবাগ করা

এই বিভাগে, আপনি নিজের Chat অ্যাপের সাথে ইন্টার‍্যাক্ট করেন যা রিমোট এনভায়রনমেন্টে এক্সিকিউট হয়।

রিমোট
এনভায়রনমেন্ট থেকে ডিবাগ করা

ছবি ৯. রিমোট এনভায়রনমেন্ট থেকে ডিবাগ করা।

পূর্বশর্ত

  • আপনার Chat অ্যাপের সাথে একটি ডাইরেক্ট মেসেজ স্পেস। আপনি বিভাগের নির্দেশাবলী অনুসরণ করতে পারেন দ্রুত শুরু করার নির্দেশিকা থেকে আপনার Chat অ্যাপ পরীক্ষা করুন এবং একটি শুরু করতে আপনার Chat অ্যাপ সার্চ করুন।
  • আপনার অ্যাপ্লিকেশন রিমোট এনভায়রনমেন্টে চলছে এবং নির্দিষ্ট পোর্টে ডিবাগার চালু করা আছে, এটিকে এই গাইডের নির্দেশাবলীতে 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 নামের একটি লঞ্চ কনফিগার করুন:

    Node.js

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

    Python

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

    Java

    {
        "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 কনফিগারেশনের সাথে রান করা ও ডিবাগ করা শুরু করে।

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

অ্যাড-অন নয় এমন চ্যাট অ্যাপ: Google Chat অ্যাপ ডিবাগ করা

Google Workspace অ্যাড-অন নয় এমন Chat অ্যাপের ক্ষেত্রে নিম্নলিখিত ডকুমেন্টেশন প্রযোজ্য। অ্যাড-অন নয় এমন কোনও Chat অ্যাপ মাইগ্রেট করতে, Chat অ্যাপকে Google Workspace অ্যাড-অনে কনভার্ট করুন লিঙ্ক দেখুন।

আপনার লোকাল এনভায়রনমেন্ট থেকে কোনও অ্যাড-অন নয় এমন Chat অ্যাপ ডিবাগ করতে:

  • Chat API-এর কনফিগারেশন ট্যাবে গিয়ে ইন্টার‍্যাক্টিভ ফিচার > কানেকশন সেটিংস বিকল্পের মধ্যে HTTP এন্ডপয়েন্ট URL বেছে নিন এবং HTTP এন্ডপয়েন্ট URL ফিল্ড সরাসরি https://<var>NGROK_STATIC_DOMAIN</var> হিসেবে সেট করুন।
  • GitHub রিপোজিটরি (google-chat-samples/node/basic-app, google-chat-samples/python/avatar-app, বা google-chat-samples/java/avatar-app) থেকে অ্যাড-অন নয় এমন googleworkspace/google-chat-samples চ্যাট অ্যাপের জন্য স্যাম্পেল কোড ব্যবহার করুন।