HTTP Google Workspace অ্যাড-অন পরীক্ষা করে ডিবাগ করুন

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

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

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

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

স্থানীয় ডেভেলপমেন্ট পরিবেশে ডিবাগ করুন।
চিত্র ১। স্থানীয় উন্নয়ন পরিবেশে ডিবাগ করুন।

পূর্বশর্ত

নোড.জেএস

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

    npm install -g nodemon
  • একটি গুগল ক্লাউড প্রজেক্ট । আপনি কুইকস্টার্ট গাইডের 'পূর্বশর্ত' এবং 'পরিবেশ সেট আপ' অংশগুলো অনুসরণ করতে পারেন।

  • আপনার স্থানীয় পরিবেশে ডিবাগ করার জন্য গুগল ওয়ার্কস্পেস অ্যাড-অনের কোড। এই নির্দেশিকায়, দৃষ্টান্তমূলক উদ্দেশ্যে আমরা গিটহাব রিপোজিটরি googleworkspace/add-ons-samples এর 3p-resources কোড উদাহরণ থেকে প্রিভিউ লিঙ্ক বৈশিষ্ট্যগুলি ব্যবহার করেছি।

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

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

  • আপনার স্থানীয় পরিবেশে gcloud এর সর্বশেষ সংস্করণ ইনস্টল এবং চালু করা হয়েছে

পাইথন

  • আপনার স্থানীয় পরিবেশে python3 এর সর্বশেষ সংস্করণ ইনস্টল করা আছে
  • আপনার লোকাল এনভায়রনমেন্টে pip এবং virtualenv এর সর্বশেষ সংস্করণ ইনস্টল করা আছে। এগুলো যথাক্রমে পাইথন প্যাকেজ এবং ভার্চুয়াল এনভায়রনমেন্ট পরিচালনা করতে ব্যবহৃত হয়।
  • একটি গুগল ক্লাউড প্রজেক্ট । আপনি কুইকস্টার্ট গাইডের 'পূর্বশর্ত' এবং 'পরিবেশ সেট আপ' অংশগুলো অনুসরণ করতে পারেন।
  • আপনার স্থানীয় পরিবেশে ডিবাগ করার জন্য গুগল ওয়ার্কস্পেস অ্যাড-অনের কোড। এই নির্দেশিকায়, দৃষ্টান্তমূলক উদ্দেশ্যে আমরা গিটহাব রিপোজিটরি googleworkspace/add-ons-samples এর 3p-resources কোড উদাহরণ থেকে প্রিভিউ লিঙ্ক বৈশিষ্ট্যগুলি ব্যবহার করেছি।
  • আপনার স্থানীয় পরিবেশে সেট আপ করা একটি IDE যা ডিবাগ করতে পারে। এই নির্দেশিকায় আমরা দৃষ্টান্তমূলক উদ্দেশ্যে Visual Studio Code IDE এবং এর ডিফল্ট ডিবাগিং বৈশিষ্ট্যগুলি ব্যবহার করেছি।
  • একটি ngrok অ্যাকাউন্ট।
  • আপনার স্থানীয় পরিবেশে gcloud এর সর্বশেষ সংস্করণ ইনস্টল এবং চালু করা হয়েছে

জাভা

  • আপনার স্থানীয় পরিবেশে Java SE 11's JDK এর সর্বশেষ স্থিতিশীল সংস্করণ ইনস্টল করা আছে
  • আপনার লোকাল এনভায়রনমেন্টে Apache Maven সর্বশেষ সংস্করণ ইনস্টল করা আছে । এটি জাভা প্রজেক্ট পরিচালনা করতে ব্যবহৃত হয়।
  • একটি গুগল ক্লাউড প্রজেক্ট । আপনি কুইকস্টার্ট গাইডের 'পূর্বশর্ত' এবং 'পরিবেশ সেট আপ' অংশগুলো অনুসরণ করতে পারেন।
  • আপনার স্থানীয় পরিবেশে ডিবাগ করার জন্য গুগল ওয়ার্কস্পেস অ্যাড-অনের কোড। এই নির্দেশিকায়, দৃষ্টান্তমূলক উদ্দেশ্যে আমরা গিটহাব রিপোজিটরি googleworkspace/add-ons-samples এর 3p-resources কোড উদাহরণ থেকে প্রিভিউ লিঙ্ক বৈশিষ্ট্যগুলি ব্যবহার করেছি।
  • আপনার স্থানীয় পরিবেশে সেট আপ করা একটি IDE যা ডিবাগ করতে পারে। এই নির্দেশিকায় আমরা দৃষ্টান্তমূলক উদ্দেশ্যে Visual Studio Code IDE এবং এর ডিফল্ট ডিবাগিং বৈশিষ্ট্যগুলি ব্যবহার করেছি।
  • একটি ngrok অ্যাকাউন্ট।
  • আপনার স্থানীয় পরিবেশে gcloud এর সর্বশেষ সংস্করণ ইনস্টল এবং চালু করা হয়েছে

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

আপনার লোকাল এনভায়রনমেন্টকে ইন্টারনেটের সাথে সংযুক্ত করতে হবে, যাতে গুগল ওয়ার্কস্পেস অ্যাড-অনটি এটি অ্যাক্সেস করতে পারে। একটি পাবলিক ইউআরএল-এ করা HTTP রিকোয়েস্টগুলোকে আপনার লোকাল এনভায়রনমেন্টে রিডাইরেক্ট করার জন্য ngrok অ্যাপ্লিকেশনটি ব্যবহৃত হয়।

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

অ্যাড-অন ডিপ্লয়মেন্ট তৈরি এবং ইনস্টল করুন

  1. 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 অ্যাকাউন্টের স্ট্যাটিক ডোমেইনটি বসান।

  2. গুগল ক্লাউড প্রজেক্টটি ব্যবহারের জন্য সেট করুন:

    gcloud config set project PROJECT_ID
  3. অ্যাপ্লিকেশনের ডিফল্ট ক্রেডেনশিয়াল হিসেবে ব্যবহারের জন্য নতুন ব্যবহারকারীর ক্রেডেনশিয়াল সংগ্রহ করুন:

    gcloud auth application-default login

    PROJECT_ID জায়গায় অ্যাপটির গুগল ক্লাউড প্রজেক্টের প্রজেক্ট আইডিটি বসান।

  4. ডিপ্লয়মেন্ট তৈরি করুন:

    gcloud workspace-add-ons deployments create manageSupportCases \
        --deployment-file=DEPLOYMENT_FILE_PATH

    DEPLOYMENT_FILE_PATH জায়গায় আপনার ডিপ্লয়মেন্ট ফাইলের পাথটি বসান।

  5. ডেপ্লয়মেন্টটি ইনস্টল করুন:

    gcloud workspace-add-ons deployments install manageSupportCases
    গুগল ওয়ার্কস্পেস অ্যাড-অন তার সমস্ত HTTP অনুরোধ স্ট্যাটিক ডোমেইনে পাঠায়।
    চিত্র ২। গুগল ওয়ার্কস্পেস অ্যাড-অন তার সমস্ত HTTP অনুরোধ স্ট্যাটিক ডোমেইনে পাঠায়। `ngrok` পাবলিক সার্ভিসটি গুগল ওয়ার্কস্পেস অ্যাড-অন এবং স্থানীয়ভাবে চলমান অ্যাপ্লিকেশন কোডের মধ্যে একটি সেতু হিসেবে কাজ করে।

Google Workspace অ্যাড-অনটি পরীক্ষা করুন

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

নোড.জেএস

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

    1. একটি নতুন উইন্ডোতে add-ons-samples/node/3p-resources ফোল্ডারটি খুলুন।
    2. 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"
          }
          ...
      }
      
    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 অনুরোধের জন্য অপেক্ষা করছে।

      অ্যাপ্লিকেশনটি চালু আছে এবং ৯০০০ পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।
      চিত্র ৩. অ্যাপ্লিকেশনটি চালু আছে এবং 9000 পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।
  2. আপনার স্থানীয় পরিবেশে ngrok অ্যাপ্লিকেশনটি চালু করুন:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

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

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

    ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেসে কোনো HTTP অনুরোধ দেখা যাচ্ছে না।
    চিত্র ৫। ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস, যেখানে কোনো HTTP অনুরোধ দেখা যাচ্ছে না।
  4. একটি টেস্টার অ্যাকাউন্ট ব্যবহার করে নতুন একটি গুগল ডকে কেস ইউআরএল প্রিভিউ করার মাধ্যমে আপনার গুগল ওয়ার্কস্পেস অ্যাড-অনটি পরীক্ষা করুন:

    • একটি গুগল ডক তৈরি করুন।

      একটি গুগল ডক তৈরি করুন

    • নিম্নলিখিত লিঙ্কটি টাইপ করুন এবং enter চাপুন:

      https://example.com/support/case/?name=Name1&description=Description1&priority=P1
      
    • লিঙ্কটিতে ক্লিক করুন।

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

    নির্ধারিত ব্রেকপয়েন্টে এক্সিকিউশনটি থামানো হয়েছে।
    চিত্র ৬। নির্ধারিত ব্রেকপয়েন্টে প্রোগ্রামটি থামানো হয়েছে।
  6. গুগল ওয়ার্কস্পেস অ্যাড-অনের টাইম আউট হওয়ার আগে আপনি যখন Visual Studio Code ডিবাগার থেকে প্রোগ্রামটি পুনরায় চালু করেন, তখন গুগল ওয়ার্কস্পেস অ্যাড-অনটি ক্যাশে থেকে গুগল ডকে লিঙ্ক প্রিভিউ প্রদর্শন করে।

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

    ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে আসা HTTP অনুরোধ।
    চিত্র ৭. ngrok ) অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে পাঠানো HTTP অনুরোধ।
  8. অ্যাপ্লিকেশনটির আচরণ পরিবর্তন করতে, index.js ফাইলের 51 লাইনে Case-এর পরিবর্তে Case Case: ব্যবহার করুন। ফাইলটি সেভ করলে, nodemon স্বয়ংক্রিয়ভাবে আপডেট করা সোর্স কোড দিয়ে অ্যাপ্লিকেশনটি রিলোড করে এবং Visual Studio Code ডিবাগ মোডে থেকে যায়।

    কোড পরিবর্তনটি লোড করার পর অ্যাপ্লিকেশনটি চলছে এবং ৯০০০ পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।
    চিত্র ৮। অ্যাপ্লিকেশনটা চলছে এবং কোড পরিবর্তনটি লোড হওয়ার পর পোর্ট 9000 এ HTTP অনুরোধের জন্য অপেক্ষা করছে।
  9. 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 ngrok application in your local environment and click Replay . Same as last time, your Google Workspace add-on doesn't reply because it's being actively debugged .

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

পাইথন

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

    1. একটি নতুন উইন্ডোতে add-ons-samples/python/3p-resources/create_link_preview ফোল্ডারটি খুলুন।
    2. Python env জন্য একটি ভার্চুয়াল এনভায়রনমেন্ট তৈরি করুন এবং সেটি সক্রিয় করুন:

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

      pip install -r requirements.txt
    4. রুট ডিরেক্টরিতে .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"
              ]
          }]
      }
      
    5. main.py ফাইলে একটি ব্রেকপয়েন্ট যোগ করুন যা HTTP অনুরোধ প্রক্রিয়াকরণকে থামিয়ে দেবে, এবং পূর্বে যোগ করা Debug Watch কনফিগারেশন ব্যবহার করে অ্যাপ্লিকেশনটি চালানো ও ডিবাগ করা শুরু করুন । অ্যাপ্লিকেশনটি এখন চলছে এবং 9000 পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।

      অ্যাপ্লিকেশনটি চালু আছে এবং ৯০০০ পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।
      চিত্র ৩. অ্যাপ্লিকেশনটি চালু আছে এবং 9000 পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।
  2. আপনার স্থানীয় পরিবেশে ngrok অ্যাপ্লিকেশনটি চালু করুন:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

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

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

    ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেসে কোনো HTTP অনুরোধ দেখা যাচ্ছে না।
    চিত্র ৫। ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস, যেখানে কোনো HTTP অনুরোধ দেখা যাচ্ছে না।
  4. একটি টেস্টার অ্যাকাউন্ট ব্যবহার করে নতুন একটি গুগল ডকে কেস ইউআরএল প্রিভিউ করার মাধ্যমে আপনার গুগল ওয়ার্কস্পেস অ্যাড-অনটি পরীক্ষা করুন:

    • একটি গুগল ডক তৈরি করুন।

      একটি গুগল ডক তৈরি করুন

    • নিম্নলিখিত লিঙ্কটি টাইপ করুন এবং enter চাপুন:

      https://example.com/support/case/?name=Name1&description=Description1&priority=P1
      
    • লিঙ্কটিতে ক্লিক করুন।

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

    নির্ধারিত ব্রেকপয়েন্টে এক্সিকিউশনটি থামানো হয়েছে।
    চিত্র ৬। নির্ধারিত ব্রেকপয়েন্টে প্রোগ্রামটি থামানো হয়েছে।
  6. গুগল ওয়ার্কস্পেস অ্যাড-অনের টাইম আউট হওয়ার আগে আপনি যখন Visual Studio Code ডিবাগার থেকে প্রোগ্রামটি পুনরায় চালু করেন, তখন গুগল ওয়ার্কস্পেস অ্যাড-অনটি ক্যাশে থেকে গুগল ডকে লিঙ্ক প্রিভিউ প্রদর্শন করে।

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

    ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে আসা HTTP অনুরোধ।
    চিত্র ৭. ngrok ) অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে পাঠানো HTTP অনুরোধ।
  8. অ্যাপ্লিকেশনটির আচরণ পরিবর্তন করতে, main.py ফাইলের 56 লাইনে Case-এর পরিবর্তে Case Case: ব্যবহার করুন। ফাইলটি সেভ করলে, Visual Studio Code স্বয়ংক্রিয়ভাবে আপডেট করা সোর্স কোড দিয়ে অ্যাপ্লিকেশনটি পুনরায় লোড করে এবং ডিবাগ মোডে থেকে যায়।

    কোড পরিবর্তনটি লোড করার পর অ্যাপ্লিকেশনটি চলছে এবং ৯০০০ পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।
    চিত্র ৮। অ্যাপ্লিকেশনটা চলছে এবং কোড পরিবর্তনটি লোড হওয়ার পর পোর্ট 9000 এ HTTP অনুরোধের জন্য অপেক্ষা করছে।
  9. এবার, লিঙ্কে ক্লিক করে একটি নতুন গুগল ডকে কয়েক সেকেন্ড অপেক্ষা করার পরিবর্তে, আপনি আপনার লোকাল এনভায়রনমেন্টে ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেসে লগ করা সর্বশেষ HTTP রিকোয়েস্টটি সিলেক্ট করে Replay ) ক্লিক করতে পারেন। আগের বারের মতোই, আপনার গুগল ওয়ার্কস্পেস অ্যাড-অনটি কোনো উত্তর দেবে না, কারণ এটি সক্রিয়ভাবে ডিবাগ করা হচ্ছে।

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

জাভা

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

    1. একটি নতুন উইন্ডোতে add-ons-samples/java/3p-resources ফোল্ডারটি খুলুন।
    2. 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>
      ...
      
    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. CreateLinkPreview.java ফাইলে একটি ব্রেকপয়েন্ট যোগ করুন যা HTTP অনুরোধ প্রক্রিয়াকরণকে থামিয়ে দেবে, এবং পূর্বে যোগ করা Remote Debug Watch কনফিগারেশন ব্যবহার করে অ্যাটাচ ও ডিবাগিং শুরু করুন । অ্যাপ্লিকেশনটি এখন চলছে এবং 9000 পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।

      অ্যাপ্লিকেশনটি চালু আছে এবং ৯০০০ পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।
      চিত্র ৩. অ্যাপ্লিকেশনটি চালু আছে এবং 9000 পোর্টে HTTP অনুরোধের জন্য অপেক্ষা করছে।

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

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

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

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

    ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেসে কোনো HTTP অনুরোধ দেখা যাচ্ছে না।
    চিত্র ৫। ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস, যেখানে কোনো HTTP অনুরোধ দেখা যাচ্ছে না।
  4. একটি টেস্টার অ্যাকাউন্ট ব্যবহার করে নতুন একটি গুগল ডকে কেস ইউআরএল প্রিভিউ করার মাধ্যমে আপনার গুগল ওয়ার্কস্পেস অ্যাড-অনটি পরীক্ষা করুন:

    • একটি গুগল ডক তৈরি করুন।

      একটি গুগল ডক তৈরি করুন

    • নিম্নলিখিত লিঙ্কটি টাইপ করুন এবং enter চাপুন:

      https://example.com/support/case/?name=Name1&description=Description1&priority=P1
      
    • লিঙ্কটিতে ক্লিক করুন।

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

    নির্ধারিত ব্রেকপয়েন্টে এক্সিকিউশনটি থামানো হয়েছে।
    চিত্র ৬। নির্ধারিত ব্রেকপয়েন্টে প্রোগ্রামটি থামানো হয়েছে।
  6. গুগল ওয়ার্কস্পেস অ্যাড-অনের টাইম আউট হওয়ার আগে আপনি যখন Visual Studio Code ডিবাগার থেকে প্রোগ্রামটি পুনরায় চালু করেন, তখন গুগল ওয়ার্কস্পেস অ্যাড-অনটি ক্যাশে থেকে গুগল ডকে লিঙ্ক প্রিভিউ প্রদর্শন করে।

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

    ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে আসা HTTP অনুরোধ।
    চিত্র ৭. ngrok ) অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেস থেকে পাঠানো HTTP অনুরোধ।
  8. অ্যাপ্লিকেশনটির আচরণ পরিবর্তন করতে, CreateLinkPreview.java ফাইলের 78 লাইনে Case-এর পরিবর্তে Case Case: ব্যবহার করুন, mvnDebug প্রসেসটি রিস্টার্ট করুন, এবং ডিবাগিং পুনরায় অ্যাটাচ ও রিস্টার্ট করার জন্য Remote Debug Watch রিলঞ্চ করুন।

  9. এবার, লিঙ্কে ক্লিক করে একটি নতুন গুগল ডকে কয়েক সেকেন্ড অপেক্ষা করার পরিবর্তে, আপনি আপনার লোকাল এনভায়রনমেন্টে ngrok অ্যাপ্লিকেশন দ্বারা হোস্ট করা ওয়েব ইন্টারফেসে লগ করা সর্বশেষ HTTP রিকোয়েস্টটি সিলেক্ট করে Replay ) ক্লিক করতে পারেন। আগের বারের মতোই, আপনার গুগল ওয়ার্কস্পেস অ্যাড-অনটি কোনো উত্তর দেবে না, কারণ এটি সক্রিয়ভাবে ডিবাগ করা হচ্ছে।

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

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

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

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

পূর্বশর্ত

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

    আপনার ইনস্টল করা গুগল ওয়ার্কস্পেস অ্যাড-অনটি ব্যবহার করুন। আপনার গুগল ওয়ার্কস্পেস অ্যাড-অনটি সাড়া দিচ্ছে না, কারণ এটি Visual Studio Code IDE-তে সক্রিয়ভাবে ডিবাগ করা হচ্ছে।