Cloud Code ל-IntelliJ מאפשר לכם לנפות בקלות באגים באפליקציות שנפרסו באשכול Kubernetes. אפשר לנפות באגים באפליקציה באשכול מקומי (כמו minikube או Docker Desktop), ב-Google Kubernetes Engine או בכל ספק שירותי ענן אחר.
התמיכה בניפוי באגים ב-Cloud Code מאפשרת לכם לדלג על הגדרה ידנית, כמו הגדרת העברת יציאות, התקנת קצה עורפי לניפוי באגים או הוספה של ארגומנטים לניפוי באגים שספציפיים לשפה בצורה הנכונה. כל מה שצריך הוא אפליקציית Kubernetes שמוכנה לשימוש ב-Cloud Code וכוללת קובץ הגדרה skaffold.yaml.
בנוסף, Cloud Code מאפשר לכם לנפות באגים באפליקציה תוך כדי ביצוע שינויים בקוד המקור וחזרה עליו.
סביבות פיתוח משולבות (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 לעבד את נקודות העצירה בצורה נכונה.
אפשר להגדיר את זה באחת מהדרכים הבאות:
הגדרה ידנית
בוחרים את הגדרת ההרצה Develop on Kubernetes מהתפריט הנפתח ואז לוחצים על Edit Configurations (עריכת ההגדרות). בכרטיסייה Debug, מגדירים את מיפוי המקור מקובץ המקור של האפליקציה המקומית למיקום המקור בקונטיינר המרוחק.

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

אפשרויות ההגדרה:
- Local path (נתיב מקומי) – הנתיב המקומי אל שורש הארטיפקט שמבצעים בו דיבאג.
- נתיב מרוחק – הנתיב לקובץ או לספרייה שפועלים בקונטיינר ב-Kubernetes. אתם יכולים לשנות את ברירת המחדל ולהגדיר ערך משלכם. אם לוחצים על ביטול, לא מוחל מיפוי.
המשך
כדי להגדיר את האפליקציה לניפוי באגים, האפליקציה צריכה להיות מבוססת על 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.
ניפוי באגים באפליקציה
כדי להתחיל את מחזור הפיתוח במצב ניפוי באגים באשכול Kubernetes, לוחצים על פעולת ניפוי הבאגים עבור
Develop on Kubernetes.
מחזור הפיתוח המתמשך מתחיל במצב ניפוי באגים.
Cloud Code מצרף סשן של ניפוי באגים:
עכשיו אתם יכולים לבצע את המשימות שאתם בדרך כלל מבצעים כשמנפים באגים בקוד מקומי, כמו הגדרת נקודות עצירה והרצת קוד שלב אחר שלב, מול אשכול Kubernetes פעיל.
כדי לסיים את סשן הניפוי באגים, לוחצים על סמל העצירה בהגדרת ההפעלה Develop on Kubernetes.
המאמרים הבאים
- כדי לפתח מהר יותר, אפשר להשתמש בסנכרון קבצים וטעינה מחדש של קבצים.
- הגדרת סביבת פיתוח רציף ב-Cloud Code.
- צפייה ביומני Kubernetes ב-Cloud Code.