ניפוי באגים בשירות שפועל באופן מקומי ב-Cloud Code for IntelliJ

באמצעות Cloud Code, אתם יכולים לנפות באגים בשירותי Cloud Run באופן מקומי בסביבה שדומה ל-Cloud Run. אפשר להגדיר נקודות עצירה, להריץ את הקוד שלכם ולנפות באגים בשירותים מרוחקים שפועלים במאגרי תגים.

בנוסף, Cloud Code מאפשר לכם לנפות באגים באפליקציה תוך כדי ביצוע שינויים בקוד המקור וחזרה עליו.

הגדרת ניפוי הבאגים

לפני שמבצעים ניפוי באגים בשירות, צריך ליצור את הגדרת הניפוי באגים:

  1. בסרגל הניווט, עוברים לבורר ההגדרות Run/Debug ולוחצים על Edit Configurations (עריכת הגדרות).
  2. בוחרים באפשרות Cloud Run: Run Locally (הפעלת Cloud Run באופן מקומי) בקטע Cloud Code: Cloud Run (Cloud Code: Cloud Run).
  3. לוחצים על OK.

ניפוי באגים בשירות

כדי לנפות באגים בשירות:

  1. לוחצים על סמל פעולת ניפוי באגים Debug (ניפוי באגים) עבור Cloud Run: Run Locally (Cloud Run: הפעלה מקומית) כדי להתחיל את מחזור הפיתוח במצב ניפוי באגים.

    לחיצה על 'הפעלה' ב-Cloud Run: הפעלה מקומית במצב ניפוי באגים

  2. ‫Cloud Code יצרף סשן ניפוי באגים. אם החיבור מצליח, נפתח חלון של כלי ניפוי הבאגים, שבו מוצג אישור לחיבור (בכרטיסייה Console).

  3. לוחצים על השוליים בשורה של הקוד שניתן להפעלה שבה רוצים להוסיף נקודת עצירה.

    עיגולים אדומים מלאים מציינים נקודות עצירה פעילות, ואילו עיגולים אדומים עם קו מתאר מציינים נקודות עצירה מושבתות.

  4. כדי לגשת לשירות הפועל, לוחצים על כתובת ה-URL שמוצגת בחלונית 'יומן אירועים'.

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

    יומן אירועים עם הודעה על פריסה מוצלחת וכתובת URL לתצוגה מקדימה של השירות

  5. כדי לסיים את סשן ניפוי הבאגים, לוחצים על סמל ההפסקה בהגדרת ההפעלה Cloud Run: Run Locally.

סביבות פיתוח משולבות (IDE) נתמכות

בטבלה הבאה מפורטות השפות וסביבות הפיתוח המשולבות (IDE) ש-Cloud Code תומך בהן לצורך ניפוי באגים. בטבלה מפורטים גם הפלאגינים הנדרשים, במקרים הרלוונטיים:

שפה מהדורות וסביבות פיתוח משולבות (IDE) נתמכות תוסף נדרש
Java IntelliJ IDEA Ultimate לא רלוונטי
‫IntelliJ IDEA Community לא רלוונטי
המשך IntelliJ IDEA Ultimate פלאגין Go
GoLand לא רלוונטי
Node.js IntelliJ IDEA Ultimate תוסף Node.js
WebStorm לא רלוונטי
Python IntelliJ IDEA Ultimate פלאגין Python
PyCharm Professional לא רלוונטי

מידע נוסף על תמיכה ב-IDE זמין במאמר סביבות IDE נתמכות של JetBrains.

באמצעות Cloud Code, אתם יכולים להגדיר נקודות עצירה ולנפות באגים באפליקציות מרוחקות שפועלות במאגדים בשפות הבאות:

Java

‫Cloud Code מוסיף באופן אוטומטי משתנה סביבה, JAVA_TOOL_OPTIONS, עם הגדרת JDWP מתאימה כדי להפעיל ניפוי באגים. אם התג JAVA_TOOL_OPTIONS כבר קיים, Cloud Code משתמש בהגדרות הקיימות שצוינו בתג JAVA_TOOL_OPTIONS.

Node.js

בהתאם למבנה של האפליקציה ולהגדרות ה-build של קובץ האימג' שלה, יכול להיות שתצטרכו לעזור למנפה הבאגים למפות את המקורות המקומיים למקורות המרוחקים בקונטיינר. כך מאפשרים למנפה הבאגים של Node לעבד את נקודות העצירה בצורה נכונה.

אפשר להגדיר את זה באחת מהדרכים הבאות:

  • הגדרה ידנית

    בתפריט הנפתח בוחרים באפשרות Cloud Run: Run Locally (Cloud Run: הרצה מקומית) ואז לוחצים על Edit Configurations (עריכת הגדרות). בכרטיסייה Debug, מגדירים את מיפוי המקור מקובץ המקור של האפליקציה המקומית למיקום המקור בקונטיינר המרוחק.

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

    אפשרויות ההגדרה:

    • File/directory – הקובץ או הספרייה המקומיים של האפליקציה שפועלת ב-Cloud Run.
    • נתיב מרוחק – הנתיב לקובץ או לספרייה שפועלים בקונטיינר ב-Cloud Run.
  • הגדרה אוטומטית

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

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

    אפשרויות ההגדרה:

    • Local path (נתיב מקומי) – הנתיב המקומי אל שורש הארטיפקט שמבצעים בו דיבאג.
    • נתיב מרוחק – הנתיב לקובץ או לספרייה שפועלים בקונטיינר ב-Cloud Run. אתם יכולים לשנות את ברירת המחדל ולהגדיר ערך משלכם. אם לוחצים על ביטול, לא מוחל מיפוי.

המשך

כדי להגדיר את האפליקציה לניפוי באגים, האפליקציה צריכה להיות מבוססת על Go Module ולהיות מזוהה כאפליקציה מבוססת Go. כדי לעשות את זה, צריך להגדיר אחת ממשתני הסביבה הרגילים של זמן הריצה של Go בקונטיינר, כמו GODEBUG, ‏ GOGC, ‏ GOMAXPROCS או GOTRACEBACK. ‫GOTRACEBACK=single היא הגדרת ברירת המחדל ב-Go, ו-GOTRACEBACK=all היא הגדרה שימושית בדרך כלל.

אופציונלית (אבל מומלצת), האפליקציה צריכה להיבנות עם האפשרויות -gcflags='all=-N -l' להשבתת האופטימיזציות. פרופילים של Skaffold הם אפשרות שימושית למטרה הזו, ואפשר להגדיר אותם בשדה Deployment Profile (פרופיל פריסה) בהגדרת ההרצה בכרטיסייה Build/Deploy (יצירה/פריסה).

Python

כדי להגדיר את האפליקציה לניפוי באגים, צריך לוודא שמתקיימות הדרישות המוקדמות הבאות:

  • הפלאגין, המהדורה וסביבת הפיתוח המשולבת (IDE) תואמים

    מידע על סביבות פיתוח משולבות (IDE), מהדורות ותוספים תואמים זמין במאמר בנושא סביבות פיתוח משולבות נתמכות.

  • גרסת Skaffold היא 1.25.0 ואילך

    אתם יכולים לאפשר ל-Cloud Code לנהל את התלות שלכם או להפנות להתקנה מקומית של Skaffold. ראו העדפות > כלים > Cloud Code > תלויות.

  • רכיב התרגום ב-Python מוגדר

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

    סביבת פיתוח משולבת (IDE) איך מגדירים
    IntelliJ IDEA כדי לנפות באגים ב-Python באמצעות Cloud Code, צריך להגדיר Python SDK לפרויקט.

    עוברים אל File (קובץ) > Project Structure (מבנה הפרויקט) ומוסיפים Python SDK בכרטיסייה Project (פרויקט). אם אין כזה, מוסיפים אותו בכרטיסייה SDK.
    PyCharm עוברים אל File > Settings > Project > Python Interpreter (קובץ > הגדרות > פרויקט > Python Interpreter) או אל PyCharm > Preferences > Project > Python Interpreter (PyCharm > העדפות > פרויקט > Python Interpreter) ב-Mac OS X, ומוסיפים Python Interpreter.

מידע נוסף זמין במסמכי התיעוד של Skaffold debug.

פנייה לתמיכה

כדי לשלוח משוב או לדווח על בעיה ב-IntelliJ IDE, עוברים אל Tools (כלים) > Cloud Code > Help / About (עזרה / מידע) > Submit feedback or report an issue (שליחת משוב או דיווח על בעיה) כדי לדווח על בעיה ב-GitHub.