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 এন্ডপয়েন্ট URLhttp://example.com-এর মতো কিছুতে সেট করতে হবে।আপনার লোকাল এনভায়রনমেন্টে সেট-আপ করা একটি IDE যা ডিবাগ করতে পারে। আমরা
Visual Studio CodeIDE এবং এর ডিফল্ট ডিবাগিং ফিচারগুলি এই নির্দেশিকায় উদাহরণ হিসেবে ব্যবহার করেছি।Gitইনস্টল করা আপনার লোকাল এনভায়রনমেন্টে।ngrokঅ্যাকাউন্ট।
Python
- আপনার লোকাল এনভায়রনমেন্টে
python3ইনস্টল করা লেটেস্ট ভার্সন। - আপনার লোকাল এনভায়রনমেন্টে ইনস্টল করা
pipওvirtualenv-এর লেটেস্ট ভার্সন। এগুলি যথাক্রমে Python প্যাকেজ ও ভার্চুয়াল এনভায়রনমেন্ট ম্যানেজ করতে ব্যবহার করা হয়। - মেসেজিংয়ের জন্য কনফিগার করা
একটি HTTP চ্যাট অ্যাপ। আপনি
দ্রুত শুরু করার নির্দেশিকার
পূর্বশর্ত,
এনভায়রনমেন্ট
সেট-আপ করুন,
এবং Google Chat-এ অ্যাপ প্রকাশ
করুন বিভাগগুলি অনুসরণ করতে পারেন। একমাত্র পার্থক্য হল যে আপনাকে অ্যাপের নাম
Debug Appএবং HTTP এন্ডপয়েন্ট URLhttp://example.com-এর মতো কিছুতে সেট করতে হবে। - আপনার লোকাল এনভায়রনমেন্টে সেট-আপ করা একটি IDE যা ডিবাগ করতে পারে। আমরা
Visual Studio CodeIDE এবং এর ডিফল্ট ডিবাগিং ফিচারগুলি এই নির্দেশিকায় উদাহরণ হিসেবে ব্যবহার করেছি। Gitইনস্টল করা আপনার লোকাল এনভায়রনমেন্টে।ngrokঅ্যাকাউন্ট।- আপনার
লোকাল এনভায়রনমেন্টে
gcloudইনস্টল করা এবং ইনিশিয়ালাইজ করা লেটেস্ট ভার্সন।
Java
- আপনার লোকাল এনভায়রনমেন্টে
Java SE 11's JDKইনস্টল করা লেটেস্ট স্থিতিশীল ভার্সন। - আপনার লোকাল এনভায়রনমেন্টে
Apache Mavenইনস্টল করা লেটেস্ট ভার্সন, এটি জাভা প্রোজেক্ট ম্যানেজ করতে ব্যবহার করা হয়। - মেসেজিংয়ের জন্য কনফিগার করা
একটি HTTP চ্যাট অ্যাপ। আপনি
দ্রুত শুরু করার নির্দেশিকার
পূর্বশর্ত,
এনভায়রনমেন্ট
সেট-আপ করুন,
এবং Google Chat-এ অ্যাপ প্রকাশ
করুন বিভাগগুলি অনুসরণ করতে পারেন। একমাত্র
পার্থক্য হল, আপনাকে অ্যাপের নাম
Debug Appএবং মেসেজ ট্রিগার HTTP এন্ডপয়েন্ট URL-কেhttp://example.com-এর মতো কিছুতে সেট করতে হবে। - আপনার লোকাল এনভায়রনমেন্টে সেট-আপ করা একটি IDE যা ডিবাগ করতে পারে। আমরা
Visual Studio CodeIDE এবং এর ডিফল্ট ডিবাগিং ফিচারগুলি এই নির্দেশিকায় উদাহরণ হিসেবে ব্যবহার করেছি। Gitইনস্টল করা আপনার লোকাল এনভায়রনমেন্টে।ngrokঅ্যাকাউন্ট।- আপনার
লোকাল এনভায়রনমেন্টে
gcloudইনস্টল করা এবং ইনিশিয়ালাইজ করা লেটেস্ট ভার্সন।
সর্বজনীনভাবে লোকালহোস্ট পরিষেবা উপলভ্য করা
Chat অ্যাপ যাতে অ্যাক্সেস করতে পারে সেই জন্য আপনাকে নিজের লোকাল এনভায়রনমেন্টকে ইন্টারনেটের সাথে কানেক্ট করতে হবে।
আপনার লোকাল এনভায়রনমেন্টে পাবলিক URL-এ করা HTTP অনুরোধ রিডাইরেক্ট করতে ngrok অ্যাপ্লিকেশন ব্যবহার করা হয়।
- আপনার লোকাল এনভায়রনমেন্টে কোনও ব্রাউজার খুলে, আপনার
ngrokঅ্যাকাউন্টে সাইন-ইন করুন। - অ্যাপ্লিকেশন ইনস্টল করুন এবং আপনার লোকাল
এনভায়রনমেন্টে
authtokenসেট-আপ করুন। - আপনার
ngrokঅ্যাকাউন্টে একটি স্ট্যাটিক ডোমেন তৈরি করুন, এই গাইডের নির্দেশাবলীতে এটিকেNGROK_STATIC_DOMAINহিসেবে উল্লেখ করা হয়েছে।
Chat অ্যাপ কনফিগার করা
আপনার স্ট্যাটিক ডোমেনে Chat অ্যাপের সব HTTP অনুরোধ পাঠানোর জন্য এটি কনফিগার করুন।
Google API Console-এ, Google Chat API পৃষ্ঠা খুলুন:
কনফিগারেশন ট্যাবে ক্লিক করুন।
ইন্ট্যার্যাক্টিভ ফিচার > কানেকশন সেটিংস > ট্রিগার বিকল্পে যান এবং আপনি যে ট্রিগার পরীক্ষা করতে চান (যেমন, মেসেজ) তার জন্য HTTP এন্ডপয়েন্ট URL সেট করুন:
https://NGROK_STATIC_DOMAINআপনার
ngrokঅ্যাকাউন্টে স্ট্যাটিক ডোমেন দিয়েNGROK_STATIC_DOMAINপরিবর্তন করুন।সেভ করুন বিকল্পে ক্লিক করুন।
ছবি ২. Chat অ্যাপ তার সমস্ত HTTP অনুরোধ
স্ট্যাটিক ডোমেনে পাঠায়। ngrok পাবলিক সার্ভিস, Chat অ্যাপ এবং লোকালি
এক্সিকিউট করা অ্যাপ্লিকেশন কোডের মধ্যে
ব্রিজ হিসেবে কাজ করে।
Chat অ্যাপ পরীক্ষা করা
আপনি নিজের Chat অ্যাপ লোকালি ডেপ্লয়, কনফিগার, পরীক্ষা, ডিবাগ ও অটোমেটিক রিলোড করতে পারবেন।
Node.js
আপনার লোকাল এনভায়রনমেন্টে GitHub থেকে
googleworkspace/add-ons-samplesরিপোজিটরি ক্লোন করুন এতে অ্যাপ্লিকেশন এক্সিকিউট করার কোড থাকে:git clone https://github.com/googleworkspace/add-ons-samples.gitআপনার লোকাল এনভায়রনমেন্টে ইনস্টল করা
Visual Studio CodeIDE থেকে, নিচে উল্লেখ করা কাজগুলি করুন:- নতুন উইন্ডোতে, ফোল্ডারটি খুলুন
add-ons-samples/node/chat/avatar-app। package.jsonফাইলে দুটি স্ক্রিপ্ট যোগ করে অটোমেটিক রিলোড ডিবাগ করার জন্য অ্যাপ্লিকেশন কনফিগার করুন:{ ... "scripts": { ... "debug": "node --inspect index.js", "debug-watch": "nodemon --watch ./ --exec npm run debug" } ... }রুট ডিরেক্টরি থেকে, অ্যাপ্লিকেশন ইনস্টল করুন:
npm installDebug 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"] }] }index.jsফাইলে HTTP অনুরোধ প্রসেস করা পজ করে এমন একটি ব্রেকপয়েন্ট যোগ করুন এবং আগে যোগ করাDebug Watchকনফিগারেশনের সাথে রান করা ও ডিবাগ করা শুরু করুন। অ্যাপ্লিকেশনটি এখন চলছে এবং9000পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।
ছবি ৩. অ্যাপ্লিকেশনটি চলছে এবং পোর্ট
9000-এ HTTP অনুরোধের জন্য অপেক্ষা করছে।
- নতুন উইন্ডোতে, ফোল্ডারটি খুলুন
আপনার লোকাল এনভায়র্নমেন্টে
ngrokঅ্যাপ্লিকেশন লঞ্চ করুন:ngrok http --domain=NGROK_STATIC_DOMAIN 9000আপনার
ngrokঅ্যাকাউন্টে স্ট্যাটিক ডোমেন দিয়েNGROK_STATIC_DOMAINপরিবর্তন করুন। সব অনুরোধ এখন আপনার লোকাল এনভায়রনমেন্ট এবং অ্যাপ্লিকেশনের ব্যবহার করা পোর্টে রিডাইরেক্ট করা হয়।
ছবি ৪.
ngrokসার্ভার চালু আছে এবং রিডাইরেক্ট করছে এমন টার্মিনাল।এছাড়াও,
ngrokঅ্যাপ্লিকেশনের মাধ্যমে আপনার লোকালহোস্টে একটি ওয়েব ইন্টারফেস শুরু করা হয়, আপনি ব্রাউজারে এটি খুলে সমস্ত অ্যাক্টিভিটি মনিটর করতে পারবেন।
ছবি ৫.
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস কোনও HTTP অনুরোধ দেখাচ্ছে না।সরাসরি মেসেজ পাঠিয়ে আপনার Chat অ্যাপ পরীক্ষা করে দেখুন:
Google Chat খুলুন।
নতুন চ্যাট বিকল্পে ক্লিক করুন।
ডায়ালগে, আপনার Chat অ্যাপের নাম লিখুন।
সার্চ ফলাফলে, আপনার Chat অ্যাপ খুঁজে দেখুন, যোগ করুন > Chat বিকল্পে ক্লিক করুন।
সরাসরি মেসেজ স্পেসে,
Helloটাইপ করেenterটিপুন। আপনার Chat অ্যাপ উত্তর দিচ্ছে না কারণ এটি অ্যাক্টিভভাবে ডিবাগ করা হচ্ছে।
আপনার লোকাল এনভায়রনমেন্টে
Visual Studio Code-এ, আপনি দেখতে পাবেন যে সেট করা ব্রেকপয়েন্টে এক্সিকিউশন পজ করা হয়েছে।
ছবি ৬. সেট করা ব্রেকপয়েন্টে এক্সিকিউশন পজ করা হয়েছে।
আপনি যখন
Visual Studio CodeGoogle Chat-এর টাইম-আউট হওয়ার আগে চ্যাট অ্যাপের ডিবাগার থেকে এক্সিকিউশন আবার শুরু করেন, তখন আপনার মেসেজের উত্তর দেওয়া হয়।আপনার লোকাল এনভায়রনমেন্টে
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে HTTP অনুরোধ ও উত্তর লগ চেক করতে পারবেন।
ছবি ৭.
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে HTTP অনুরোধ।অ্যাপ্লিকেশনের আচরণ পরিবর্তন করতে,
index.jsফাইলে উত্তরের টেক্সট আপডেট করুন। আপনি ফাইলটি সেভ করলে,nodemonআপডেট করা সোর্স কোড সহ অ্যাপ্লিকেশনটি অটোমেটিক রিলোড করে এবংVisual Studio Codeডিবাগ মোডে থাকে।
ছবি ৮. অ্যাপ্লিকেশনটি চলছে এবং কোড পরিবর্তন লোড করা অবস্থায়
9000পোর্টে HTTP অনুরোধ শুনছে।এইবার, স্পেসে দ্বিতীয় মেসেজ
Helloপাঠানোর পরিবর্তে, আপনি নিজের লোকাল এনভায়রনমেন্টেngrokঅ্যাপ্লিকেশনের হোস্ট করা ওয়েব ইন্টারফেসে লগ করা শেষ HTTP অনুরোধ বেছে নিতে এবংReplayবিকল্পে ক্লিক করতে পারবেন। গতবারের মতো, আপনার Chat অ্যাপ উত্তর দিচ্ছে না কারণ এটি অ্যাক্টিভভাবে ডিবাগ করা হচ্ছে।আপনি
Visual Studio Code-এর ডিবাগার থেকে এক্সিকিউশন আবার শুরু করলে, আপনার লোকাল এনভায়রনমেন্টেngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে আপনি দেখতে পাবেন যে অ্যাপ্লিকেশনটি মেসেজের আপডেট করা ভার্সন সহ একটি উত্তর জেনারেট করে।
Python
অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল-এর জন্য ব্যবহার করতে নতুন ব্যবহারকারীর ক্রেডেনশিয়াল সংগ্রহ করুন:
gcloud config set project PROJECT_IDgcloud auth application-default loginঅ্যাপের Cloud প্রোজেক্টের প্রোজেক্ট আইডি দিয়ে
PROJECT_IDপরিবর্তন করুন।আপনার লোকাল এনভায়রনমেন্টে GitHub থেকে
googleworkspace/add-ons-samplesরিপোজিটরি ক্লোন করুন এতে অ্যাপ্লিকেশন কোড আছে:git clone https://github.com/googleworkspace/add-ons-samples.gitআপনার লোকাল এনভায়রনমেন্টে ইনস্টল করা
Visual Studio CodeIDE থেকে, নিচে উল্লেখ করা কাজগুলি করুন:- নতুন উইন্ডোতে, ফোল্ডারটি খুলুন
add-ons-samples/python/chat/avatar-app। Python
env-এর জন্য নতুন ভার্চুয়াল এনভায়রনমেন্ট তৈরি করে সেটি অ্যাক্টিভেট করুন:virtualenv envsource env/bin/activateভার্চুয়াল এনভায়রনমেন্টে
pipব্যবহার করে প্রোজেক্টের সব ডিপেন্ডেন্সি ইনস্টল করুন:pip install -r requirements.txtরুট ডিরেক্টরিতে
.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" ] }] }main.pyফাইলে HTTP অনুরোধ প্রসেস করা পজ করে এমন একটি ব্রেকপয়েন্ট যোগ করুন এবং আগে যোগ করাDebug Watchকনফিগারেশনের সাথে রান করা ও ডিবাগ করা শুরু করুন। অ্যাপ্লিকেশনটি এখন চলছে এবং9000পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।
ছবি ৩. অ্যাপ্লিকেশনটি চলছে এবং পোর্ট
9000-এ HTTP অনুরোধের জন্য অপেক্ষা করছে।
- নতুন উইন্ডোতে, ফোল্ডারটি খুলুন
আপনার লোকাল এনভায়র্নমেন্টে
ngrokঅ্যাপ্লিকেশন লঞ্চ করুন:ngrok http --domain=NGROK_STATIC_DOMAIN 9000আপনার
ngrokঅ্যাকাউন্টে স্ট্যাটিক ডোমেন দিয়েNGROK_STATIC_DOMAINপরিবর্তন করুন। সব অনুরোধ এখন আপনার লোকাল এনভায়রনমেন্ট এবং অ্যাপ্লিকেশনের ব্যবহার করা পোর্টে রিডাইরেক্ট করা হয়।
ছবি ৪.
ngrokসার্ভার চালু আছে এবং রিডাইরেক্ট করছে এমন টার্মিনাল।এছাড়াও,
ngrokঅ্যাপ্লিকেশনের মাধ্যমে আপনার লোকালহোস্টে একটি ওয়েব ইন্টারফেস শুরু করা হয়, আপনি ব্রাউজারে এটি খুলে সমস্ত অ্যাক্টিভিটি মনিটর করতে পারবেন।
ছবি ৫.
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস কোনও HTTP অনুরোধ দেখাচ্ছে না।সরাসরি মেসেজ পাঠিয়ে আপনার Chat অ্যাপ পরীক্ষা করে দেখুন:
Google Chat খুলুন।
নতুন চ্যাট বিকল্পে ক্লিক করুন।
ডায়ালগে, আপনার Chat অ্যাপের নাম লিখুন।
সার্চ ফলাফলে, আপনার Chat অ্যাপ খুঁজে দেখুন, যোগ করুন > Chat বিকল্পে ক্লিক করুন।
সরাসরি মেসেজ স্পেসে,
Hey!টাইপ করেenterটিপুন। আপনার Chat অ্যাপ উত্তর দিচ্ছে না কারণ এটি অ্যাক্টিভভাবে ডিবাগ করা হচ্ছে।
আপনার লোকাল এনভায়রনমেন্টে
Visual Studio Code-এ, আপনি দেখতে পাবেন যে সেট করা ব্রেকপয়েন্টে এক্সিকিউশন পজ করা হয়েছে।
ছবি ৬. সেট করা ব্রেকপয়েন্টে এক্সিকিউশন পজ করা হয়েছে।
আপনি যখন
Visual Studio CodeGoogle Chat-এর টাইম-আউট হওয়ার আগে ডিবাগার থেকে এক্সিকিউশন আবার শুরু করেন, তখন মেসেজে আপনার নাম ও অবতার ছবি সহ উত্তর দেওয়া হয়।আপনার লোকাল এনভায়রনমেন্টে
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে HTTP অনুরোধ ও উত্তর লগ চেক করতে পারবেন।
ছবি ৭.
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে HTTP অনুরোধ।অ্যাপ্লিকেশনের আচরণ পরিবর্তন করতে,
main.pyফাইলেHello-এর জায়গায়Heyলিখুন। আপনি ফাইল সেভ করলে,Visual Studio Codeআপডেট করা সোর্স কোড সহ অ্যাপ্লিকেশন অটোমেটিক আবার লোড হয় এবং ডিবাগ মোডে থাকে।
ছবি ৮. অ্যাপ্লিকেশনটি চলছে এবং কোড পরিবর্তন লোড করা অবস্থায়
9000পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।এইবার, স্পেসে দ্বিতীয় মেসেজ
Hey!পাঠানোর পরিবর্তে, আপনি নিজের লোকাল এনভায়রনমেন্টেngrokঅ্যাপ্লিকেশনের হোস্ট করা ওয়েব ইন্টারফেসে লগ করা শেষ HTTP অনুরোধ বেছে নিতে এবংReplayবিকল্পে ক্লিক করতে পারবেন। গতবারের মতো, আপনার Chat অ্যাপ উত্তর দিচ্ছে না কারণ এটি অ্যাক্টিভভাবে ডিবাগ করা হচ্ছে।আপনি
Visual Studio Code-এর ডিবাগার থেকে এক্সিকিউশন আবার শুরু করলে, আপনার লোকাল এনভায়রনমেন্টেngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে আপনি দেখতে পাবেন যে অ্যাপ্লিকেশনটি মেসেজের আপডেট করা ভার্সন সহ একটি উত্তর জেনারেট করে।
Java
অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল-এর জন্য ব্যবহার করতে নতুন ব্যবহারকারীর ক্রেডেনশিয়াল সংগ্রহ করুন:
gcloud config set project PROJECT_IDgcloud auth application-default loginঅ্যাপের Cloud প্রোজেক্টের প্রোজেক্ট আইডি দিয়ে
PROJECT_IDপরিবর্তন করুন।আপনার লোকাল এনভায়রনমেন্টে GitHub থেকে
googleworkspace/add-ons-samplesরিপোজিটরি ক্লোন করুন এতে অ্যাপ্লিকেশন কোড আছে:git clone https://github.com/googleworkspace/add-ons-samples.gitআপনার লোকাল এনভায়রনমেন্টে ইনস্টল করা
Visual Studio CodeIDE থেকে, নিচে উল্লেখ করা কাজগুলি করুন:- নতুন উইন্ডোতে, ফোল্ডারটি খুলুন
add-ons-samples/java/chat/avatar-app। 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> ...আপনি এখন এটি লোকালি ডিবাগ মোডে লঞ্চ করতে পারবেন:
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 9000আপনার
ngrokঅ্যাকাউন্টে স্ট্যাটিক ডোমেন দিয়েNGROK_STATIC_DOMAINপরিবর্তন করুন। সব অনুরোধ এখন আপনার লোকাল এনভায়রনমেন্ট এবং অ্যাপ্লিকেশনের ব্যবহার করা পোর্টে রিডাইরেক্ট করা হয়।
ছবি ৪.
ngrokসার্ভার চালু আছে এবং রিডাইরেক্ট করছে এমন টার্মিনাল।এছাড়াও,
ngrokঅ্যাপ্লিকেশনের মাধ্যমে আপনার লোকালহোস্টে একটি ওয়েব ইন্টারফেস শুরু করা হয়, আপনি ব্রাউজারে এটি খুলে সমস্ত অ্যাক্টিভিটি মনিটর করতে পারবেন।
ছবি ৫.
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস কোনও HTTP অনুরোধ দেখাচ্ছে না।সরাসরি মেসেজ পাঠিয়ে আপনার Chat অ্যাপ পরীক্ষা করে দেখুন:
Google Chat খুলুন।
নতুন চ্যাট বিকল্পে ক্লিক করুন।
ডায়ালগে, আপনার Chat অ্যাপের নাম লিখুন।
সার্চ ফলাফলে, আপনার Chat অ্যাপ খুঁজে দেখুন, যোগ করুন > Chat বিকল্পে ক্লিক করুন।
সরাসরি মেসেজ স্পেসে,
Hey!টাইপ করেenterটিপুন। আপনার Chat অ্যাপ উত্তর দিচ্ছে না কারণ এটি অ্যাক্টিভভাবে ডিবাগ করা হচ্ছে।
আপনার লোকাল এনভায়রনমেন্টে
Visual Studio Code-এ, আপনি দেখতে পাবেন যে সেট করা ব্রেকপয়েন্টে এক্সিকিউশন পজ করা হয়েছে।
ছবি ৬. সেট করা ব্রেকপয়েন্টে এক্সিকিউশন পজ করা হয়েছে।
আপনি যখন
Visual Studio CodeGoogle Chat-এর টাইম-আউট হওয়ার আগে ডিবাগার থেকে এক্সিকিউশন আবার শুরু করেন, তখন মেসেজে আপনার নাম ও অবতার ছবি সহ উত্তর দেওয়া হয়।আপনার লোকাল এনভায়রনমেন্টে
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে HTTP অনুরোধ ও উত্তর লগ চেক করতে পারবেন।
ছবি ৭.
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে HTTP অনুরোধ।অ্যাপ্লিকেশনের আচরণ পরিবর্তন করতে,
Hello-এর জায়গায়Heyইনলাইন55App.javaফাইলটি বসান,mvnDebugপ্রসেস রিস্টার্ট করুন এবংRemote Debug Watchরিলঞ্চ করে আবার অ্যাটাচ ও রিস্টার্ট করে ডিবাগিং করুন।এইবার, স্পেসে দ্বিতীয় মেসেজ
Hey!পাঠানোর পরিবর্তে, আপনি নিজের লোকাল এনভায়রনমেন্টেngrokঅ্যাপ্লিকেশনের হোস্ট করা ওয়েব ইন্টারফেসে লগ করা শেষ HTTP অনুরোধ বেছে নিতে এবংReplayবিকল্পে ক্লিক করতে পারবেন। গতবারের মতো, আপনার Chat অ্যাপ উত্তর দিচ্ছে না কারণ এটি অ্যাক্টিভভাবে ডিবাগ করা হচ্ছে।আপনি
Visual Studio Code-এর ডিবাগার থেকে এক্সিকিউশন আবার শুরু করলে, আপনার লোকাল এনভায়রনমেন্টেngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে আপনি দেখতে পাবেন যে অ্যাপ্লিকেশনটি মেসেজের আপডেট করা ভার্সন সহ একটি উত্তর জেনারেট করে।
রিমোট এনভায়রনমেন্ট থেকে ডিবাগ করা
এই বিভাগে, আপনি নিজের Chat অ্যাপের সাথে ইন্টার্যাক্ট করেন যা রিমোট এনভায়রনমেন্টে এক্সিকিউট হয়।
ছবি ৯. রিমোট এনভায়রনমেন্ট থেকে ডিবাগ করা।
পূর্বশর্ত
- আপনার Chat অ্যাপের সাথে একটি ডাইরেক্ট মেসেজ স্পেস। আপনি বিভাগের নির্দেশাবলী অনুসরণ করতে পারেন দ্রুত শুরু করার নির্দেশিকা থেকে আপনার Chat অ্যাপ পরীক্ষা করুন এবং একটি শুরু করতে আপনার Chat অ্যাপ সার্চ করুন।
- আপনার অ্যাপ্লিকেশন রিমোট এনভায়রনমেন্টে চলছে এবং নির্দিষ্ট পোর্টে ডিবাগার
চালু করা আছে, এটিকে এই গাইডের নির্দেশাবলীতে
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নামের একটি লঞ্চ কনফিগার করুন: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-এর জায়গায় ডিবাগ পোর্ট বসান।আপনার অ্যাপের সোর্স কোডে এমন একটি ব্রেকপয়েন্ট যোগ করুন যা HTTP অনুরোধ প্রসেসিং পজ করে এবং আগে যোগ করা
Debug Remoteকনফিগারেশনের সাথে রান করা ও ডিবাগ করা শুরু করে।
আপনার Chat অ্যাপের ডাইরেক্ট মেসেজ স্পেসে, আপনি যা পরীক্ষা করতে চান তা টাইপ করুন
এবং enter টিপুন। আপনার
Chat অ্যাপ উত্তর দিচ্ছে না কারণ Visual Studio Code IDE-তে এটি অ্যাক্টিভভাবে
ডিবাগ করা
হচ্ছে।
সম্পর্কিত বিষয়
- কীভাবে সমস্যার লগ চালু ও কোয়েরি করতে হয় তা জানুন।
- "অ্যাপ উত্তর দিচ্ছে না", "Google Chat API শুধুমাত্র Google Workspace ব্যবহারকারীদের জন্য উপলভ্য" অথবা "ব্যবহারকারীদের স্পেস থেকে বাদ দেওয়া যেতে পারে" ইত্যাদি Google Chat অ্যাপ সংক্রান্ত সমস্যা কীভাবে সমাধান করবেন তা জানুন।
- কার্ড মেসেজ, ডায়ালগ বা লিঙ্ক প্রিভিউ রেন্ডার না হওয়া বা প্রত্যাশা অনুযায়ী কাজ না করার মতো কার্ড সংক্রান্ত সমস্যা কীভাবে সমাধান করবেন তা জানুন।
অ্যাড-অন নয় এমন চ্যাট অ্যাপ: 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চ্যাট অ্যাপের জন্য স্যাম্পেল কোড ব্যবহার করুন।