Google Workspace के एचटीटीपी ऐड-ऑन की जांच करना और उन्हें डीबग करना

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

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

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

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

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

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

Node.js

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

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

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

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

  • ngrok खाता.

  • आपके लोकल एनवायरमेंट में, gcloud का नया वर्शन इंस्टॉल और शुरू किया गया हो.

Python

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

Java

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

लोकल होस्ट सेवा को सार्वजनिक तौर पर उपलब्ध कराना

आपको अपने लोकल एनवायरमेंट को इंटरनेट से कनेक्ट करना होगा, ताकि 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"
            }
          ]
        },
        "httpOptions": {
          "granularOauthPermissionSupport": "OPT_IN"
        }
      }
    }
    

    NGROK_STATIC_DOMAIN की जगह, अपने ngrok खाते में मौजूद स्टैटिक डोमेन डालें.

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

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

    gcloud auth application-default login

    PROJECT_ID की जगह, ऐप्लिकेशन के Google Cloud प्रोजेक्ट का प्रोजेक्ट आईडी डालें.

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

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

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

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

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

    ngrok ऐप्लिकेशन से होस्ट किया गया वेब इंटरफ़ेस, जिसमें कोई एचटीटीपी अनुरोध नहीं दिख रहा है.
    पांचवीं इमेज. ngrok ऐप्लिकेशन से होस्ट किया गया वेब इंटरफ़ेस, जिसमें कोई एचटीटीपी अनुरोध नहीं दिख रहा है.
  4. टेस्टर खाते से, नए Google दस्तावेज़ में केस के यूआरएल की झलक देखकर, अपने 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 दस्तावेज़ में कैश मेमोरी से लिंक की झलक दिखाता है.

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

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

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

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

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

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

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

    ngrok ऐप्लिकेशन से होस्ट किया गया वेब इंटरफ़ेस, जिसमें कोई एचटीटीपी अनुरोध नहीं दिख रहा है.
    पांचवीं इमेज. ngrok ऐप्लिकेशन से होस्ट किया गया वेब इंटरफ़ेस, जिसमें कोई एचटीटीपी अनुरोध नहीं दिख रहा है.
  4. टेस्टर खाते से, नए Google दस्तावेज़ में केस के यूआरएल की झलक देखकर, अपने 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 दस्तावेज़ में कैश मेमोरी से लिंक की झलक दिखाता है.

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

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

    ऐप्लिकेशन चल रहा है और कोड में हुए बदलाव के साथ, पोर्ट 9000 पर एचटीटीपी अनुरोधों को सुन रहा है.
    आठवीं इमेज. ऐप्लिकेशन चल रहा है और कोड में किए गए बदलाव के साथ, पोर्ट 9000 पर एचटीटीपी अनुरोधों को सुन रहा है.
  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. ऐप्लिकेशन को स्थानीय तौर पर पोर्ट 9000 पर चलाने के लिए, Maven प्रोजेक्ट को कॉन्फ़िगर करें. इसके लिए, pom.xml फ़ाइल में Cloud Functions Framework build plugin function-maven-plugin जोड़ें:CreateLinkPreview

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

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

  2. अपने लोकल एनवायरमेंट में ngrok ऐप्लिकेशन लॉन्च करें:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

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

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

    ngrok ऐप्लिकेशन से होस्ट किया गया वेब इंटरफ़ेस, जिसमें कोई एचटीटीपी अनुरोध नहीं दिख रहा है.
    पांचवीं इमेज. ngrok ऐप्लिकेशन से होस्ट किया गया वेब इंटरफ़ेस, जिसमें कोई एचटीटीपी अनुरोध नहीं दिख रहा है.
  4. टेस्टर खाते से, नए Google दस्तावेज़ में केस के यूआरएल की झलक देखकर, अपने 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 दस्तावेज़ में कैश मेमोरी से लिंक की झलक दिखाता है.

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

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

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

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

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

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

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

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

  • आपका Google Workspace ऐड-ऑन डिप्लॉय और इंस्टॉल किया गया हो.
  • आपका ऐप्लिकेशन, रिमोट एनवायरमेंट में चल रहा है. साथ ही, किसी पोर्ट पर डीबगर चालू है. इस गाइड के निर्देशों में इसे REMOTE_DEBUG_PORT के तौर पर रेफ़र किया गया है.
  • आपका लोकल एनवायरमेंट, रिमोट एनवायरमेंट से ssh हो सकता है.
  • आपके लोकल एनवायरमेंट में एक ऐसा आईडीई सेट अप किया गया हो जो डीबग कर सकता हो. इस गाइड में, उदाहरण के तौर पर 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. अपने ऐप्लिकेशन के सोर्स कोड में एक ब्रेकपॉइंट जोड़ें. इससे HTTP अनुरोध की प्रोसेसिंग रुक जाएगी. इसके बाद, Debug Remote कॉन्फ़िगरेशन का इस्तेमाल करके, ऐप्लिकेशन को चलाना और डीबग करना शुरू करें.

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