אפשר להפעיל מצב ניפוי באגים במכונה וירטואלית. במצב ניפוי באגים, לחשבונות משתמשים עם התפקידים 'בעלים', 'עריכה' ו'אדמין App Engine' בפרויקט יש גישת שורש למכונה הווירטואלית. בזמן שמצב ניפוי הבאגים מופעל, ההפצה האוטומטית של עדכוני מערכת ההפעלה ותיקוני האבטחה מושבתת. עם זאת, המכונה הווירטואלית עדיין חלק ממאגר מאזן העומסים, והיא ממשיכה לקבל בקשות חיצוניות.
בכל פעם שמפעילים או משביתים ניפוי באגים, האירוע 'הפעלה או השבתה של ניפוי באגים במכונה וירטואלית' מופיע במסוף Google Cloud והאירוע יתועד בקובץ /var/log/syslog.logשל המכונה הווירטואלית.
הפעלה והשבתה של מצב ניפוי באגים
אפשר להשתמש ב-gcloud כדי להפעיל ולהשבית את מצב ניפוי הבאגים עבור מופע. כדי לנפות באגים במופע, התפקיד שלכם צריך לכלול את ההרשאה appengine.instances.enableDebug.
כדי להפעיל ולהשבית את מצב ניפוי הבאגים ב-gcloud:
-
כדי לנפות באגים במכונות הווירטואליות של מופע וגרסה מסוימים, משתמשים בפקודה gcloud
app instances enable-debug באופן הבא:
מחליפים את PROJECT-ID במזהה הפרויקט שלכם ופועלים לפי ההנחיות כדי לציין את גרסת המופע לניפוי הבאגים.gcloud app --project PROJECT-ID instances enable-debug
-
כשמסיימים את ניפוי הבאגים, משביתים את מצב ניפוי הבאגים באופן הבא:
פועלים לפי ההנחיות כדי לציין את גרסת המופעgcloud app --project PROJECT-ID instances disable-debug
כשמשביתים את מצב ניפוי הבאגים, המכונה הווירטואלית נעצרת ומופעל מופע חדש של האפליקציה, שפועל במכונה וירטואלית חדשה ונקייה.
מתבצעת התחברות למכונה
המסוף
כדי להתחבר למופע במסוף:
עוברים לדף של מופעי המסוף בפרויקט: Google Cloud
לוחצים על SSH משמאל לשורה שמכילה את המופע שרוצים לגשת אליו:

המכונה עוברת למצב ניפוי באגים, ונפתח סשן SSH למכונה בחלון טרמינל.
אפשר גם לבחור אפשרויות אחרות כדי להתחיל סשן SSH מהרשימה הנפתחת.
בשלב הזה אתם נמצאים במארח של המופע, שפועלים בו כמה קונטיינרים. מידע נוסף על הסוגים האלה זמין במאמר הסבר על מאגרי תגים נפוצים.
בחלון המסוף, מציגים את רשימת הקונטיינרים שפועלים במופע:
sudo docker ps
הפלט של הפקודה
sudo docker psמפרט כל מאגר בשורה נפרדת. מאתרים את השורה שמכילה את מזהה הפרויקט – זהו המאגר שבו הקוד פועל. רושמים את השם של הקונטיינר הזה.אפשר גם להפעיל את הפקודה הבאה כדי לראות את פרטי הרישום ביומן של האפליקציה:
sudo docker logs CONTAINER-NAME
מפעילים מעטפת בקונטיינר שבו הקוד פועל:
sudo docker exec -it CONTAINER-NAME /bin/bash
בסיום ניפוי הבאגים, מזינים
exitכדי לצאת מהקונטיינר, ואז מזיניםexitשוב כדי לצאת מסשן ה-SSH.כדי שהמכונה תחזור לפעולה רגילה, צריך להשבית את ניפוי הבאגים שלה.
gcloud
כדי להתחבר למופע באמצעות gcloud:
כשהמופע מופעל לניפוי באגים, מפעילים את הפקודה:
gcloud beta app instances --project PROJECT-ID ssh INSTANCE-NAME --service SERVICE --version VERSION
בשלב הזה אתם נמצאים במארח של המופע, שבו פועלים כמה קונטיינרים. מידע נוסף על המאגרים האלה זמין במאמר הסבר על מאגרי תגים נפוצים.
בחלון המסוף, מציגים את רשימת הקונטיינרים שפועלים במופע:
sudo docker ps
הפלט של הפקודה
sudo docker psמפרט כל מאגר בשורה נפרדת. מאתרים את השורה שמכילה את מזהה הפרויקט – זהו המאגר שבו הקוד פועל. רושמים את השם של הקונטיינר הזה.אפשר גם להפעיל את הפקודה הבאה כדי לראות את פרטי הרישום ביומן של האפליקציה:
sudo docker logs CONTAINER-NAME
מפעילים מעטפת בקונטיינר שבו הקוד פועל:
docker exec -it CONTAINER-NAME /bin/bash
בסיום ניפוי הבאגים, מזינים
exitכדי לצאת מהקונטיינר, ואז מזיניםexitשוב כדי לצאת מסשן ה-SSH.כדי שהמכונה תחזור לפעולה רגילה, צריך להשבית את ניפוי הבאגים שלה.
הסבר על קונטיינרים נפוצים
בנוסף לקונטיינר שמריץ את קוד האפליקציה, יכול להיות שיהיו במופע גם הקונטיינרים הבאים:
| מאגר תגים וקוד מקור | תיאור |
|---|---|
| cloud-sql | הוא מבטיח חיבורים מאובטחים למכונה של Cloud SQL. |
| fluentd_logger | סוכן Logging. |
| nginx_proxy | השרתים האלה מעבירים בקשות לאפליקציה. |
| opentelemetry-collector | מקבל, מעבד ומייצא נתוני טלמטריה. |
| stackdriver-monitoring-agent | איסוף, אחסון ומעקב של פרטי המערכת. |
חשוב לזכור שהשינויים האלה במיכלי ה-sidecar יכולים להתבצע בלי הודעה מוקדמת.