ניפוי באגים באפליקציות Google Chat

מפתחים של אפליקציות ל-Google Chat צריכים לפעמים לנפות באגים בקוד כדי לבדוק שינויים או לפתור בעיות מורכבות. אפשר לבצע ניפוי באגים באפליקציות ל-Chat בדרכים רבות ושונות, בהתאם לארכיטקטורה של האפליקציה, לפעולות שהיא מבצעת, לאופן הפריסה שלה ולהעדפות שלכם.

בדף הזה מוסבר איך לנפות באגים באפליקציית Chat עם HTTP באמצעות ngrok, פלטפורמת תעבורת נתונים נכנסת (Ingress) מאוחדת שבה אפשר להשתמש כדי לבדוק סביבות פיתוח מקומיות. במדריך הזה תבדקו שינויים בקוד בסביבה מקומית ותפתרו בעיות בסביבה מרוחקת.

ניפוי באגים מסביבת פיתוח מקומית

בקטע הזה, אתם מבצעים אינטראקציה עם אפליקציית Chat שפועלת בסביבה המקומית שלכם.

ניפוי באגים מסביבת פיתוח מקומית

איור 1. ניפוי באגים בסביבת פיתוח מקומית.

סדנה

Node.js

Python

Java

דרישות מוקדמות

Node.js

  • הגרסאות העדכניות ביותר של node ושל npm מותקנות בסביבה המקומית שלכם.
  • הגרסה העדכנית של nodemon מותקנת בסביבה המקומית שלכם, והיא משמשת להוספת כסף אוטומטית:

    npm install -g nodemon
  • אפליקציית Chat עם HTTP שהוגדרה לשליחת הודעות. אפשר לפעול לפי ההוראות בקטעים דרישות מוקדמות, הגדרת הסביבה ופרסום האפליקציה ב-Google Chat שבמדריך למתחילים. ההבדלים היחידים הם שצריך להגדיר את שם האפליקציה ל-Debug App ואת כתובת ה-URL של נקודת הקצה של HTTP לכל דבר, כמו http://example.com.

  • סביבת פיתוח משולבת (IDE) שמוגדרת בסביבה המקומית ויכולה לבצע ניפוי באגים. במדריך הזה אנחנו משתמשים ב-Visual Studio Code IDE ובתכונות ברירת המחדל של ניפוי הבאגים שלו למטרות המחשה.

  • ‫Git installed בסביבה המקומית.

  • חשבון ngrok.

Python

  • הגרסה העדכנית של python3 מותקנת בסביבה המקומית.
  • הגרסה העדכנית של pip ושל virtualenv מותקנת בסביבה המקומית שלכם, והיא משמשת לניהול חבילות Python וסביבות וירטואליות בהתאמה.
  • אפליקציית Chat עם HTTP שהוגדרה לשליחת הודעות. אפשר לפעול לפי ההוראות בקטעים דרישות מוקדמות, הגדרת הסביבה ופרסום האפליקציה ב-Google Chat שבמדריך למתחילים. ההבדלים היחידים הם שצריך להגדיר את שם האפליקציה ל-Debug App ואת כתובת ה-URL של נקודת הקצה של HTTP לכל דבר, כמו http://example.com.
  • סביבת פיתוח משולבת (IDE) שמוגדרת בסביבה המקומית ויכולה לבצע ניפוי באגים. במדריך הזה אנחנו משתמשים ב-Visual Studio Code IDE ובתכונות ברירת המחדל של ניפוי הבאגים שלו למטרות המחשה.
  • ‫Git installed בסביבה המקומית.
  • חשבון ngrok.
  • הגרסה העדכנית של gcloud מותקנת ומאותחלת בסביבה המקומית שלכם.

Java

  • הגרסה היציבה האחרונה של Java SE 11's JDK מותקנת בסביבה המקומית.
  • הגרסה העדכנית של Apache Maven מותקנת בסביבה המקומית שלכם, והיא משמשת לניהול פרויקטים של Java.
  • אפליקציית Chat עם HTTP שהוגדרה לשליחת הודעות. אפשר לפעול לפי ההוראות בקטעים דרישות מוקדמות, הגדרת הסביבה ופרסום האפליקציה ב-Google Chat שבמדריך למתחילים. ההבדלים היחידים הם שצריך להגדיר את שם האפליקציה ל-Debug App ואת כתובת ה-URL של נקודת הקצה (endpoint) ב-HTTP של טריגר ההודעה לכל דבר, למשל http://example.com.
  • סביבת פיתוח משולבת (IDE) שמוגדרת בסביבה המקומית ויכולה לבצע ניפוי באגים. במדריך הזה אנחנו משתמשים ב-Visual Studio Code IDE ובתכונות ברירת המחדל של ניפוי הבאגים שלו למטרות המחשה.
  • ‫Git installed בסביבה המקומית.
  • חשבון ngrok.
  • הגרסה העדכנית של gcloud מותקנת ומאותחלת בסביבה המקומית שלכם.

הגדרת שירות localhost כזמין לכולם

צריך לחבר את הסביבה המקומית לאינטרנט כדי שאפליקציית Chat תוכל לגשת אליה. אפליקציית ngrok משמשת להפניה אוטומטית של בקשות HTTP שמופנות לכתובת URL ציבורית לסביבה המקומית שלכם.

  1. בדפדפן בסביבה המקומית, נכנסים לחשבון ngrok.
  2. מתקינים את האפליקציה ומגדירים את authtoken בסביבה המקומית.
  3. יוצרים דומיין סטטי בחשבון ngrok. הוא מוזכר במדריך הזה בתור NGROK_STATIC_DOMAIN.

הגדרת אפליקציית Chat

מגדירים את אפליקציית Chat כך שתשלח את כל בקשות ה-HTTP שלה לדומיין הסטטי.

  1. ב-Google API Console, פותחים את הדף של Google Chat API:

    כניסה לדף Google Chat API

  2. לוחצים על הכרטיסייה Configuration.

  3. עוברים אל תכונות אינטראקטיביות > הגדרות חיבור > טריגרים ומגדירים את כתובת ה-URL של נקודת הקצה של HTTP לטריגרים שרוצים לבדוק (למשל הודעה) כך:

    https://NGROK_STATIC_DOMAIN
    

    מחליפים את NGROK_STATIC_DOMAIN בדומיין הסטטי בחשבון ngrok.

  4. לוחצים על שמירה.

אפליקציית Chat שולחת את כל בקשות ה-HTTP שלה לדומיין הסטטי

איור 2. אפליקציית Chat שולחת את כל בקשות ה-HTTP שלה לדומיין הסטטי. שירות ציבורי ngrok משמש כגשר בין אפליקציית Chat לבין קוד האפליקציה שמופעל באופן מקומי.

בדיקת אפליקציית Chat

אתם יכולים לפרוס, להגדיר, לבדוק, לנפות באגים ולטעון מחדש באופן אוטומטי את אפליקציית Chat באופן מקומי.

Node.js

  1. משכפלים את המאגר googleworkspace/add-ons-samples מ-GitHub לסביבה המקומית. המאגר מכיל את הקוד של האפליקציה שרוצים להריץ:

    git clone https://github.com/googleworkspace/add-ons-samples.git
  2. בסביבת הפיתוח המשולבת (IDE) Visual Studio Code שהתקנתם בסביבה המקומית, מבצעים את הפעולות הבאות:

    1. בחלון חדש, פותחים את התיקייה add-ons-samples/node/chat/avatar-app.
    2. כדי להגדיר את האפליקציה לניפוי באגים של טעינה אוטומטית, מוסיפים שני סקריפטים לקובץ package.json:

      {
          ...
          "scripts": {
              ...
              "debug": "node --inspect index.js",
              "debug-watch": "nodemon --watch ./ --exec npm run debug"
          }
          ...
      }
      
    3. מתיקיית השורש, מתקינים את האפליקציה:

      npm install
    4. יוצרים ומגדירים הפעלה בשם Debug Watch שמפעילה את הסקריפט debug-watch על ידי יצירת הקובץ .vscode/launch.json בספריית השורש:

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "node",
              "request": "launch",
              "name": "Debug Watch",
              "cwd": "${workspaceRoot}",
              "runtimeExecutable": "npm",
              "runtimeArgs": ["run-script", "debug-watch"]
          }]
      }
      
    5. מוסיפים נקודת עצירה שגורמת להשהיית העיבוד של בקשת ה-HTTP בקובץ index.js, ומתחילים להריץ ולנפות באגים באמצעות ההגדרה Debug Watch שנוספה קודם. האפליקציה פועלת עכשיו ומאזינה לבקשות HTTP ביציאה 9000.

      האפליקציה פועלת ומאזינה לבקשות HTTP ביציאה 9000

      איור 3. האפליקציה פועלת ומאזינה לבקשות HTTP ביציאה 9000.

  3. מפעילים את האפליקציה ngrok בסביבה המקומית:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

    מחליפים את NGROK_STATIC_DOMAIN בדומיין הסטטי בחשבון ngrok. כל הבקשות מופנות עכשיו לסביבה המקומית וליציאה שבה האפליקציה משתמשת.

    הטרמינל עם שרת ngrok פועל ומפנה מחדש

    איור 4. הטרמינל עם השרת של ngrok פועל ומבצע הפניה אוטומטית.

  4. בנוסף, האפליקציה ngrokמפעילה ממשק אינטרנט ב-localhost, ואפשר לפתוח אותו בדפדפן כדי לעקוב אחרי כל הפעילויות.

    ממשק האינטרנט שמתארח באפליקציית ngrok ולא מוצגות בו בקשות HTTP

    איור 5. ממשק האינטרנט שמתארח באפליקציית ngrok ולא מציג בקשות HTTP.

  5. כדי לבדוק את אפליקציית Chat, שולחים לה צ'אט ישיר:

    • פותחים את Google Chat.

      מעבר אל Google Chat

    • לוחצים על צ'אט חדש .

    • בתיבת הדו-שיח, מזינים את השם של אפליקציית הצ'אט.

    • בתוצאות החיפוש, מוצאים את אפליקציית Chat, לוחצים על הוספה > Chat.

    • במרחב של הצ'אט הישיר, כותבים Hello ולוחצים על enter. אפליקציית Chat לא משיבה כי מתבצע בה ניפוי באגים פעיל.

  6. ב-Visual Studio Code בסביבה המקומית, אפשר לראות שהביצוע מושהה בנקודת העצירה שהוגדרה.

    הביצוע מושהה בנקודת העצירה שהוגדרה

    איור 6. הביצוע מושהה בנקודת העצירה שהוגדרה.

  7. כשממשיכים את ההרצה מהמאבחן של Visual Studio Code לפני שחלף הזמן הקצוב לתגובה ב-Google Chat, אפליקציית הצ'אט משיבה להודעה.

  8. אפשר לבדוק את היומנים של בקשות ותגובות HTTP מממשק האינטרנט שמארחת אפליקציית ngrok בסביבה המקומית.

    בקשת ה-HTTP מממשק האינטרנט שמארחת אפליקציית ngrok

    איור 7. בקשת ה-HTTP מממשק האינטרנט שמארחת האפליקציה ngrok.

  9. כדי לשנות את התנהגות האפליקציה, מעדכנים את הטקסט של התשובה בקובץ index.js. כששומרים את הקובץ, nodemon טוען מחדש את האפליקציה באופן אוטומטי עם קוד המקור המעודכן, ו-Visual Studio Code נשאר במצב ניפוי באגים.

    האפליקציה פועלת ומאזינה לבקשות HTTP ביציאה 9000 עם שינוי הקוד שנטען

    איור 8. האפליקציה פועלת ומאזינה לבקשות HTTP ביציאה 9000 עם השינוי בקוד שנטען.

  10. הפעם, במקום לשלוח הודעה שנייה Hello במרחב, אפשר לבחור את בקשת ה-HTTP האחרונה שנרשמה בממשק האינטרנט שמתארח באפליקציית ngrok בסביבה המקומית וללחוץ על Replay. כמו בפעם הקודמת, אפליקציית Chat לא מגיבה כי מתבצע בה ניפוי באגים.

  11. כשממשיכים את ההרצה מהבאגים של Visual Studio Code אפשר לראות מממשק האינטרנט שמארחת האפליקציה ngrok בסביבה המקומית שהאפליקציה יוצרת תגובה עם הגרסה המעודכנת של ההודעה.

Python

  1. קבלת פרטי כניסה חדשים של משתמש לשימוש ב-Application Default Credentials:

    gcloud config set project PROJECT_ID
    gcloud auth application-default login

    מחליפים את PROJECT_ID במזהה הפרויקט של פרויקט הענן של האפליקציה.

  2. משכפלים את מאגר googleworkspace/add-ons-samples מ-GitHub לסביבה המקומית. המאגר מכיל את קוד האפליקציה:

    git clone https://github.com/googleworkspace/add-ons-samples.git
  3. בסביבת הפיתוח המשולבת (IDE) Visual Studio Code שהתקנתם בסביבה המקומית, מבצעים את הפעולות הבאות:

    1. בחלון חדש, פותחים את התיקייה add-ons-samples/python/chat/avatar-app.
    2. יוצרים סביבה וירטואלית חדשה ל-Python env ומפעילים אותה:

      virtualenv env
      source env/bin/activate
    3. מתקינים את כל יחסי התלות של הפרויקט באמצעות pip בסביבה הווירטואלית:

      pip install -r requirements.txt
    4. יוצרים את הקובץ .vscode/launch.json בספריית השורש ומגדירים הפעלה בשם Debug Watch שמפעילה את האפליקציה מהמודול functions-framework ביציאה 9000 במצב ניפוי באגים בסביבה הווירטואלית env:

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "python",
              "request": "launch",
              "name": "Debug Watch",
              "python": "${workspaceFolder}/env/bin/python3",
              "module": "functions_framework",
              "args": [
                  "--target", "avatar_app",
                  "--port", "9000",
                  "--debug"
              ]
          }]
      }
      
    5. מוסיפים נקודת עצירה שגורמת להשהיית העיבוד של בקשת ה-HTTP בקובץ main.py, ומתחילים להריץ ולנפות באגים באמצעות ההגדרה Debug Watch שנוספה קודם. האפליקציה פועלת עכשיו ומאזינה לבקשות HTTP ביציאה 9000.

      האפליקציה פועלת ומאזינה לבקשות HTTP ביציאה 9000

      איור 3. האפליקציה פועלת ומאזינה לבקשות HTTP ביציאה 9000.

  4. מפעילים את האפליקציה ngrok בסביבה המקומית:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

    מחליפים את NGROK_STATIC_DOMAIN בדומיין הסטטי בחשבון ngrok. כל הבקשות מופנות עכשיו לסביבה המקומית וליציאה שבה האפליקציה משתמשת.

    הטרמינל עם שרת ngrok פועל ומפנה מחדש

    איור 4. הטרמינל עם השרת של ngrok פועל ומבצע הפניה אוטומטית.

  5. בנוסף, האפליקציה ngrokמפעילה ממשק אינטרנט ב-localhost, ואפשר לפתוח אותו בדפדפן כדי לעקוב אחרי כל הפעילויות.

    ממשק האינטרנט שמתארח באפליקציית ngrok ולא מוצגות בו בקשות HTTP

    איור 5. ממשק האינטרנט שמתארח באפליקציית ngrok ולא מציג בקשות HTTP.

  6. כדי לבדוק את אפליקציית Chat, שולחים לה צ'אט ישיר:

    • פותחים את Google Chat.

      מעבר אל Google Chat

    • לוחצים על צ'אט חדש .

    • בתיבת הדו-שיח, מזינים את השם של אפליקציית הצ'אט.

    • בתוצאות החיפוש, מוצאים את אפליקציית Chat, לוחצים על הוספה > Chat.

    • במרחב של הצ'אט הישיר, כותבים Hey! ולוחצים על enter. אפליקציית הצ'אט לא מגיבה כי מתבצע בה ניפוי באגים פעיל.

  7. ב-Visual Studio Code בסביבה המקומית, אפשר לראות שהביצוע מושהה בנקודת העצירה שהוגדרה.

    הביצוע מושהה בנקודת העצירה שהוגדרה

    איור 6. הביצוע מושהה בנקודת העצירה שהוגדרה.

  8. כשממשיכים את ההפעלה ממאגר הבאגים של Visual Studio Code לפני שחלף הזמן הקצוב לתגובה של אפליקציית Chat ב-Google Chat האפליקציה משיבה עם השם ותמונת האווטאר שלכם בהודעה.

  9. אפשר לבדוק את היומנים של בקשות ותגובות HTTP מממשק האינטרנט שמארחת אפליקציית ngrok בסביבה המקומית.

    בקשת ה-HTTP מממשק האינטרנט שמארחת אפליקציית ngrok

    איור 7. בקשת ה-HTTP מממשק האינטרנט שמארחת האפליקציה ngrok.

  10. כדי לשנות את התנהגות האפליקציה, מחליפים את Hello ב-Hey בקובץ main.py. כששומרים את הקובץ, Visual Studio Code האפליקציה נטענת מחדש באופן אוטומטי עם קוד המקור המעודכן, והיא נשארת במצב ניפוי באגים.

    האפליקציה פועלת ומאזינה לבקשות HTTP ביציאה 9000 עם שינוי הקוד שנטען

    איור 8. האפליקציה פועלת ומאזינה לבקשות HTTP ביציאה 9000 עם השינוי בקוד שנטען.

  11. הפעם, במקום לשלוח הודעה שנייה Hey! במרחב, אפשר לבחור את בקשת ה-HTTP האחרונה שנרשמה בממשק האינטרנט שמתארח באפליקציית ngrok בסביבה המקומית וללחוץ על Replay. כמו בפעם הקודמת, אפליקציית Chat לא מגיבה כי מתבצע בה ניפוי באגים.

  12. כשממשיכים את ההרצה מהבאגים של Visual Studio Code אפשר לראות מממשק האינטרנט שמארחת האפליקציה ngrok בסביבה המקומית שהאפליקציה יוצרת תגובה עם הגרסה המעודכנת של ההודעה.

Java

  1. קבלת פרטי כניסה חדשים של משתמש לשימוש ב-Application Default Credentials:

    gcloud config set project PROJECT_ID
    gcloud auth application-default login

    מחליפים את PROJECT_ID במזהה הפרויקט של פרויקט הענן של האפליקציה.

  2. משכפלים את מאגר googleworkspace/add-ons-samples מ-GitHub בסביבה המקומית. המאגר מכיל את קוד האפליקציה:

    git clone https://github.com/googleworkspace/add-ons-samples.git
  3. בסביבת הפיתוח המשולבת (IDE) Visual Studio Code שהתקנתם בסביבה המקומית, מבצעים את הפעולות הבאות:

    1. בחלון חדש, פותחים את התיקייה add-ons-samples/java/chat/avatar-app.
    2. מגדירים את פרויקט Maven להרצת האפליקציה App ביציאה 9000 באופן מקומי על ידי הוספת פלאגין הבנייה של Google Cloud Functions Framework‏ function-maven-plugin לקובץ pom.xml:

      ...
      <plugin>
          <groupId>com.google.cloud.functions</groupId>
          <artifactId>function-maven-plugin</artifactId>
          <version>0.11.0</version>
          <configuration>
              <functionTarget>App</functionTarget>
              <port>9000</port>
          </configuration>
      </plugin>
      ...
      
    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. מוסיפים נקודת עצירה שגורמת להשהיית העיבוד של בקשת ה-HTTP בקובץ App.java, ומתחילים לצרף ולנפות באגים באמצעות ההגדרה Remote Debug Watch שנוספה קודם. האפליקציה פועלת עכשיו ומאזינה לבקשות HTTP ביציאה 9000.

      האפליקציה פועלת ומאזינה לבקשות HTTP ביציאה 9000

      איור 3. האפליקציה פועלת ומאזינה לבקשות HTTP ביציאה 9000.

  4. מפעילים את האפליקציה ngrok בסביבה המקומית:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

    מחליפים את NGROK_STATIC_DOMAIN בדומיין הסטטי בחשבון ngrok. כל הבקשות מופנות עכשיו לסביבה המקומית וליציאה שבה האפליקציה משתמשת.

    הטרמינל עם שרת ngrok פועל ומפנה מחדש

    איור 4. הטרמינל עם השרת של ngrok פועל ומבצע הפניה אוטומטית.

  5. בנוסף, האפליקציה ngrokמפעילה ממשק אינטרנט ב-localhost, ואפשר לפתוח אותו בדפדפן כדי לעקוב אחרי כל הפעילויות.

    ממשק האינטרנט שמתארח באפליקציית ngrok ולא מוצגות בו בקשות HTTP

    איור 5. ממשק האינטרנט שמתארח באפליקציית ngrok ולא מציג בקשות HTTP.

  6. כדי לבדוק את אפליקציית Chat, שולחים לה צ'אט ישיר:

    • פותחים את Google Chat.

      מעבר אל Google Chat

    • לוחצים על צ'אט חדש .

    • בתיבת הדו-שיח, מזינים את השם של אפליקציית הצ'אט.

    • בתוצאות החיפוש, מוצאים את אפליקציית Chat, לוחצים על הוספה > Chat.

    • במרחב של הצ'אט הישיר, כותבים Hey! ולוחצים על enter. אפליקציית הצ'אט לא מגיבה כי מתבצע בה ניפוי באגים פעיל.

  7. ב-Visual Studio Code בסביבה המקומית, אפשר לראות שהביצוע מושהה בנקודת העצירה שהוגדרה.

    הביצוע מושהה בנקודת העצירה שהוגדרה

    איור 6. הביצוע מושהה בנקודת העצירה שהוגדרה.

  8. כשממשיכים את ההפעלה ממאגר הבאגים של Visual Studio Code לפני שחלף הזמן הקצוב לתגובה של אפליקציית Chat ב-Google Chat האפליקציה משיבה עם השם ותמונת האווטאר שלכם בהודעה.

  9. אפשר לבדוק את היומנים של בקשות ותגובות HTTP מממשק האינטרנט שמארחת אפליקציית ngrok בסביבה המקומית.

    בקשת ה-HTTP מממשק האינטרנט שמארחת אפליקציית ngrok

    איור 7. בקשת ה-HTTP מממשק האינטרנט שמארחת האפליקציה ngrok.

  10. כדי לשנות את התנהגות האפליקציה, מחליפים את Hello ב-Hey inline 55 בקובץ App.java, מפעילים מחדש את התהליך mvnDebug ומפעילים מחדש את Remote Debug Watch כדי לצרף מחדש ולהפעיל מחדש את הניפוי באגים.

  11. הפעם, במקום לשלוח הודעה שנייה Hey! במרחב, אפשר לבחור את בקשת ה-HTTP האחרונה שנרשמה בממשק האינטרנט שמתארח באפליקציית ngrok בסביבה המקומית וללחוץ על Replay. כמו בפעם הקודמת, אפליקציית Chat לא מגיבה כי מתבצע בה ניפוי באגים.

  12. כשממשיכים את ההרצה מהבאגים של Visual Studio Code אפשר לראות מממשק האינטרנט שמארח את האפליקציה ngrok בסביבה המקומית שהאפליקציה יוצרת תגובה עם הגרסה המעודכנת של ההודעה.

ניפוי באגים מסביבה מרוחקת

בקטע הזה, אתם מבצעים אינטראקציה עם אפליקציית Chat שפועלת בסביבה מרוחקת.

ניפוי באגים מסביבה מרוחקת

איור 9. ניפוי באגים מסביבה מרוחקת.

דרישות מוקדמות

  • מרחב לצ'אט ישיר עם אפליקציית Chat. אפשר לעיין בקטע בדיקת אפליקציית Chat במדריך למתחילים ולחפש את אפליקציית Chat כדי להתחיל צ'אט.
  • האפליקציה שלכם פועלת בסביבה מרוחקת עם ניפוי הבאגים שמופעל ביציאה מסוימת, והיא נקראת 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: יציאת הניפוי בסביבה המרוחקת.

יציאת הניפוי באגים בסביבה המקומית מקושרת עכשיו ליציאת הניפוי באגים בסביבה המרוחקת.

הפעלת ניפוי באגים

בסביבת הפיתוח המשולבת (IDE) Visual Studio Code שהתקנתם בסביבה המקומית, מבצעים את הפעולות הבאות:

  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 שנוספה קודם.

במרחב של הצ'אט הישיר עם אפליקציית Chat, מקלידים את מה שרוצים לבדוק ולוחצים על enter. אפליקציית Chat לא מגיבה כי מתבצע ניפוי באגים באופן פעיל ב-IDE‏ Visual Studio Code.

אפליקציות ל-Chat שאינן תוספים: ניפוי באגים באפליקציות ל-Google Chat

המסמכים הבאים רלוונטיים לאפליקציות ל-Chat שהן לא תוספים ל-Google Workspace. כדי להעביר אפליקציית Chat שהיא לא תוסף, אפשר לעיין במאמר בנושא המרת אפליקציית Chat לתוסף ל-Google Workspace.

כדי לנפות באגים באפליקציית Chat שהיא לא תוסף מהסביבה המקומית:

  • בכרטיסייה Chat API Configuration (הגדרה) בקטע Interactive features (תכונות אינטראקטיביות) > Connection settings (הגדרות חיבור), בוחרים באפשרות HTTP endpoint URL (כתובת URL של נקודת קצה מסוג HTTP) ומגדירים את השדה HTTP endpoint URL (כתובת URL של נקודת קצה מסוג HTTP) ישירות ל-https://<var>NGROK_STATIC_DOMAIN</var>.
  • אפשר להשתמש בקוד לדוגמה לאפליקציות ל-Chat שהן לא תוספים ממאגר GitHub‏ (google-chat-samples/node/basic-app,‏ google-chat-samples/python/avatar-app או google-chat-samples/java/avatar-app) googleworkspace/google-chat-samples.