একজন গুগল চ্যাট অ্যাপস ডেভেলপার হিসেবে, পরিবর্তন পরীক্ষা করতে বা জটিল সমস্যা সমাধান করতে আপনার কোড ডিবাগ করার প্রয়োজন হতে পারে। আপনার অ্যাপের আর্কিটেকচার, অ্যাপটি কী কাজ করে, কীভাবে আপনার অ্যাপটি ডেপ্লয় করা হয়েছে এবং আপনার পছন্দের উপর নির্ভর করে বিভিন্ন উপায়ে চ্যাট অ্যাপ ডিবাগ করা যেতে পারে।
এই পৃষ্ঠায় ngrok ব্যবহার করে একটি HTTP চ্যাট অ্যাপ ডিবাগ করার পদ্ধতি ব্যাখ্যা করা হয়েছে। ngrok হলো একটি সমন্বিত ইনগ্রেস প্ল্যাটফর্ম যা স্থানীয় ডেভেলপমেন্ট পরিবেশ পরীক্ষা করার জন্য ব্যবহার করা যায়। এই নির্দেশিকায়, আপনি স্থানীয় পরিবেশে কোডের পরিবর্তন পরীক্ষা করবেন এবং দূরবর্তী পরিবেশে সমস্যা সমাধান করবেন।
স্থানীয় উন্নয়ন পরিবেশ থেকে ডিবাগ করুন
এই অংশে, আপনি আপনার চ্যাট অ্যাপটির সাথে ইন্টারঅ্যাক্ট করেন, যেটি আপনার লোকাল এনভায়রনমেন্টে চালু থাকে।
চিত্র ১। স্থানীয় উন্নয়ন পরিবেশে ডিবাগ করুন।
কর্মশালা
নোড.জেএস
পাইথন
জাভা
পূর্বশর্ত
নোড.জেএস
- আপনার স্থানীয় পরিবেশে
nodeএবংnpmএর সর্বশেষ সংস্করণ ইনস্টল করা আছে । আপনার লোকাল এনভায়রনমেন্টে
nodemonএর সর্বশেষ সংস্করণ ইনস্টল করা আছে , এটি অটো-রিলোডের জন্য ব্যবহৃত হয়:npm install -g nodemonমেসেজিংয়ের জন্য কনফিগার করা একটি HTTP চ্যাট অ্যাপ। আপনি কুইকস্টার্ট গাইডের ‘পূর্বশর্ত’ , ‘পরিবেশ সেট আপ করুন ’ এবং ‘গুগল চ্যাটে অ্যাপটি প্রকাশ করুন’ অংশগুলি অনুসরণ করতে পারেন। একমাত্র পার্থক্য হলো, আপনাকে অ্যাপের নাম
Debug Appএবং HTTP এন্ডপয়েন্ট URL হিসেবেhttp://example.comমতো যেকোনো কিছু সেট করতে হবে।আপনার স্থানীয় পরিবেশে সেট আপ করা একটি IDE যা ডিবাগ করতে পারে। এই নির্দেশিকায় আমরা দৃষ্টান্তমূলক উদ্দেশ্যে
Visual Studio CodeIDE এবং এর ডিফল্ট ডিবাগিং বৈশিষ্ট্যগুলি ব্যবহার করেছি।আপনার স্থানীয় পরিবেশে
Gitইনস্টল করা আছে ।একটি
ngrokঅ্যাকাউন্ট।
পাইথন
- আপনার স্থানীয় পরিবেশে
python3এর সর্বশেষ সংস্করণ ইনস্টল করা আছে । - আপনার লোকাল এনভায়রনমেন্টে
pipএবংvirtualenvএর সর্বশেষ সংস্করণ ইনস্টল করা আছে, এগুলো যথাক্রমে পাইথন প্যাকেজ এবং ভার্চুয়াল এনভায়রনমেন্ট পরিচালনা করতে ব্যবহৃত হয়। - মেসেজিংয়ের জন্য কনফিগার করা একটি HTTP চ্যাট অ্যাপ। আপনি কুইকস্টার্ট গাইডের ‘পূর্বশর্ত’ , ‘পরিবেশ সেট আপ করুন ’ এবং ‘গুগল চ্যাটে অ্যাপটি প্রকাশ করুন’ অংশগুলি অনুসরণ করতে পারেন। একমাত্র পার্থক্য হলো, আপনাকে অ্যাপের নাম
Debug Appএবং HTTP এন্ডপয়েন্ট URL হিসেবেhttp://example.comমতো যেকোনো কিছু সেট করতে হবে। - আপনার স্থানীয় পরিবেশে সেট আপ করা একটি IDE যা ডিবাগ করতে পারে। এই নির্দেশিকায় আমরা দৃষ্টান্তমূলক উদ্দেশ্যে
Visual Studio CodeIDE এবং এর ডিফল্ট ডিবাগিং বৈশিষ্ট্যগুলি ব্যবহার করেছি। - আপনার স্থানীয় পরিবেশে
Gitইনস্টল করা আছে । - একটি
ngrokঅ্যাকাউন্ট। - আপনার স্থানীয় পরিবেশে
gcloudএর সর্বশেষ সংস্করণ ইনস্টল এবং চালু করা হয়েছে ।
জাভা
- আপনার স্থানীয় পরিবেশে
Java SE 11's JDKএর সর্বশেষ স্থিতিশীল সংস্করণ ইনস্টল করা আছে । - আপনার লোকাল এনভায়রনমেন্টে
Apache Mavenসর্বশেষ সংস্করণ ইনস্টল করা আছে , এটি জাভা প্রজেক্ট পরিচালনা করতে ব্যবহৃত হয়। - মেসেজিংয়ের জন্য কনফিগার করা একটি HTTP চ্যাট অ্যাপ। আপনি কুইকস্টার্ট গাইডের ‘পূর্বশর্ত’ , ‘পরিবেশ সেট আপ করুন ’ এবং ‘গুগল চ্যাটে অ্যাপটি প্রকাশ করুন’ অংশগুলি অনুসরণ করতে পারেন। একমাত্র পার্থক্য হলো, আপনাকে অ্যাপের নাম
Debug Appএবং HTTP এন্ডপয়েন্ট URL হিসেবেhttp://example.comমতো যেকোনো কিছু সেট করতে হবে। - আপনার স্থানীয় পরিবেশে সেট আপ করা একটি IDE যা ডিবাগ করতে পারে। এই নির্দেশিকায় আমরা দৃষ্টান্তমূলক উদ্দেশ্যে
Visual Studio CodeIDE এবং এর ডিফল্ট ডিবাগিং বৈশিষ্ট্যগুলি ব্যবহার করেছি। - আপনার স্থানীয় পরিবেশে
Gitইনস্টল করা আছে । - একটি
ngrokঅ্যাকাউন্ট। - আপনার স্থানীয় পরিবেশে
gcloudএর সর্বশেষ সংস্করণ ইনস্টল এবং চালু করা হয়েছে ।
লোকালহোস্ট পরিষেবাটিকে সর্বজনীনভাবে উপলব্ধ করুন
আপনার স্থানীয় পরিবেশকে ইন্টারনেটের সাথে সংযুক্ত করতে হবে, যাতে চ্যাট অ্যাপটি এটি অ্যাক্সেস করতে পারে। একটি পাবলিক ইউআরএল-এ করা HTTP অনুরোধগুলিকে আপনার স্থানীয় পরিবেশে পুনঃনির্দেশিত করতে ngrok অ্যাপ্লিকেশনটি ব্যবহৃত হয়।
- আপনার স্থানীয় পরিবেশের একটি ব্রাউজারে আপনার
ngrokঅ্যাকাউন্টে সাইন ইন করুন। - অ্যাপ্লিকেশনটি ইনস্টল করুন এবং আপনার স্থানীয় পরিবেশে আপনার
authtokenসেট আপ করুন। - আপনার
ngrokঅ্যাকাউন্টে একটি স্ট্যাটিক ডোমেইন তৈরি করুন , এই গাইডের নির্দেশাবলীতে এটিকেNGROK_STATIC_DOMAINহিসাবে উল্লেখ করা হয়েছে।
চ্যাট অ্যাপটি কনফিগার করুন
চ্যাট অ্যাপটিকে এমনভাবে কনফিগার করুন যাতে এটি তার সমস্ত HTTP অনুরোধ আপনার স্ট্যাটিক ডোমেনে পাঠায়।
Google API কনসোলে, Google চ্যাট API পৃষ্ঠাটি খুলুন:
কনফিগারেশন ট্যাবে ক্লিক করুন।
ইন্টারেক্টিভ ফিচার > কানেকশন সেটিংসে যান এবং HTTP এন্ডপয়েন্ট URL টেক্সট ফিল্ডের মান সেট করুন:
https://NGROK_STATIC_DOMAINNGROK_STATIC_DOMAINজায়গায় আপনারngrokঅ্যাকাউন্টের স্ট্যাটিক ডোমেইনটি বসান।সংরক্ষণ করুন- এ ক্লিক করুন।
চিত্র ২। চ্যাট অ্যাপটি তার সমস্ত HTTP অনুরোধ স্ট্যাটিক ডোমেইনে পাঠায়। ngrok পাবলিক সার্ভিসটি চ্যাট অ্যাপ এবং স্থানীয়ভাবে চলমান অ্যাপ্লিকেশন কোডের মধ্যে একটি সেতু হিসেবে কাজ করে।
চ্যাট অ্যাপটি পরীক্ষা করুন
আপনি আপনার চ্যাট অ্যাপটি স্থানীয়ভাবে ডেপ্লয়, কনফিগার, টেস্ট, ডিবাগ এবং অটো-রিলোড করতে পারবেন।
নোড.জেএস
GitHub থেকে
googleworkspace/google-chat-samplesরিপোজিটরিটি আপনার লোকাল এনভায়রনমেন্টে ক্লোন করুন, এর মধ্যে এক্সিকিউট করার জন্য অ্যাপ্লিকেশনটির কোড রয়েছে:git clone https://github.com/googleworkspace/google-chat-samples.gitআপনার স্থানীয় পরিবেশে ইনস্টল করা
Visual Studio CodeIDE থেকে নিম্নলিখিতগুলি করুন:- একটি নতুন উইন্ডোতে
google-chat-samples/node/basic-appফোল্ডারটি খুলুন। package.jsonফাইলে দুটি স্ক্রিপ্ট যোগ করে অ্যাপ্লিকেশনটি অটো-রিলোড ডিবাগের জন্য কনফিগার করুন:{ ... "scripts": { ... "debug": "node --inspect index.js", "debug-watch": "nodemon --watch ./ --exec npm run debug" } ... }রুট ডিরেক্টরি থেকে অ্যাপ্লিকেশনটি ইনস্টল করুন:
npm installরুট ডিরেক্টরিতে
.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"] }] }index.jsফাইলে একটি ব্রেকপয়েন্ট যোগ করুন যা HTTP অনুরোধ প্রক্রিয়াকরণকে থামিয়ে দেবে, এবং পূর্বে যোগ করাDebug Watchকনফিগারেশন ব্যবহার করে অ্যাপ্লিকেশনটি চালানো ও ডিবাগ করা শুরু করুন । অ্যাপ্লিকেশনটি এখন চলছে এবং9000পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।
চিত্র ৩. অ্যাপ্লিকেশনটি চালু আছে এবং
9000পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।
- একটি নতুন উইন্ডোতে
আপনার স্থানীয় পরিবেশে
ngrokঅ্যাপ্লিকেশনটি চালু করুন:ngrok http --domain=NGROK_STATIC_DOMAIN 9000NGROK_STATIC_DOMAINজায়গায় আপনারngrokঅ্যাকাউন্টের স্ট্যাটিক ডোমেইনটি বসান। এখন থেকে সমস্ত অনুরোধ আপনার লোকাল এনভায়রনমেন্ট এবং অ্যাপ্লিকেশন দ্বারা ব্যবহৃত পোর্টে রিডাইরেক্ট করা হবে।
চিত্র ৪। টার্মিনালটি যেখানে
ngrokসার্ভার চলছে এবং রিডাইরেক্ট করছে।ngrokঅ্যাপ্লিকেশনটি আপনার লোকালহোস্টে একটি ওয়েব ইন্টারফেসও চালু করে, যা আপনি ব্রাউজারে খুলে সমস্ত কার্যকলাপ পর্যবেক্ষণ করতে পারেন।
চিত্র ৫।
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস, যেখানে কোনো HTTP অনুরোধ দেখা যাচ্ছে না।আপনার চ্যাট অ্যাপটিকে সরাসরি বার্তা পাঠিয়ে পরীক্ষা করুন:
গুগল চ্যাট খুলুন।
নতুন চ্যাট -এ ক্লিক করুন।
ডায়ালগ বক্সে আপনার চ্যাট অ্যাপের নামটি লিখুন।
অনুসন্ধানের ফলাফলে আপনার চ্যাট অ্যাপটি খুঁজুন, এরপর যোগ করুন > চ্যাট-এ ক্লিক করুন।
সরাসরি বার্তা পাঠানোর জায়গায়,
Helloটাইপ করেenterচাপুন। আপনার চ্যাট অ্যাপটি উত্তর দিচ্ছে না কারণ এটি সক্রিয়ভাবে ডিবাগ করা হচ্ছে।
আপনার স্থানীয় পরিবেশে থাকা
Visual Studio Codeআপনি দেখতে পাবেন যে, সেট করা ব্রেকপয়েন্টটিতে প্রোগ্রামটি থেমে আছে।
চিত্র ৬। নির্ধারিত ব্রেকপয়েন্টে প্রোগ্রামটি থামানো হয়েছে।
গুগল চ্যাটের সময়সীমা শেষ হওয়ার আগে আপনি যখন
Visual Studio Codeডিবাগার থেকে প্রোগ্রামটি পুনরায় চালু করেন, তখন চ্যাট অ্যাপটি উত্তরে লেখেYour message : Hello।আপনি আপনার স্থানীয় পরিবেশে
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে HTTP অনুরোধ এবং প্রতিক্রিয়া লগগুলি পরীক্ষা করতে পারেন।
চিত্র ৭.
ngrok) অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে পাঠানো HTTP অনুরোধ।অ্যাপ্লিকেশনটির আচরণ পরিবর্তন করতে,
index.jsonফাইলের35নম্বর লাইনেYour message-এর পরিবর্তেHere was your messagemessage” লিখুন। ফাইলটি সেভ করলে,nodemonস্বয়ংক্রিয়ভাবে আপডেট করা সোর্স কোড দিয়ে অ্যাপ্লিকেশনটি রিলোড করে এবংVisual Studio Codeডিবাগ মোডে থেকে যায়।
চিত্র ৮। অ্যাপ্লিকেশনটা চলছে এবং কোড পরিবর্তনটি লোড হওয়ার পর
9000পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।এবার, ওই জায়গায় দ্বিতীয়বার
Helloবার্তা পাঠানোর পরিবর্তে, আপনি আপনার স্থানীয় পরিবেশেngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেসে লগ করা সর্বশেষ HTTP অনুরোধটি নির্বাচন করেReplayক্লিক করতে পারেন। আগের বারের মতোই, আপনার চ্যাট অ্যাপটি কোনো উত্তর দেবে না, কারণ এটি সক্রিয়ভাবে ডিবাগ করা হচ্ছে।যখন আপনি
Visual Studio Codeডিবাগার থেকে প্রোগ্রামটি পুনরায় চালু করেন, তখন আপনার স্থানীয় পরিবেশেngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে দেখতে পাবেন যে অ্যাপ্লিকেশনটিHere was your message : Helloবার্তাটির একটি আপডেট করা সংস্করণ সহ একটি প্রতিক্রিয়া তৈরি করে।
পাইথন
অ্যাপ্লিকেশনের ডিফল্ট ক্রেডেনশিয়াল হিসেবে ব্যবহারের জন্য নতুন ব্যবহারকারীর ক্রেডেনশিয়াল সংগ্রহ করুন:
gcloud config set project PROJECT_IDgcloud auth application-default loginPROJECT_IDজায়গায় অ্যাপটির ক্লাউড প্রজেক্টের প্রজেক্ট আইডিটি বসান।GitHub থেকে
googleworkspace/google-chat-samplesরিপোজিটরিটি আপনার লোকাল এনভায়রনমেন্টে ক্লোন করুন, এর মধ্যে অ্যাপ্লিকেশন কোডটি রয়েছে:git clone https://github.com/googleworkspace/google-chat-samples.gitআপনার স্থানীয় পরিবেশে ইনস্টল করা
Visual Studio CodeIDE থেকে নিম্নলিখিতগুলি করুন:- একটি নতুন উইন্ডোতে
google-chat-samples/python/avatar-appফোল্ডারটি খুলুন। Python
envজন্য একটি নতুন ভার্চুয়াল এনভায়রনমেন্ট তৈরি করুন এবং এটি সক্রিয় করুন:virtualenv envsource env/bin/activateভার্চুয়াল এনভায়রনমেন্টে
pipব্যবহার করে প্রোজেক্টের সমস্ত ডিপেন্ডেন্সি ইনস্টল করুন:pip install -r requirements.txtরুট ডিরেক্টরিতে
.vscode/launch.jsonফাইলটি তৈরি করুন এবংDebug Watchনামের একটি লঞ্চ কনফিগার করুন, যাfunctions-frameworkমডিউল থেকে অ্যাপ্লিকেশনটিকেenvভার্চুয়াল এনভায়রনমেন্টের9000পোর্টে ডিবাগ মোডে ট্রিগার করবে।{ "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" ] }] }main.pyফাইলে একটি ব্রেকপয়েন্ট যোগ করুন যা HTTP অনুরোধ প্রক্রিয়াকরণকে থামিয়ে দেবে, এবং পূর্বে যোগ করাDebug Watchকনফিগারেশন ব্যবহার করে অ্যাপ্লিকেশনটি চালানো ও ডিবাগ করা শুরু করুন । অ্যাপ্লিকেশনটি এখন চলছে এবং9000পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।
চিত্র ৩. অ্যাপ্লিকেশনটি চালু আছে এবং
9000পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।
- একটি নতুন উইন্ডোতে
আপনার স্থানীয় পরিবেশে
ngrokঅ্যাপ্লিকেশনটি চালু করুন:ngrok http --domain=NGROK_STATIC_DOMAIN 9000NGROK_STATIC_DOMAINজায়গায় আপনারngrokঅ্যাকাউন্টের স্ট্যাটিক ডোমেইনটি বসান। এখন থেকে সমস্ত অনুরোধ আপনার লোকাল এনভায়রনমেন্ট এবং অ্যাপ্লিকেশন দ্বারা ব্যবহৃত পোর্টে রিডাইরেক্ট করা হবে।
চিত্র ৪। টার্মিনালটি যেখানে
ngrokসার্ভার চলছে এবং রিডাইরেক্ট করছে।ngrokঅ্যাপ্লিকেশনটি আপনার লোকালহোস্টে একটি ওয়েব ইন্টারফেসও চালু করে, যা আপনি ব্রাউজারে খুলে সমস্ত কার্যকলাপ পর্যবেক্ষণ করতে পারেন।
চিত্র ৫।
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস, যেখানে কোনো HTTP অনুরোধ দেখা যাচ্ছে না।আপনার চ্যাট অ্যাপটিকে সরাসরি বার্তা পাঠিয়ে পরীক্ষা করুন:
গুগল চ্যাট খুলুন।
নতুন চ্যাট -এ ক্লিক করুন।
ডায়ালগ বক্সে আপনার চ্যাট অ্যাপের নামটি লিখুন।
অনুসন্ধানের ফলাফলে আপনার চ্যাট অ্যাপটি খুঁজুন, এরপর যোগ করুন > চ্যাট-এ ক্লিক করুন।
সরাসরি বার্তা পাঠানোর জায়গায়,
Hey!টাইপ করুন এবংenterচাপুন। আপনার চ্যাট অ্যাপটি উত্তর দিচ্ছে না কারণ এটি সক্রিয়ভাবে ডিবাগ করা হচ্ছে।
আপনার স্থানীয় পরিবেশে থাকা
Visual Studio Codeআপনি দেখতে পাবেন যে, সেট করা ব্রেকপয়েন্টটিতে প্রোগ্রামটি থেমে আছে।
চিত্র ৬। নির্ধারিত ব্রেকপয়েন্টে প্রোগ্রামটি থামানো হয়েছে।
গুগল চ্যাটের সময়সীমা শেষ হওয়ার আগে আপনি যখন
Visual Studio Codeডিবাগার থেকে প্রোগ্রামটি পুনরায় চালু করেন, তখন চ্যাট অ্যাপটি মেসেজে আপনার নাম এবং অ্যাভাটার ছবিসহ উত্তর দেয়।আপনি আপনার স্থানীয় পরিবেশে
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে HTTP অনুরোধ এবং প্রতিক্রিয়া লগগুলি পরীক্ষা করতে পারেন।
চিত্র ৭.
ngrok) অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে পাঠানো HTTP অনুরোধ।অ্যাপ্লিকেশনটির আচরণ পরিবর্তন করতে,
main.pyফাইলের51লাইনেHelloএর পরিবর্তেHeyলিখুন। ফাইলটি সেভ করলে,Visual Studio Codeস্বয়ংক্রিয়ভাবে আপডেট করা সোর্স কোড দিয়ে অ্যাপ্লিকেশনটি পুনরায় লোড করে এবং ডিবাগ মোডে থেকে যায়।
চিত্র ৮। অ্যাপ্লিকেশনটা চলছে এবং কোড পরিবর্তনটি লোড হওয়ার পর
9000পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।এবার, ওই জায়গায় দ্বিতীয়বার
Hey!বার্তা পাঠানোর পরিবর্তে, আপনি আপনার স্থানীয় পরিবেশেngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেসে লগ করা সর্বশেষ HTTP অনুরোধটি নির্বাচন করেReplayক্লিক করতে পারেন। আগের বারের মতোই, আপনার চ্যাট অ্যাপটি উত্তর দেবে না কারণ এটি সক্রিয়ভাবে ডিবাগ করা হচ্ছে।যখন আপনি
Visual Studio Codeডিবাগার থেকে প্রোগ্রামটি পুনরায় চালু করেন, তখন আপনার স্থানীয় পরিবেশে থাকাngrokঅ্যাপ্লিকেশনের ওয়েব ইন্টারফেস থেকে দেখতে পাবেন যে অ্যাপ্লিকেশনটি বার্তাটির হালনাগাদ সংস্করণসহ একটি প্রতিক্রিয়া তৈরি করছে।
জাভা
অ্যাপ্লিকেশনের ডিফল্ট ক্রেডেনশিয়াল হিসেবে ব্যবহারের জন্য নতুন ব্যবহারকারীর ক্রেডেনশিয়াল সংগ্রহ করুন:
gcloud config set project PROJECT_IDgcloud auth application-default loginPROJECT_IDজায়গায় অ্যাপটির ক্লাউড প্রজেক্টের প্রজেক্ট আইডিটি বসান।আপনার স্থানীয় পরিবেশে GitHub থেকে
googleworkspace/google-chat-samplesরিপোজিটরিটি ক্লোন করুন, এর মধ্যে অ্যাপ্লিকেশন কোডটি রয়েছে:git clone https://github.com/googleworkspace/google-chat-samples.gitআপনার স্থানীয় পরিবেশে ইনস্টল করা
Visual Studio CodeIDE থেকে নিম্নলিখিতগুলি করুন:- একটি নতুন উইন্ডোতে
google-chat-samples/java/avatar-appফোল্ডারটি খুলুন। pom.xmlফাইলে Google Cloud Functions Framework-এর বিল্ড প্লাগইনfunction-maven-pluginযোগ করে Maven প্রজেক্টটি কনফিগার করুন, যাতেAppস্থানীয়ভাবে9000পোর্টে চলে।... <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> ...আপনি এখন এটিকে স্থানীয়ভাবে ডিবাগ মোডে চালু করতে পারেন:
mvnDebug function:run Preparing to execute Maven in debug mode Listening for transport dt_socket at address: 8000রুট ডিরেক্টরিতে
.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 }] }App.javaফাইলে একটি ব্রেকপয়েন্ট যোগ করুন যা HTTP অনুরোধ প্রক্রিয়াকরণকে থামিয়ে দেবে, এবং পূর্বে যোগ করাRemote Debug Watchকনফিগারেশন ব্যবহার করে অ্যাটাচিং ও ডিবাগিং শুরু করুন । অ্যাপ্লিকেশনটি এখন চলছে এবং9000পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।
চিত্র ৩. অ্যাপ্লিকেশনটি চলছে এবং
9000পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।
- একটি নতুন উইন্ডোতে
আপনার স্থানীয় পরিবেশে
ngrokঅ্যাপ্লিকেশনটি চালু করুন:ngrok http --domain=NGROK_STATIC_DOMAIN 9000NGROK_STATIC_DOMAINজায়গায় আপনারngrokঅ্যাকাউন্টের স্ট্যাটিক ডোমেইনটি বসান। এখন থেকে সমস্ত অনুরোধ আপনার লোকাল এনভায়রনমেন্ট এবং অ্যাপ্লিকেশন দ্বারা ব্যবহৃত পোর্টে রিডাইরেক্ট করা হবে।
চিত্র ৪। টার্মিনালটি যেখানে
ngrokসার্ভার চলছে এবং রিডাইরেক্ট করছে।ngrokঅ্যাপ্লিকেশনটি আপনার লোকালহোস্টে একটি ওয়েব ইন্টারফেসও চালু করে, যা আপনি ব্রাউজারে খুলে সমস্ত কার্যকলাপ পর্যবেক্ষণ করতে পারেন।
চিত্র ৫।
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস, যেখানে কোনো HTTP অনুরোধ দেখা যাচ্ছে না।আপনার চ্যাট অ্যাপটিকে সরাসরি বার্তা পাঠিয়ে পরীক্ষা করুন:
গুগল চ্যাট খুলুন।
নতুন চ্যাট -এ ক্লিক করুন।
ডায়ালগ বক্সে আপনার চ্যাট অ্যাপের নামটি লিখুন।
অনুসন্ধানের ফলাফলে আপনার চ্যাট অ্যাপটি খুঁজুন, এরপর যোগ করুন > চ্যাট-এ ক্লিক করুন।
সরাসরি বার্তা পাঠানোর জায়গায়,
Hey!টাইপ করুন এবংenterচাপুন। আপনার চ্যাট অ্যাপটি উত্তর দিচ্ছে না কারণ এটি সক্রিয়ভাবে ডিবাগ করা হচ্ছে।
আপনার স্থানীয় পরিবেশে থাকা
Visual Studio Codeআপনি দেখতে পাবেন যে, সেট করা ব্রেকপয়েন্টটিতে প্রোগ্রামটি থেমে আছে।
চিত্র ৬। নির্ধারিত ব্রেকপয়েন্টে প্রোগ্রামটি থামানো হয়েছে।
গুগল চ্যাটের সময়সীমা শেষ হওয়ার আগে আপনি যখন
Visual Studio Codeডিবাগার থেকে প্রোগ্রামটি পুনরায় চালু করেন, তখন চ্যাট অ্যাপটি মেসেজে আপনার নাম এবং অ্যাভাটার ছবিসহ উত্তর দেয়।আপনি আপনার স্থানীয় পরিবেশে
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে HTTP অনুরোধ এবং প্রতিক্রিয়া লগগুলি পরীক্ষা করতে পারেন।
চিত্র ৭.
ngrok) অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে পাঠানো HTTP অনুরোধ।অ্যাপ্লিকেশনটির আচরণ পরিবর্তন করতে,
App.javaফাইলের55নম্বর লাইনেHelloএর পরিবর্তেHeyলিখুন,mvnDebugপ্রসেসটি পুনরায় চালু করুন, এবং ডিবাগিং পুনরায় সংযুক্ত ও চালু করার জন্যRemote Debug Watchআবার চালু করুন।এবার, ওই জায়গায় দ্বিতীয়বার ‘
Hey!বার্তা পাঠানোর পরিবর্তে, আপনি আপনার স্থানীয় পরিবেশেngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেসে লগ করা সর্বশেষ HTTP অনুরোধটি নির্বাচন করেReplayক্লিক করতে পারেন। আগের বারের মতোই, আপনার চ্যাট অ্যাপটি কোনো উত্তর দেবে না, কারণ এটি সক্রিয়ভাবে ডিবাগ করা হচ্ছে।যখন আপনি
Visual Studio Codeডিবাগার থেকে প্রোগ্রামটি পুনরায় চালু করেন, তখন আপনার স্থানীয় পরিবেশে থাকাngrokঅ্যাপ্লিকেশনের ওয়েব ইন্টারফেস থেকে দেখতে পাবেন যে অ্যাপ্লিকেশনটি বার্তাটির হালনাগাদ সংস্করণসহ একটি প্রতিক্রিয়া তৈরি করছে।
দূরবর্তী পরিবেশ থেকে ডিবাগ করুন
এই অংশে, আপনি আপনার চ্যাট অ্যাপটির সাথে যোগাযোগ করেন, যা একটি দূরবর্তী পরিবেশে চালু থাকে।
চিত্র ৯। দূরবর্তী পরিবেশ থেকে ডিবাগ করুন।
পূর্বশর্ত
- আপনার চ্যাট অ্যাপে সরাসরি মেসেজ পাঠানোর একটি জায়গা। আপনি কুইকস্টার্ট গাইডের ' আপনার চ্যাট অ্যাপ পরীক্ষা করুন' অংশটি অনুসরণ করে আপনার চ্যাট অ্যাপটি খুঁজে নিয়ে একটি নতুন চ্যাট অ্যাপ চালু করতে পারেন।
- আপনার অ্যাপ্লিকেশনটি যখন আপনার রিমোট এনভায়রনমেন্টে একটি নির্দিষ্ট পোর্টে ডিবাগার সক্রিয় করে চলে, তখন এই গাইডের নির্দেশাবলীতে সেটিকে
REMOTE_DEBUG_PORTহিসাবে উল্লেখ করা হয়। - আপনার স্থানীয় পরিবেশ থেকে আপনার দূরবর্তী পরিবেশে
sshকরা যায়। - আপনার স্থানীয় পরিবেশে সেট আপ করা একটি IDE যা ডিবাগ করতে পারে। এই নির্দেশিকায় আমরা দৃষ্টান্তমূলক উদ্দেশ্যে
Visual Studio CodeIDE এবং এর ডিফল্ট ডিবাগিং বৈশিষ্ট্যগুলি ব্যবহার করেছি।
আপনার স্থানীয় এবং দূরবর্তী পরিবেশ সংযুক্ত করুন
আপনার স্থানীয় পরিবেশে, যেখান থেকে আপনি একটি ডিবাগ ক্লায়েন্ট সংযোগ শুরু করতে চান, সেখানে একটি 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 থেকে নিম্নলিখিতগুলি করুন:
- একটি নতুন উইন্ডোতে আপনার অ্যাপের সোর্স কোডটি খুলুন।
রুট ডিরেক্টরিতে
.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": "DebugRemote", "hostName": "127.0.0.1", "port": LOCAL_DEBUG_PORT }] }LOCAL_DEBUG_PORTজায়গায় আপনার স্থানীয় পরিবেশের ডিবাগ পোর্টটি বসান।আপনার অ্যাপের সোর্স কোডে একটি ব্রেকপয়েন্ট যোগ করুন যা HTTP অনুরোধ প্রক্রিয়াকরণকে থামিয়ে দেবে, এবং পূর্বে যোগ করা
Debug Remoteকনফিগারেশন ব্যবহার করে চালানো ও ডিবাগ করা শুরু করুন ।
আপনার চ্যাট অ্যাপের ডিরেক্ট মেসেজ স্পেসে, আপনি যা পরীক্ষা করতে চান তা টাইপ করুন এবং enter চাপুন। আপনার চ্যাট অ্যাপ কোনো উত্তর দেবে না, কারণ Visual Studio Code IDE-তে এটি সক্রিয়ভাবে ডিবাগ করা হচ্ছে।
সম্পর্কিত বিষয়
- এরর লগ কীভাবে চালু ও কোয়েরি করতে হয় তা জানুন।
- "অ্যাপটি সাড়া দিচ্ছে না", "গুগল চ্যাট এপিআই শুধুমাত্র গুগল ওয়ার্কস্পেস ব্যবহারকারীদের জন্য উপলব্ধ", অথবা "ব্যবহারকারীদের স্পেস থেকে বাদ দেওয়া যেতে পারে"-এর মতো গুগল চ্যাট অ্যাপের ত্রুটিগুলি কীভাবে সমাধান করবেন তা জানুন ।
- কার্ড মেসেজ, ডায়ালগ বা লিঙ্ক প্রিভিউ প্রত্যাশিতভাবে রেন্ডার না হওয়া বা কাজ না করার মতো কার্ড ত্রুটিগুলি কীভাবে সমাধান করবেন তা জানুন ।