באמצעות Cloud Code, אתם יכולים לנפות באגים בשירותי Cloud Run באופן מקומי בסביבה שדומה ל-Cloud Run. אפשר להגדיר נקודות עצירה, להריץ את הקוד שלכם ולנפות באגים בשירותים מרוחקים שפועלים במאגרי תגים.
בנוסף, Cloud Code מאפשר לכם לנפות באגים באפליקציה תוך כדי ביצוע שינויים בקוד המקור וחזרה עליו.
הגדרת ניפוי הבאגים
לפני שמבצעים ניפוי באגים בשירות, צריך ליצור את הגדרת הניפוי באגים:
- בסרגל הניווט, עוברים לבורר ההגדרות Run/Debug ולוחצים על Edit Configurations (עריכת הגדרות).
- בוחרים באפשרות Cloud Run: Run Locally (הפעלת Cloud Run באופן מקומי) בקטע Cloud Code: Cloud Run (Cloud Code: Cloud Run).
- לוחצים על OK.
ניפוי באגים בשירות
כדי לנפות באגים בשירות:
לוחצים על
Debug (ניפוי באגים) עבור Cloud Run: Run Locally (Cloud Run: הפעלה מקומית) כדי להתחיל את מחזור הפיתוח במצב ניפוי באגים.
Cloud Code יצרף סשן ניפוי באגים. אם החיבור מצליח, נפתח חלון של כלי ניפוי הבאגים, שבו מוצג אישור לחיבור (בכרטיסייה Console).
לוחצים על השוליים בשורה של הקוד שניתן להפעלה שבה רוצים להוסיף נקודת עצירה.
עיגולים אדומים מלאים מציינים נקודות עצירה פעילות, ואילו עיגולים אדומים עם קו מתאר מציינים נקודות עצירה מושבתות.
כדי לגשת לשירות הפועל, לוחצים על כתובת ה-URL שמוצגת בחלונית 'יומן אירועים'.
כשעושים את זה, בקשה חדשה נשלחת לשירות והיא מושהית בשורה שמסומנת כנקודת עצירה.

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