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