একজন গুগল ওয়ার্কস্পেস অ্যাড-অন ডেভেলপার হিসেবে, পরিবর্তন পরীক্ষা করতে বা জটিল সমস্যা সমাধান করতে আপনার কোড ডিবাগ করার প্রয়োজন হতে পারে। আপনার অ্যাপের আর্কিটেকচার, অ্যাপটি কী কাজ করে, কীভাবে আপনার অ্যাপটি ডেপ্লয় করা হয়েছে এবং আপনার পছন্দের উপর নির্ভর করে গুগল ওয়ার্কস্পেস অ্যাড-অন ডিবাগ করার বিভিন্ন উপায় রয়েছে।
এই পৃষ্ঠায় ngrok ব্যবহার করে একটি HTTP Google Workspace অ্যাড-অন ডিবাগ করার পদ্ধতি ব্যাখ্যা করা হয়েছে। ngrok হলো একটি সমন্বিত ইনগ্রেস প্ল্যাটফর্ম যা আপনি স্থানীয় ডেভেলপমেন্ট পরিবেশ পরীক্ষা করার জন্য ব্যবহার করতে পারেন। এই নির্দেশিকায়, আপনি একটি স্থানীয় পরিবেশে কোডের পরিবর্তন পরীক্ষা করবেন এবং একটি দূরবর্তী পরিবেশে সমস্যা সমাধান করবেন।
স্থানীয় উন্নয়ন পরিবেশ থেকে ডিবাগ করুন
এই অংশে, আপনি আপনার গুগল ওয়ার্কস্পেস অ্যাড-অনটি ব্যবহার করেন, যা আপনার স্থানীয় পরিবেশে চালু থাকে।
পূর্বশর্ত
নোড.জেএস
- আপনার স্থানীয় পরিবেশে
nodeএবংnpmএর সর্বশেষ সংস্করণ ইনস্টল করা আছে । আপনার স্থানীয় পরিবেশে
nodemonএর সর্বশেষ সংস্করণ ইনস্টল করা আছে । এটি স্বয়ংক্রিয়ভাবে রিলোড করার জন্য ব্যবহৃত হয়:npm install -g nodemonএকটি গুগল ক্লাউড প্রজেক্ট । আপনি কুইকস্টার্ট গাইডের 'পূর্বশর্ত' এবং 'পরিবেশ সেট আপ' অংশগুলো অনুসরণ করতে পারেন।
আপনার স্থানীয় পরিবেশে ডিবাগ করার জন্য গুগল ওয়ার্কস্পেস অ্যাড-অনের কোড। এই নির্দেশিকায়, দৃষ্টান্তমূলক উদ্দেশ্যে আমরা গিটহাব রিপোজিটরি
googleworkspace/add-ons-samplesএর3p-resourcesকোড উদাহরণ থেকে প্রিভিউ লিঙ্ক বৈশিষ্ট্যগুলি ব্যবহার করেছি।আপনার স্থানীয় পরিবেশে সেট আপ করা একটি IDE যা ডিবাগ করতে পারে। এই নির্দেশিকায় আমরা দৃষ্টান্তমূলক উদ্দেশ্যে
Visual Studio CodeIDE এবং এর ডিফল্ট ডিবাগিং বৈশিষ্ট্যগুলি ব্যবহার করেছি।একটি
ngrokঅ্যাকাউন্ট।আপনার স্থানীয় পরিবেশে
gcloudএর সর্বশেষ সংস্করণ ইনস্টল এবং চালু করা হয়েছে ।
পাইথন
- আপনার স্থানীয় পরিবেশে
python3এর সর্বশেষ সংস্করণ ইনস্টল করা আছে । - আপনার লোকাল এনভায়রনমেন্টে
pipএবংvirtualenvএর সর্বশেষ সংস্করণ ইনস্টল করা আছে। এগুলো যথাক্রমে পাইথন প্যাকেজ এবং ভার্চুয়াল এনভায়রনমেন্ট পরিচালনা করতে ব্যবহৃত হয়। - একটি গুগল ক্লাউড প্রজেক্ট । আপনি কুইকস্টার্ট গাইডের 'পূর্বশর্ত' এবং 'পরিবেশ সেট আপ' অংশগুলো অনুসরণ করতে পারেন।
- আপনার স্থানীয় পরিবেশে ডিবাগ করার জন্য গুগল ওয়ার্কস্পেস অ্যাড-অনের কোড। এই নির্দেশিকায়, দৃষ্টান্তমূলক উদ্দেশ্যে আমরা গিটহাব রিপোজিটরি
googleworkspace/add-ons-samplesএর3p-resourcesকোড উদাহরণ থেকে প্রিভিউ লিঙ্ক বৈশিষ্ট্যগুলি ব্যবহার করেছি। - আপনার স্থানীয় পরিবেশে সেট আপ করা একটি IDE যা ডিবাগ করতে পারে। এই নির্দেশিকায় আমরা দৃষ্টান্তমূলক উদ্দেশ্যে
Visual Studio CodeIDE এবং এর ডিফল্ট ডিবাগিং বৈশিষ্ট্যগুলি ব্যবহার করেছি। - একটি
ngrokঅ্যাকাউন্ট। - আপনার স্থানীয় পরিবেশে
gcloudএর সর্বশেষ সংস্করণ ইনস্টল এবং চালু করা হয়েছে ।
জাভা
- আপনার স্থানীয় পরিবেশে
Java SE 11's JDKএর সর্বশেষ স্থিতিশীল সংস্করণ ইনস্টল করা আছে । - আপনার লোকাল এনভায়রনমেন্টে
Apache Mavenসর্বশেষ সংস্করণ ইনস্টল করা আছে । এটি জাভা প্রজেক্ট পরিচালনা করতে ব্যবহৃত হয়। - একটি গুগল ক্লাউড প্রজেক্ট । আপনি কুইকস্টার্ট গাইডের 'পূর্বশর্ত' এবং 'পরিবেশ সেট আপ' অংশগুলো অনুসরণ করতে পারেন।
- আপনার স্থানীয় পরিবেশে ডিবাগ করার জন্য গুগল ওয়ার্কস্পেস অ্যাড-অনের কোড। এই নির্দেশিকায়, দৃষ্টান্তমূলক উদ্দেশ্যে আমরা গিটহাব রিপোজিটরি
googleworkspace/add-ons-samplesএর3p-resourcesকোড উদাহরণ থেকে প্রিভিউ লিঙ্ক বৈশিষ্ট্যগুলি ব্যবহার করেছি। - আপনার স্থানীয় পরিবেশে সেট আপ করা একটি IDE যা ডিবাগ করতে পারে। এই নির্দেশিকায় আমরা দৃষ্টান্তমূলক উদ্দেশ্যে
Visual Studio CodeIDE এবং এর ডিফল্ট ডিবাগিং বৈশিষ্ট্যগুলি ব্যবহার করেছি। - একটি
ngrokঅ্যাকাউন্ট। - আপনার স্থানীয় পরিবেশে
gcloudএর সর্বশেষ সংস্করণ ইনস্টল এবং চালু করা হয়েছে ।
লোকালহোস্ট পরিষেবাটিকে সর্বজনীনভাবে উপলব্ধ করুন
আপনার লোকাল এনভায়রনমেন্টকে ইন্টারনেটের সাথে সংযুক্ত করতে হবে, যাতে গুগল ওয়ার্কস্পেস অ্যাড-অনটি এটি অ্যাক্সেস করতে পারে। একটি পাবলিক ইউআরএল-এ করা HTTP রিকোয়েস্টগুলোকে আপনার লোকাল এনভায়রনমেন্টে রিডাইরেক্ট করার জন্য ngrok অ্যাপ্লিকেশনটি ব্যবহৃত হয়।
- আপনার স্থানীয় পরিবেশের একটি ব্রাউজারে আপনার
ngrokঅ্যাকাউন্টে সাইন ইন করুন। - অ্যাপ্লিকেশনটি ইনস্টল করুন এবং আপনার স্থানীয় পরিবেশে আপনার
authtokenসেট আপ করুন। - আপনার
ngrokঅ্যাকাউন্টে একটি স্ট্যাটিক ডোমেইন তৈরি করুন , এই গাইডের নির্দেশাবলীতে এটিকেNGROK_STATIC_DOMAINহিসাবে উল্লেখ করা হয়েছে।
অ্যাড-অন ডিপ্লয়মেন্ট তৈরি এবং ইনস্টল করুন
Google Workspace অ্যাড-অনটি এমনভাবে কনফিগার করুন যাতে এটি তার সমস্ত HTTP অনুরোধ আপনার স্ট্যাটিক ডোমেনে পাঠায়। আপনার ডিপ্লয়মেন্ট ফাইলটি নিম্নলিখিতের মতো দেখতে হবে:
{ "oauthScopes": [ "https://www.googleapis.com/auth/workspace.linkpreview", "https://www.googleapis.com/auth/workspace.linkcreate" ], "addOns": { "common": { "name": "Manage support cases", "logoUrl": "https://developers.google.com/workspace/add-ons/images/support-icon.png", "layoutProperties": { "primaryColor": "#dd4b39" } }, "docs": { "linkPreviewTriggers": [ { "runFunction": "NGROK_STATIC_DOMAIN", "patterns": [ { "hostPattern": "example.com", "pathPrefix": "support/cases" }, { "hostPattern": "*.example.com", "pathPrefix": "cases" }, { "hostPattern": "cases.example.com" } ], "labelText": "Support case", "localizedLabelText": { "es": "Caso de soporte" }, "logoUrl": "https://developers.google.com/workspace/add-ons/images/support-icon.png" } ], "createActionTriggers": [ { "id": "createCase", "labelText": "Create support case", "localizedLabelText": { "es": "Crear caso de soporte" }, "runFunction": "$URL2", "logoUrl": "https://developers.google.com/workspace/add-ons/images/support-icon.png" } ] }, "httpOptions": { "granularOauthPermissionSupport": "OPT_IN" } } }NGROK_STATIC_DOMAINজায়গায় আপনারngrokঅ্যাকাউন্টের স্ট্যাটিক ডোমেইনটি বসান।গুগল ক্লাউড প্রজেক্টটি ব্যবহারের জন্য সেট করুন:
gcloud config set project PROJECT_IDঅ্যাপ্লিকেশনের ডিফল্ট ক্রেডেনশিয়াল হিসেবে ব্যবহারের জন্য নতুন ব্যবহারকারীর ক্রেডেনশিয়াল সংগ্রহ করুন:
gcloud auth application-default loginPROJECT_IDজায়গায় অ্যাপটির গুগল ক্লাউড প্রজেক্টের প্রজেক্ট আইডিটি বসান।ডিপ্লয়মেন্ট তৈরি করুন:
gcloud workspace-add-ons deployments create manageSupportCases \ --deployment-file=DEPLOYMENT_FILE_PATHDEPLOYMENT_FILE_PATHজায়গায় আপনার ডিপ্লয়মেন্ট ফাইলের পাথটি বসান।ডেপ্লয়মেন্টটি ইনস্টল করুন:
gcloud workspace-add-ons deployments install manageSupportCasesচিত্র ২। গুগল ওয়ার্কস্পেস অ্যাড-অন তার সমস্ত HTTP অনুরোধ স্ট্যাটিক ডোমেইনে পাঠায়। `ngrok` পাবলিক সার্ভিসটি গুগল ওয়ার্কস্পেস অ্যাড-অন এবং স্থানীয়ভাবে চলমান অ্যাপ্লিকেশন কোডের মধ্যে একটি সেতু হিসেবে কাজ করে।
Google Workspace অ্যাড-অনটি পরীক্ষা করুন
আপনি আপনার গুগল ওয়ার্কস্পেস অ্যাড-অনটি স্থানীয়ভাবে ডেপ্লয়, টেস্ট, ডিবাগ এবং অটো-রিলোড করতে পারবেন।
নোড.জেএস
আপনার স্থানীয় পরিবেশে ইনস্টল করা
Visual Studio CodeIDE থেকে নিম্নলিখিতগুলি করুন:- একটি নতুন উইন্ডোতে
add-ons-samples/node/3p-resourcesফোল্ডারটি খুলুন। package.jsonফাইলে একটি ডিপেন্ডেন্সি এবং দুটি স্ক্রিপ্ট যোগ করে অ্যাপ্লিকেশনটিকে লোকাল রান এবং অটো-রিলোড ডিবাগের জন্য কনফিগার করুন:{ ... "dependencies": { ... "@google-cloud/functions-framework": "^3.3.0" }, "scripts": { ... "start": "npx functions-framework --target=createLinkPreview --port=9000", "debug-watch": "nodemon --watch ./ --exec npm start" } ... }রুট ডিরেক্টরি থেকে অ্যাপ্লিকেশনটি ইনস্টল করুন:
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 অনুরোধ দেখা যাচ্ছে না।একটি টেস্টার অ্যাকাউন্ট ব্যবহার করে নতুন একটি গুগল ডকে কেস ইউআরএল প্রিভিউ করার মাধ্যমে আপনার গুগল ওয়ার্কস্পেস অ্যাড-অনটি পরীক্ষা করুন:
একটি গুগল ডক তৈরি করুন।
নিম্নলিখিত লিঙ্কটি টাইপ করুন এবং
enterচাপুন:https://example.com/support/case/?name=Name1&description=Description1&priority=P1লিঙ্কটিতে ক্লিক করুন।
আপনার স্থানীয় পরিবেশে থাকা
Visual Studio Codeআপনি দেখতে পাবেন যে, সেট করা ব্রেকপয়েন্টটিতে প্রোগ্রামটি থেমে আছে।
চিত্র ৬। নির্ধারিত ব্রেকপয়েন্টে প্রোগ্রামটি থামানো হয়েছে। গুগল ওয়ার্কস্পেস অ্যাড-অনের টাইম আউট হওয়ার আগে আপনি যখন
Visual Studio Codeডিবাগার থেকে প্রোগ্রামটি পুনরায় চালু করেন, তখন গুগল ওয়ার্কস্পেস অ্যাড-অনটি ক্যাশে থেকে গুগল ডকে লিঙ্ক প্রিভিউ প্রদর্শন করে।আপনি আপনার স্থানীয় পরিবেশে
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে HTTP অনুরোধ এবং প্রতিক্রিয়া লগগুলি পরীক্ষা করতে পারেন।
চিত্র ৭. ngrok) অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে পাঠানো HTTP অনুরোধ।অ্যাপ্লিকেশনটির আচরণ পরিবর্তন করতে,
index.jsফাইলের51লাইনে Case-এর পরিবর্তেCaseCase:ব্যবহার করুন। ফাইলটি সেভ করলে,nodemonস্বয়ংক্রিয়ভাবে আপডেট করা সোর্স কোড দিয়ে অ্যাপ্লিকেশনটি রিলোড করে এবংVisual Studio Codeডিবাগ মোডে থেকে যায়।
চিত্র ৮। অ্যাপ্লিকেশনটা চলছে এবং কোড পরিবর্তনটি লোড হওয়ার পর পোর্ট 9000এ HTTP অনুরোধের জন্য অপেক্ষা করছে।This time, instead of clicking the link and waiting for a few seconds in a new Google Doc, you can select the last HTTP request logged on the web interface hosted by the
ngrokapplication in your local environment and clickReplay. Same as last time, your Google Workspace add-on doesn't reply because it's being actively debugged .যখন আপনি
Visual Studio Codeডিবাগার থেকে প্রোগ্রামটি পুনরায় চালু করেন, তখন আপনার স্থানীয় পরিবেশে থাকাngrokঅ্যাপ্লিকেশনের ওয়েব ইন্টারফেস থেকে দেখতে পাবেন যে, অ্যাপ্লিকেশনটি প্রিভিউ কার্ডের আপডেট করা সংস্করণসহ একটি প্রতিক্রিয়া তৈরি করছে।
পাইথন
আপনার স্থানীয় পরিবেশে ইনস্টল করা
Visual Studio CodeIDE থেকে নিম্নলিখিতগুলি করুন:- একটি নতুন উইন্ডোতে
add-ons-samples/python/3p-resources/create_link_previewফোল্ডারটি খুলুন। 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", "create_link_preview", "--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 অনুরোধ দেখা যাচ্ছে না।একটি টেস্টার অ্যাকাউন্ট ব্যবহার করে নতুন একটি গুগল ডকে কেস ইউআরএল প্রিভিউ করার মাধ্যমে আপনার গুগল ওয়ার্কস্পেস অ্যাড-অনটি পরীক্ষা করুন:
একটি গুগল ডক তৈরি করুন।
নিম্নলিখিত লিঙ্কটি টাইপ করুন এবং
enterচাপুন:https://example.com/support/case/?name=Name1&description=Description1&priority=P1লিঙ্কটিতে ক্লিক করুন।
আপনার স্থানীয় পরিবেশে থাকা
Visual Studio Codeআপনি দেখতে পাবেন যে, সেট করা ব্রেকপয়েন্টটিতে প্রোগ্রামটি থেমে আছে।
চিত্র ৬। নির্ধারিত ব্রেকপয়েন্টে প্রোগ্রামটি থামানো হয়েছে। গুগল ওয়ার্কস্পেস অ্যাড-অনের টাইম আউট হওয়ার আগে আপনি যখন
Visual Studio Codeডিবাগার থেকে প্রোগ্রামটি পুনরায় চালু করেন, তখন গুগল ওয়ার্কস্পেস অ্যাড-অনটি ক্যাশে থেকে গুগল ডকে লিঙ্ক প্রিভিউ প্রদর্শন করে।আপনি আপনার স্থানীয় পরিবেশে
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে HTTP অনুরোধ এবং প্রতিক্রিয়া লগগুলি পরীক্ষা করতে পারেন।
চিত্র ৭. ngrok) অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে পাঠানো HTTP অনুরোধ।অ্যাপ্লিকেশনটির আচরণ পরিবর্তন করতে,
main.pyফাইলের56লাইনে Case-এর পরিবর্তেCaseCase:ব্যবহার করুন। ফাইলটি সেভ করলে,Visual Studio Codeস্বয়ংক্রিয়ভাবে আপডেট করা সোর্স কোড দিয়ে অ্যাপ্লিকেশনটি পুনরায় লোড করে এবং ডিবাগ মোডে থেকে যায়।
চিত্র ৮। অ্যাপ্লিকেশনটা চলছে এবং কোড পরিবর্তনটি লোড হওয়ার পর পোর্ট 9000এ HTTP অনুরোধের জন্য অপেক্ষা করছে।এবার, লিঙ্কে ক্লিক করে একটি নতুন গুগল ডকে কয়েক সেকেন্ড অপেক্ষা করার পরিবর্তে, আপনি আপনার লোকাল এনভায়রনমেন্টে
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেসে লগ করা সর্বশেষ HTTP রিকোয়েস্টটি সিলেক্ট করেReplay) ক্লিক করতে পারেন। আগের বারের মতোই, আপনার গুগল ওয়ার্কস্পেস অ্যাড-অনটি কোনো উত্তর দেবে না, কারণ এটি সক্রিয়ভাবে ডিবাগ করা হচ্ছে।যখন আপনি
Visual Studio Codeডিবাগার থেকে প্রোগ্রামটি পুনরায় চালু করেন, তখন আপনার স্থানীয় পরিবেশে থাকাngrokঅ্যাপ্লিকেশনের ওয়েব ইন্টারফেস থেকে দেখতে পাবেন যে, অ্যাপ্লিকেশনটি প্রিভিউ কার্ডের আপডেট করা সংস্করণসহ একটি প্রতিক্রিয়া তৈরি করছে।
জাভা
আপনার স্থানীয় পরিবেশে ইনস্টল করা
Visual Studio CodeIDE থেকে নিম্নলিখিতগুলি করুন:- একটি নতুন উইন্ডোতে
add-ons-samples/java/3p-resourcesফোল্ডারটি খুলুন। pom.xmlফাইলে Cloud Functions Framework-এর বিল্ড প্লাগইনfunction-maven-pluginযোগ করে Maven প্রজেক্টটি কনফিগার করুন, যাতেCreateLinkPreviewস্থানীয়ভাবে9000পোর্টে পোর্টে রান করে।... <plugin> <groupId>com.google.cloud.functions</groupId> <artifactId>function-maven-plugin</artifactId> <version>0.11.0</version> <configuration> <functionTarget>CreateLinkPreview</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 }] }CreateLinkPreview.javaফাইলে একটি ব্রেকপয়েন্ট যোগ করুন যা HTTP অনুরোধ প্রক্রিয়াকরণকে থামিয়ে দেবে, এবং পূর্বে যোগ করাRemote Debug Watchকনফিগারেশন ব্যবহার করে অ্যাটাচ ও ডিবাগিং শুরু করুন । অ্যাপ্লিকেশনটি এখন চলছে এবং9000পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।
চিত্র ৩. অ্যাপ্লিকেশনটি চালু আছে এবং 9000পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।
- একটি নতুন উইন্ডোতে
আপনার স্থানীয় পরিবেশে
ngrokঅ্যাপ্লিকেশনটি চালু করুন:ngrok http --domain=NGROK_STATIC_DOMAIN 9000NGROK_STATIC_DOMAINজায়গায় আপনারngrokঅ্যাকাউন্টের স্ট্যাটিক ডোমেইনটি বসান। এখন থেকে সমস্ত অনুরোধ আপনার লোকাল এনভায়রনমেন্ট এবং অ্যাপ্লিকেশন দ্বারা ব্যবহৃত পোর্টে রিডাইরেক্ট করা হবে।
চিত্র ৪। টার্মিনালটি যেখানে ngrokসার্ভার চলছে এবং রিডাইরেক্ট করছে।ngrokঅ্যাপ্লিকেশনটি আপনার লোকালহোস্টে একটি ওয়েব ইন্টারফেসও চালু করে। ব্রাউজারে এটি খুলে সমস্ত কার্যকলাপ পর্যবেক্ষণ করুন।
চিত্র ৫। ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস, যেখানে কোনো HTTP অনুরোধ দেখা যাচ্ছে না।একটি টেস্টার অ্যাকাউন্ট ব্যবহার করে নতুন একটি গুগল ডকে কেস ইউআরএল প্রিভিউ করার মাধ্যমে আপনার গুগল ওয়ার্কস্পেস অ্যাড-অনটি পরীক্ষা করুন:
একটি গুগল ডক তৈরি করুন।
নিম্নলিখিত লিঙ্কটি টাইপ করুন এবং
enterচাপুন:https://example.com/support/case/?name=Name1&description=Description1&priority=P1লিঙ্কটিতে ক্লিক করুন।
আপনার স্থানীয় পরিবেশে থাকা
Visual Studio Codeআপনি দেখতে পাবেন যে, সেট করা ব্রেকপয়েন্টটিতে প্রোগ্রামটি থেমে আছে।
চিত্র ৬। নির্ধারিত ব্রেকপয়েন্টে প্রোগ্রামটি থামানো হয়েছে। গুগল ওয়ার্কস্পেস অ্যাড-অনের টাইম আউট হওয়ার আগে আপনি যখন
Visual Studio Codeডিবাগার থেকে প্রোগ্রামটি পুনরায় চালু করেন, তখন গুগল ওয়ার্কস্পেস অ্যাড-অনটি ক্যাশে থেকে গুগল ডকে লিঙ্ক প্রিভিউ প্রদর্শন করে।আপনি আপনার স্থানীয় পরিবেশে
ngrokঅ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে HTTP অনুরোধ এবং প্রতিক্রিয়া লগগুলি পরীক্ষা করতে পারেন।
চিত্র ৭. ngrok) অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে পাঠানো HTTP অনুরোধ।অ্যাপ্লিকেশনটির আচরণ পরিবর্তন করতে,
CreateLinkPreview.javaফাইলের78লাইনে Case-এর পরিবর্তেCaseCase:ব্যবহার করুন,mvnDebugপ্রসেসটি রিস্টার্ট করুন, এবং ডিবাগিং পুনরায় অ্যাটাচ ও রিস্টার্ট করার জন্যRemote Debug Watchরিলঞ্চ করুন।এবার, লিঙ্কে ক্লিক করে একটি নতুন গুগল ডকে কয়েক সেকেন্ড অপেক্ষা করার পরিবর্তে, আপনি আপনার লোকাল এনভায়রনমেন্টে
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": "Debug Remote", "hostName": "127.0.0.1", "port": LOCAL_DEBUG_PORT }] }LOCAL_DEBUG_PORTজায়গায় আপনার স্থানীয় পরিবেশের ডিবাগ পোর্টটি বসান।আপনার অ্যাপের সোর্স কোডে একটি ব্রেকপয়েন্ট যোগ করুন যা HTTP অনুরোধ প্রক্রিয়াকরণকে থামিয়ে দেবে, এবং পূর্বে যোগ করা
Debug Remoteকনফিগারেশন ব্যবহার করে চালানো ও ডিবাগ করা শুরু করুন ।আপনার ইনস্টল করা গুগল ওয়ার্কস্পেস অ্যাড-অনটি ব্যবহার করুন। আপনার গুগল ওয়ার্কস্পেস অ্যাড-অনটি সাড়া দিচ্ছে না, কারণ এটি
Visual Studio CodeIDE-তে সক্রিয়ভাবে ডিবাগ করা হচ্ছে।
সম্পর্কিত বিষয়
- এরর লগ কীভাবে কোয়েরি করতে হয় তা জানুন।