פתרון בעיות ביצירת מכונות וירטואליות בכמות גדולה

במאמר הזה מוסבר איך לפתור בעיות בפעולות ליצירת מכונות בכמות גדולה באמצעות API.

שגיאות בפעולה

כשמשתמשים ב-API ליצירת מכונות וירטואליות בכמות גדולה, בקשות create מחזירות HTTP 200 OK עם סטטוס RUNNING אם הבקשה מתחילה בהצלחה. אם הבקשה לא מתחילה בהצלחה, ה-API מחזיר אחת מהתגובות שמופיעות בהמשך.

לא חוקי

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

השדות של תגובת ה-API:

  • HTTP 400
  • "reason": "invalid"

כדי לפתור את הבעיה:

  1. בודקים את השדה message בתשובה כדי לזהות את הנכס בבקשה שגרם לשגיאה.
  2. מעדכנים את הנכס שגרם לשגיאה.
  3. מנסים לשלוח את הבקשה שוב.
  4. אם הבקשה נכשלת שוב, כדאי לנסות להשתמש ב-API Explorer כדי לאמת את הבקשה. מידע נוסף זמין במאמר בנושא אימות בקשות API.

חריגה מהמכסה

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

השדות של תגובת ה-API:

  • HTTP 403
  • "reason": "quotaExceeded"
כדי לפתור את הבעיה:

  1. בודקים את השדה message כדי לזהות את מכסת המשאבים שהבקשה חרגה ממנה.
  2. מבצעים אחת מהפעולות האלה:

חריגה ממגבלת קצב הבקשות

אם שדות התגובה הבאים של ה-API מופיעים כשיוצרים מכונות וירטואליות, הגעתם למגבלת הבקשות של 20 בקשות לשנייה או שיש לכם יותר מ-10 פעולות בכמות גדולה שפועלות בו-זמנית.

השדות של תגובת ה-API:

  • HTTP 403
  • "reason": "rateLimitExceeded"

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

קיבולת לא מספקת

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

השדות של תגובת ה-API:

  • HTTP 503
  • "reason": "insufficientCapacity"
כדי לפתור את הבעיה, מבצעים אחת מהפעולות הבאות:

  • יצירת מכונות וירטואליות באזור אחר
  • יצירת מכונות וירטואליות באזור אחר אם משתמשים בנקודת קצה אזורית
  • לנסות הגדרה אחרת של מכונה וירטואלית
  • אפשר לנסות לשלוח את הבקשה שוב מאוחר יותר

שגיאות בסטטוס הבקשה

כשמשתמשים ב-API ליצירת מכונות וירטואליות בכמות גדולה כדי ליצור מכונות וירטואליות, בקשת create מחזירה HTTP 200 OK עם סטטוס RUNNING אם הבקשה מתחילה בהצלחה. עם זאת, יכול להיות שהבקשה תיכשל לפני שהיא תושלם. אפשר לבדוק את הסטטוס של הבקשה כדי לוודא שהיא הושלמה בהצלחה. אם הבקשה לא הושלמה בהצלחה, יוצג אחד מסטטוסי הבקשה הבאים.

חריגה מהמכסה

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

השדות של תגובת ה-API:

  • "status": "done"
  • "httpErrorMessage": "FORBIDDEN"
  • "code"": "QUOTA_EXCEEDED"

כדי לפתור את הבעיה:

  1. בודקים את השדה message כדי לזהות את מכסת המשאבים שהבקשה חרגה ממנה.
  2. מבצעים אחת מהפעולות האלה:

המשאב כבר קיים

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

השדות של תגובת ה-API:

  • code: RESOURCE_ALREADY_EXISTS
  • httpErrorMessage: CONFLICT
  • status: DONE

כדי לפתור את הבעיה:

  1. בודקים את השדה message כדי לזהות את שם המשאב שכבר קיים.
  2. נסו לשלוח שוב את הבקשה באמצעות namePattern אחר. מידע נוסף זמין במאמר יצירת כמה מכונות וירטואליות באזור.

קיבולת לא מספקת

אם שדות התגובה הבאים של ה-API מופיעים כשמבצעים סקר פעולות, הבקשה נכשלה כי לא היה מספיק קיבולת באזור או באזור הזמינות (אם משתמשים בנקודת הקצה האזורית) שבו ניסיתם ליצור מכונות וירטואליות.

השדות של תגובת ה-API:

  • "status": "DONE"
  • "httpErrorMessage": "SERVICE UNAVAILABLE"
  • "code": "ZONE_RESOURCE_POOL_EXHAUSTED"

כדי לפתור את הבעיה תוכלו לנסות אחד מהפתרונות הבאים:

  • יצירת מכונות וירטואליות באזור אחר
  • יצירת מכונות וירטואליות באזור אחר אם משתמשים בנקודת קצה אזורית
  • לנסות הגדרה אחרת של מכונה וירטואלית
  • אפשר לנסות לשלוח את הבקשה שוב מאוחר יותר

מה השלב הבא?