Google Workspace ऐड-ऑन को डीबग करना

Google Workspace ऐड-ऑन डेवलपर के तौर पर, आपको बदलावों की जांच करने या मुश्किल समस्याओं को हल करने के लिए, कोड को डीबग करना पड़ सकता है. Google Workspace ऐड-ऑन को कई तरीकों से डीबग किया जा सकता है. यह कई बातों पर निर्भर करता है. जैसे, आपके ऐप्लिकेशन का आर्किटेक्चर, ऐप्लिकेशन क्या करता है, आपका ऐप्लिकेशन कैसे डिप्लॉय किया जाता है, और आपकी प्राथमिकताएं क्या हैं.

इस पेज पर बताया गया है कि ngrok का इस्तेमाल करके Google Workspace ऐड-ऑन को कैसे डीबग किया जाता है. यह एक यूनिफ़ाइड इन्ग्रेस डेटा प्लैटफ़ॉर्म है, जिसका इस्तेमाल करके स्थानीय डेवलपमेंट एनवायरमेंट की जांच की जा सकती है. इस गाइड की मदद से, स्थानीय एनवायरमेंट में कोड में होने वाले बदलावों को टेस्ट किया जा सकता है. साथ ही, रिमोट एनवायरमेंट में समस्याओं को हल किया जा सकता है.

लोकल डेवलपमेंट एनवायरमेंट से डीबग करना

इस सेक्शन में, अपने Google Workspace ऐड-ऑन के साथ इंटरैक्ट किया जा सकता है. यह ऐड-ऑन आपके स्थानीय वातावरण में काम करता है.

लोकल डेवलपमेंट एनवायरमेंट से डीबग करना

पहला डायग्राम. लोकल डेवलपमेंट एनवायरमेंट में डीबग करें.

ज़रूरी शर्तें

Node.js

  • node और npm के नए वर्शन, आपके लोकल डिवाइस पर इंस्टॉल किए गए.
  • nodemon का सबसे नया वर्शन आपके डिवाइस पर इंस्टॉल हो जाता है. इसका इस्तेमाल, अपने-आप फिर से लोड होने के लिए किया जाता है:

    npm install -g nodemon
    
  • Google Cloud प्रोजेक्ट. इसके लिए, ज़रूरी शर्तें सेक्शन और क्विकस्टार्ट गाइड के एनवायरमेंट को सेट अप करें.

  • आपके लोकल एनवायरमेंट में डीबग करने के लिए, Google Workspace ऐड-ऑन का कोड. हम GitHub रिपॉज़िटरी में दिए गए 3p-resources कोड के उदाहरण में दिए गए, झलक लिंक की सुविधाओं का इस्तेमाल करते हैं. googleworkspace/add-ons-samples इस गाइड में सिर्फ़ उदाहरण के तौर पर ऐसा किया गया है.

  • आपके लोकल एनवायरमेंट में सेट अप किया गया IDE, जो डीबग कर सकता है. हम उदाहरण के लिए, इस गाइड में दिए गए Visual Studio Code IDE और इसकी डिफ़ॉल्ट डीबग सुविधाओं का इस्तेमाल करते हैं.

  • एक ngrok खाता.

  • आपके स्थानीय इलाके में gcloud का नया वर्शन इंस्टॉल है और शुरू हुआ है.

Python

  • python3 का नया वर्शन आपके लोकल एनवायरमेंट में इंस्टॉल किया गया है.
  • आपके लोकल एनवायरमेंट में इंस्टॉल किए गए pip और virtualenv के सबसे नए वर्शन का इस्तेमाल, Python पैकेज और वर्चुअल एनवायरमेंट को मैनेज करने के लिए किया जाता है.
  • Google Cloud प्रोजेक्ट. इसके लिए, ज़रूरी शर्तें सेक्शन और क्विकस्टार्ट गाइड के एनवायरमेंट को सेट अप करें.
  • आपके लोकल एनवायरमेंट में डीबग करने के लिए, Google Workspace ऐड-ऑन का कोड. हम GitHub रिपॉज़िटरी में दिए गए 3p-resources कोड के उदाहरण में दिए गए, झलक लिंक की सुविधाओं का इस्तेमाल करते हैं. googleworkspace/add-ons-samples इस गाइड में सिर्फ़ उदाहरण के तौर पर ऐसा किया गया है.
  • आपके लोकल एनवायरमेंट में सेट अप किया गया IDE, जो डीबग कर सकता है. हम उदाहरण के लिए, इस गाइड में दिए गए Visual Studio Code IDE और इसकी डिफ़ॉल्ट डीबग सुविधाओं का इस्तेमाल करते हैं.
  • एक ngrok खाता.
  • आपके स्थानीय इलाके में gcloud का नया वर्शन इंस्टॉल है और शुरू हुआ है.

Java

  • Java SE 11's JDK का नया और ठीक से काम करने वाला वर्शन, आपके डिवाइस के आस-पास इंस्टॉल हो जाता है.
  • Apache Maven का सबसे नया वर्शन आपके लोकल एनवायरमेंट में इंस्टॉल है. इसका इस्तेमाल Java प्रोजेक्ट मैनेज करने के लिए किया जाता है.
  • Google Cloud प्रोजेक्ट. इसके लिए, ज़रूरी शर्तें सेक्शन और क्विकस्टार्ट गाइड के एनवायरमेंट को सेट अप करें.
  • आपके लोकल एनवायरमेंट में डीबग करने के लिए, Google Workspace ऐड-ऑन का कोड. हम GitHub रिपॉज़िटरी में दिए गए 3p-resources कोड के उदाहरण में दिए गए, झलक लिंक की सुविधाओं का इस्तेमाल करते हैं. googleworkspace/add-ons-samples इस गाइड में सिर्फ़ उदाहरण के तौर पर ऐसा किया गया है.
  • आपके लोकल एनवायरमेंट में सेट अप किया गया IDE, जो डीबग कर सकता है. हम उदाहरण के लिए, इस गाइड में दिए गए Visual Studio Code IDE और इसकी डिफ़ॉल्ट डीबग सुविधाओं का इस्तेमाल करते हैं.
  • एक ngrok खाता.
  • आपके स्थानीय इलाके में gcloud का नया वर्शन इंस्टॉल है और शुरू हुआ है.

localhost सेवा सार्वजनिक रूप से उपलब्ध कराना

आपको अपने लोकल एनवायरमेंट को इंटरनेट से कनेक्ट करना होगा, ताकि Google Workspace ऐड-ऑन इसे ऐक्सेस कर सके. ngrok ऐप्लिकेशन का इस्तेमाल किसी सार्वजनिक यूआरएल पर किए गए एचटीटीपी अनुरोधों को आपके लोकल एनवायरमेंट में रीडायरेक्ट करने के लिए किया जाता है.

  1. अपने लोकल एनवायरमेंट में बनाए गए ब्राउज़र में, अपने ngrok खाते में साइन इन करें.
  2. ऐप्लिकेशन इंस्टॉल करें और अपने authtoken को अपने स्थानीय सिस्टम में सेट अप करें.
  3. अपने ngrok खाते में एक स्टैटिक डोमेन बनाएं. इस गाइड में दिए गए निर्देशों में इसे NGROK_STATIC_DOMAIN के तौर पर दिखाया गया है.

ऐड-ऑन डिप्लॉयमेंट बनाना और इंस्टॉल करना

  1. Google Workspace ऐड-ऑन को कॉन्फ़िगर करें, ताकि इसके सभी एचटीटीपी अनुरोधों को अपने स्टैटिक डोमेन पर भेजा जा सके. आपकी डिप्लॉयमेंट फ़ाइल इस तरह दिखनी चाहिए:

    {
      "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"
            }
          ]
        }
      }
    }
    

    अपने ngrok खाते के NGROK_STATIC_DOMAIN को स्टैटिक डोमेन से बदलें.

  2. Google Cloud प्रोजेक्ट को इस्तेमाल करने के लिए सेट करें:

    gcloud config set project PROJECT_ID
    
  3. ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल के लिए, नए उपयोगकर्ता क्रेडेंशियल हासिल करें:

    gcloud auth application-default login
    

    ऐप्लिकेशन के Google Cloud प्रोजेक्ट के लिए, 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
    

Google Workspace ऐड-ऑन अपने सभी एचटीटीपी अनुरोधों को स्टैटिक डोमेन पर भेजता है

दूसरी इमेज. Google Workspace ऐड-ऑन, अपने सभी एचटीटीपी अनुरोधों को स्टैटिक डोमेन पर भेजता है. ngrok सार्वजनिक सेवा, Google Workspace ऐड-ऑन और स्थानीय तौर पर इस्तेमाल होने वाले ऐप्लिकेशन कोड के बीच पुल की तरह काम करती है.

Google Workspace ऐड-ऑन का इस्तेमाल करना

अपने Google Workspace ऐड-ऑन को स्थानीय तौर पर डिप्लॉय, टेस्ट, डीबग, और फिर से लोड किया जा सकता है.

Node.js

  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=9500",
              "debug-watch": "nodemon --watch ./ --exec npm start"
          }
          ...
      }
      
    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 फ़ाइल में, एचटीटीपी अनुरोध की प्रोसेसिंग को रोकता हो. साथ ही, पहले जोड़े गए Debug Watch कॉन्फ़िगरेशन के साथ, चलना और डीबग करना शुरू करें. ऐप्लिकेशन अभी चल रहा है और 9500 पोर्ट पर एचटीटीपी अनुरोधों को सुन रहा है.

      ऐप्लिकेशन चल रहा है और
पोर्ट `9500` पर एचटीटीपी अनुरोधों को सुन रहा है

      तीसरी इमेज. ऐप्लिकेशन, 9500 पोर्ट पर एचटीटीपी अनुरोधों को चला रहा है और सुन रहा है.

  2. अपने स्थानीय परिवेश में ngrok ऐप्लिकेशन लॉन्च करें:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9500
    

    अपने ngrok खाते में NGROK_STATIC_DOMAIN को स्टैटिक डोमेन से बदलें. अब सभी अनुरोधों को आपके लोकल एनवायरमेंट और ऐप्लिकेशन के इस्तेमाल किए जाने वाले पोर्ट पर रीडायरेक्ट कर दिया जाता है.

    `ngrok` सर्वर वाला टर्मिनल. यह सर्वर चल रहा है और
रीडायरेक्ट कर रहा है

    चौथी इमेज. ngrok सर्वर वाला टर्मिनल, जो चल रहा है और रीडायरेक्ट कर रहा है.

  3. ngrok ऐप्लिकेशन की मदद से, आपके localhost पर एक वेब इंटरफ़ेस भी शुरू किया गया है. इसे किसी ब्राउज़र में खोलकर, सभी गतिविधियों पर नज़र रखी जा सकती है.

    `ngrok` ऐप्लिकेशन पर होस्ट किया गया वेब इंटरफ़ेस, जो कोई एचटीटीपी अनुरोध नहीं दिखा रहा

    पांचवी इमेज. ngrok ऐप्लिकेशन पर होस्ट किया गया वेब इंटरफ़ेस, जो कोई एचटीटीपी अनुरोध नहीं दिखा रहा है.

  4. टेस्टर खाते की मदद से, नए Google Doc में केस के यूआरएल की झलक देखकर, अपने Google Workspace ऐड-ऑन की जांच करें:

    • नया Google दस्तावेज़ बनाएं.

      नया Google दस्तावेज़ बनाना

    • नीचे दिया गया लिंक लिखें और enter दबाएं:

      https://example.com/support/case/?name=Name1&description=Description1&priority=P1
      
    • लिंक पर क्लिक करें.

  5. आपके लोकल एनवायरमेंट के Visual Studio Code में, यह देखा जा सकता है कि सेट किए गए ब्रेकपॉइंट पर प्रोग्राम चलाने की प्रोसेस को रोक दिया गया है.

    प्रोग्राम को उस ब्रेकपॉइंट पर रोक दिया जाता है
जिसे ट्रिगर किया गया था

    छठी इमेज. सेट किए गए ब्रेकपॉइंट पर प्रोग्राम चलाने की प्रोसेस को रोक दिया जाता है.

  6. अगर Google Workspace ऐड-ऑन का समय खत्म होने से पहले, Visual Studio Code के डीबगर से एक्ज़ीक्यूशन फिर से शुरू किया जाता है, तो Google Workspace ऐड-ऑन की कैश मेमोरी में लिंक की झलक, Google Docs में दिखती है.

  7. अपने लोकल एनवायरमेंट में ngrok ऐप्लिकेशन से होस्ट किए गए वेब इंटरफ़ेस से, एचटीटीपी अनुरोध और रिस्पॉन्स लॉग देखे जा सकते हैं.

    `ngrok` ऐप्लिकेशन पर होस्ट किए गए वेब इंटरफ़ेस से आने वाला एचटीटीपी अनुरोध

    सातवीं इमेज. ngrok ऐप्लिकेशन पर होस्ट किए गए वेब इंटरफ़ेस से मिला एचटीटीपी अनुरोध.

  8. ऐप्लिकेशन का व्यवहार बदलने के लिए, Case को index.js की Case: इनलाइन 51 से बदलें. फ़ाइल सेव करने पर, nodemon अपडेट किए गए सोर्स कोड के साथ ऐप्लिकेशन को अपने-आप फिर से लोड करता है और Visual Studio Code डीबग मोड में बना रहता है.

    ऐप्लिकेशन चल रहा है और पोर्ट पर
`9500` पर एचटीटीपी अनुरोधों को सुन रहा है. साथ ही, कोड में बदलाव भी लोड हो रहा है

    आठवां इमेज. ऐप्लिकेशन चल रहा है और कोड में बदलाव लोड किए गए 9500 पोर्ट पर एचटीटीपी अनुरोधों को सुन रहा है.

  9. इस बार, लिंक पर क्लिक करने और नए Google दस्तावेज़ में कुछ सेकंड का इंतज़ार करने के बजाय, अपने लोकल एनवायरमेंट में ngrok ऐप्लिकेशन से होस्ट किए गए वेब इंटरफ़ेस पर लॉग किए गए आखिरी एचटीटीपी अनुरोध को चुना जा सकता है और Replay पर क्लिक किया जा सकता है. पहले की तरह ही, आपका Google Workspace ऐड-ऑन जवाब नहीं दे रहा है, क्योंकि इसे सक्रिय रूप से डीबग किया जा रहा है.

  10. Visual Studio Code के डीबगर से एक्ज़ीक्यूशन फिर से शुरू करने पर, अपने लोकल एनवायरमेंट में ngrok ऐप्लिकेशन पर होस्ट किए गए वेब इंटरफ़ेस से देखा जा सकता है कि ऐप्लिकेशन, झलक दिखाने वाले कार्ड के अपडेट किए गए वर्शन के साथ रिस्पॉन्स जनरेट करता है.

Python

  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 नाम का ऐसा लॉन्च कॉन्फ़िगर करें जो वर्चुअल एनवायरमेंट env पर डीबग मोड में पोर्ट 9500 पर मॉड्यूल functions-framework से ऐप्लिकेशन को ट्रिगर करे:

      {
          "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", "9500",
                  "--debug"
              ]
          }]
      }
      
    5. ऐसा ब्रेकपॉइंट जोड़ें जो main.py फ़ाइल में, एचटीटीपी अनुरोध की प्रोसेसिंग को रोकता हो. साथ ही, पहले जोड़े गए Debug Watch कॉन्फ़िगरेशन के साथ, चलना और डीबग करना शुरू करें. ऐप्लिकेशन अभी चल रहा है और 9500 पोर्ट पर एचटीटीपी अनुरोधों को सुन रहा है.

      ऐप्लिकेशन चल रहा है और
पोर्ट `9500` पर एचटीटीपी अनुरोधों को सुन रहा है

      तीसरी इमेज. ऐप्लिकेशन, 9500 पोर्ट पर एचटीटीपी अनुरोधों को चला रहा है और सुन रहा है.

  2. अपने स्थानीय परिवेश में ngrok ऐप्लिकेशन लॉन्च करें:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9500
    

    अपने ngrok खाते में NGROK_STATIC_DOMAIN को स्टैटिक डोमेन से बदलें. अब सभी अनुरोधों को आपके लोकल एनवायरमेंट और ऐप्लिकेशन के इस्तेमाल किए जाने वाले पोर्ट पर रीडायरेक्ट कर दिया जाता है.

    `ngrok` सर्वर वाला टर्मिनल. यह सर्वर चल रहा है और
रीडायरेक्ट कर रहा है

    चौथी इमेज. ngrok सर्वर वाला टर्मिनल, जो चल रहा है और रीडायरेक्ट कर रहा है.

  3. ngrok ऐप्लिकेशन की मदद से, आपके localhost पर एक वेब इंटरफ़ेस भी शुरू किया गया है. इसे किसी ब्राउज़र में खोलकर, सभी गतिविधियों पर नज़र रखी जा सकती है.

    `ngrok` ऐप्लिकेशन पर होस्ट किया गया वेब इंटरफ़ेस, जो कोई एचटीटीपी अनुरोध नहीं दिखा रहा

    पांचवी इमेज. ngrok ऐप्लिकेशन पर होस्ट किया गया वेब इंटरफ़ेस, जो कोई एचटीटीपी अनुरोध नहीं दिखा रहा है.

  4. टेस्टर खाते की मदद से, नए Google Doc में केस के यूआरएल की झलक देखकर, अपने Google Workspace ऐड-ऑन की जांच करें:

    • नया Google दस्तावेज़ बनाएं.

      नया Google दस्तावेज़ बनाना

    • नीचे दिया गया लिंक लिखें और enter दबाएं:

      https://example.com/support/case/?name=Name1&description=Description1&priority=P1
      
    • लिंक पर क्लिक करें.

  5. आपके लोकल एनवायरमेंट के Visual Studio Code में, यह देखा जा सकता है कि सेट किए गए ब्रेकपॉइंट पर प्रोग्राम चलाने की प्रोसेस को रोक दिया गया है.

    प्रोग्राम को उस ब्रेकपॉइंट पर रोक दिया जाता है
जिसे ट्रिगर किया गया था

    छठी इमेज. सेट किए गए ब्रेकपॉइंट पर प्रोग्राम चलाने की प्रोसेस को रोक दिया जाता है.

  6. अगर Google Workspace ऐड-ऑन का समय खत्म होने से पहले, Visual Studio Code के डीबगर से एक्ज़ीक्यूशन फिर से शुरू किया जाता है, तो Google Workspace ऐड-ऑन की कैश मेमोरी में लिंक की झलक, Google Docs में दिखती है.

  7. अपने लोकल एनवायरमेंट में ngrok ऐप्लिकेशन से होस्ट किए गए वेब इंटरफ़ेस से, एचटीटीपी अनुरोध और रिस्पॉन्स लॉग देखे जा सकते हैं.

    `ngrok` ऐप्लिकेशन पर होस्ट किए गए वेब इंटरफ़ेस से आने वाला एचटीटीपी अनुरोध

    सातवीं इमेज. ngrok ऐप्लिकेशन पर होस्ट किए गए वेब इंटरफ़ेस से मिला एचटीटीपी अनुरोध.

  8. ऐप्लिकेशन का व्यवहार बदलने के लिए, Case को main.py फ़ाइल की Case: इनलाइन 56 से बदलें. फ़ाइल सेव करने पर, Visual Studio Code अपडेट किए गए सोर्स कोड के साथ ऐप्लिकेशन को अपने-आप फिर से लोड करता है और डीबग मोड में बना रहता है.

    ऐप्लिकेशन चल रहा है और पोर्ट पर
`9500` पर एचटीटीपी अनुरोधों को सुन रहा है. साथ ही, कोड में बदलाव भी लोड हो रहा है

    आठवां इमेज. ऐप्लिकेशन चल रहा है और कोड में बदलाव लोड किए गए 9500 पोर्ट पर एचटीटीपी अनुरोधों को सुन रहा है.

  9. इस बार, लिंक पर क्लिक करने और नए Google दस्तावेज़ में कुछ सेकंड का इंतज़ार करने के बजाय, अपने लोकल एनवायरमेंट में ngrok ऐप्लिकेशन से होस्ट किए गए वेब इंटरफ़ेस पर लॉग किए गए आखिरी एचटीटीपी अनुरोध को चुना जा सकता है और Replay पर क्लिक किया जा सकता है. पहले की तरह ही, आपका Google Workspace ऐड-ऑन जवाब नहीं दे रहा है, क्योंकि इसे सक्रिय रूप से डीबग किया जा रहा है.

  10. Visual Studio Code के डीबगर से एक्ज़ीक्यूशन फिर से शुरू करने पर, अपने लोकल एनवायरमेंट में ngrok ऐप्लिकेशन पर होस्ट किए गए वेब इंटरफ़ेस से देखा जा सकता है कि ऐप्लिकेशन, झलक दिखाने वाले कार्ड के अपडेट किए गए वर्शन के साथ रिस्पॉन्स जनरेट करता है.

Java

  1. अपने लोकल एनवायरमेंट में इंस्टॉल किए गए Visual Studio Code IDE से, ये काम करें:

    1. नई विंडो में, add-ons-samples/java/3p-resources फ़ोल्डर खोलें.
    2. pom.xml फ़ाइल में Cloud फ़ंक्शन फ़्रेमवर्क बिल्ड प्लगिन function-maven-plugin को जोड़कर, 9500 पोर्ट पर ऐप्लिकेशन CreateLinkPreview को स्थानीय तौर पर चलाने के लिए, Maven प्रोजेक्ट को कॉन्फ़िगर करें:

      ...
      <plugin>
          <groupId>com.google.cloud.functions</groupId>
          <artifactId>function-maven-plugin</artifactId>
          <version>0.11.0</version>
          <configuration>
              <functionTarget>CreateLinkPreview</functionTarget>
              <port>9500</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 फ़ाइल में, एचटीटीपी अनुरोध की प्रोसेसिंग को रोकता है. साथ ही, पहले जोड़े गए Remote Debug Watch कॉन्फ़िगरेशन के साथ, अटैच और डीबग करना शुरू करें. ऐप्लिकेशन अब चल रहा है और 9500 पोर्ट पर एचटीटीपी अनुरोधों को सुन रहा है.

      ऐप्लिकेशन चल रहा है और
पोर्ट `9500` पर एचटीटीपी अनुरोधों को सुन रहा है

      तीसरी इमेज. वह ऐप्लिकेशन चल रहा है और 9500 पोर्ट पर एचटीटीपी अनुरोधों को सुन रहा है.

  2. अपने स्थानीय परिवेश में ngrok ऐप्लिकेशन लॉन्च करें:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9500
    

    अपने ngrok खाते में NGROK_STATIC_DOMAIN को स्टैटिक डोमेन से बदलें. अब सभी अनुरोधों को आपके लोकल एनवायरमेंट और ऐप्लिकेशन के इस्तेमाल किए जाने वाले पोर्ट पर रीडायरेक्ट कर दिया जाता है.

    `ngrok` सर्वर वाला टर्मिनल. यह सर्वर चल रहा है और
रीडायरेक्ट कर रहा है

    चौथी इमेज. ngrok सर्वर वाला टर्मिनल, जो चल रहा है और रीडायरेक्ट कर रहा है.

  3. ngrok ऐप्लिकेशन की मदद से, आपके localhost पर एक वेब इंटरफ़ेस भी शुरू किया गया है. इसे किसी ब्राउज़र में खोलकर, सभी गतिविधियों पर नज़र रखी जा सकती है.

    `ngrok` ऐप्लिकेशन पर होस्ट किया गया वेब इंटरफ़ेस, जो कोई एचटीटीपी अनुरोध नहीं दिखा रहा

    पांचवी इमेज. ngrok ऐप्लिकेशन पर होस्ट किया गया वेब इंटरफ़ेस, जो कोई एचटीटीपी अनुरोध नहीं दिखा रहा है.

  4. टेस्टर खाते की मदद से, नए Google Doc में केस के यूआरएल की झलक देखकर, अपने Google Workspace ऐड-ऑन की जांच करें:

    • नया Google दस्तावेज़ बनाएं.

      नया Google दस्तावेज़ बनाना

    • नीचे दिया गया लिंक लिखें और enter दबाएं:

      https://example.com/support/case/?name=Name1&description=Description1&priority=P1
      
    • लिंक पर क्लिक करें.

  5. आपके लोकल एनवायरमेंट के Visual Studio Code में, यह देखा जा सकता है कि सेट किए गए ब्रेकपॉइंट पर प्रोग्राम चलाने की प्रोसेस को रोक दिया गया है.

    प्रोग्राम को उस ब्रेकपॉइंट पर रोक दिया जाता है
जिसे ट्रिगर किया गया था

    छठी इमेज. सेट किए गए ब्रेकपॉइंट पर प्रोग्राम चलाने की प्रोसेस को रोक दिया जाता है.

  6. अगर Google Workspace ऐड-ऑन का समय खत्म होने से पहले, Visual Studio Code के डीबगर से एक्ज़ीक्यूशन फिर से शुरू किया जाता है, तो Google Workspace ऐड-ऑन की कैश मेमोरी में लिंक की झलक, Google Docs में दिखती है.

  7. अपने लोकल एनवायरमेंट में ngrok ऐप्लिकेशन से होस्ट किए गए वेब इंटरफ़ेस से, एचटीटीपी अनुरोध और रिस्पॉन्स लॉग देखे जा सकते हैं.

    `ngrok` ऐप्लिकेशन पर होस्ट किए गए वेब इंटरफ़ेस से आने वाला एचटीटीपी अनुरोध

    सातवीं इमेज. ngrok ऐप्लिकेशन पर होस्ट किए गए वेब इंटरफ़ेस से मिला एचटीटीपी अनुरोध.

  8. ऐप्लिकेशन के व्यवहार में बदलाव करने के लिए, Case को CreateLinkPreview.java फ़ाइल की Case: इनलाइन 78 से बदलें. इसके बाद, mvnDebug प्रोसेस को रीस्टार्ट करें. साथ ही, Remote Debug Watch को फिर से लॉन्च करके, डीबग को फिर से अटैच करके रीस्टार्ट करें.

  9. इस बार, लिंक पर क्लिक करने और नए Google दस्तावेज़ में कुछ सेकंड का इंतज़ार करने के बजाय, अपने लोकल एनवायरमेंट में ngrok ऐप्लिकेशन से होस्ट किए गए वेब इंटरफ़ेस पर लॉग किए गए आखिरी एचटीटीपी अनुरोध को चुना जा सकता है और Replay पर क्लिक किया जा सकता है. पहले की तरह ही, आपका Google Workspace ऐड-ऑन जवाब नहीं दे रहा है, क्योंकि इसे सक्रिय रूप से डीबग किया जा रहा है.

  10. Visual Studio Code के डीबगर से एक्ज़ीक्यूशन फिर से शुरू करने पर, अपने लोकल एनवायरमेंट में ngrok ऐप्लिकेशन पर होस्ट किए गए वेब इंटरफ़ेस से देखा जा सकता है कि ऐप्लिकेशन, झलक दिखाने वाले कार्ड के अपडेट किए गए वर्शन के साथ रिस्पॉन्स जनरेट करता है.

रिमोट एनवायरमेंट से डीबग करें

इस सेक्शन में, अपने Google Workspace ऐड-ऑन के साथ इंटरैक्ट किया जा सकता है. यह ऐड-ऑन, रिमोट एनवायरमेंट पर काम करता है.

रिमोट एनवायरमेंट से डीबग
करें

नौवीं इमेज. रिमोट एनवायरमेंट से डीबग करें.

ज़रूरी शर्तें

  • आपका Google Workspace ऐड-ऑन डिप्लॉय और इंस्टॉल किया गया है.
  • किसी दिए गए पोर्ट पर डीबगर की सुविधा के साथ, रिमोट एनवायरमेंट में चल रहा आपका ऐप्लिकेशन, इस गाइड के निर्देशों में इसे REMOTE_DEBUG_PORT के तौर पर दिखाया गया है.
  • आपका लोकल एनवायरमेंट, आपके रिमोट एनवायरमेंट में ssh हो सकता है.
  • आपके लोकल एनवायरमेंट में सेट अप किया गया IDE, जो डीबग कर सकता है. हम उदाहरण के लिए, इस गाइड में मौजूद Visual Studio Code IDE और इसकी डिफ़ॉल्ट डीबग सुविधाओं का इस्तेमाल कर रहे हैं.

अपने लोकल और रिमोट एनवायरमेंट को कनेक्ट करें

अपने स्थानीय एनवायरमेंट में, जहां से आपको डीबग क्लाइंट कनेक्शन शुरू करना है उसमें एसएसएच टनल सेट अप करें:

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. अपने ऐप्लिकेशन के सोर्स कोड में ऐसा ब्रेकपॉइंट जोड़ें जो एचटीटीपी अनुरोध की प्रोसेसिंग को रोकता है. साथ ही, पहले जोड़े गए Debug Remote कॉन्फ़िगरेशन के साथ, चलना और डीबग करना शुरू करें.

इंस्टॉल किए गए Google Workspace ऐड-ऑन का इस्तेमाल करें. आपके Google Workspace ऐड-ऑन का जवाब नहीं है, क्योंकि इसे Visual Studio Code IDE में डीबग किया जा रहा है.

गड़बड़ी के लॉग क्वेरी करने का तरीका जानें.