פתרון בעיות בפריסה

בדף הזה מוסבר:

בדיקת פרטי הפריסה ויומנים

אתם יכולים לבדוק את הפרטים והיומנים של הפריסה ושל כל עדכון בנפרד.

בדיקת מצב הפריסה

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

אם יש שגיאות, מתחילים בבדיקת מצב הפריסה.

בדיקת המצב של גרסה

אם פריסה נכשלת עם קוד השגיאה REVISION_FAILED, אפשר לראות את הסטטוס של עדכון.

בפלט של מצב הגרסה, בודקים את השדות stateDetail ו-errorCode.

מצב הגרסה כולל את אותם פרטים כמו פריסה. בנוסף, הוא כולל את מזהה הגרסה.

בדיקת היומנים של Cloud Build

צפייה במצב של גרסה וקבלת מזהה ה-build של Cloud Build שבו נעשה שימוש בגרסה.

משתמשים במזהה הבנייה כדי לבדוק את היומנים של Cloud Build. פרטים על בדיקת תוצאות ה-build זמינים במאמר בנושא הצגת תוצאות ה-build.

שגיאות נפוצות

בקטע הזה מתוארות שגיאות נפוצות שאתם עשויים לראות כשאתם פורסים תצורת Terraform באמצעות Infra Manager.

הפריסה נכשלה

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

צפייה בסטטוס הפריסה ובדיקת השדות stateDetail ו-errorCode לקבלת מידע נוסף.

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

שגיאות בהגדרות

אם המצב של הפריסה הוא FAILED, יכול להיות שהיא נכשלה בגלל שגיאות בהגדרות של Terraform.

אם שגיאת הפריסה קשורה להגדרה, השדות tfErrors ו-errorLogs נכללים בפלט של מצב הפריסה. דוגמאות לשגיאות בהגדרות כוללות הגדרה לא תקינה או הרשאות חסרות.

צפייה בשגיאות מ-Terraform. בפלט של מצב הפריסה:

  • tfErrors הוא סיכום של השגיאות שנתקלו בהן ב-Terraform (מוגבל על ידי Infra Manager ל-10 שגיאות ברשימה הזו).
  • errorLogs מצביעים על אובייקט ב-Cloud Storage בקטגוריית הארטיפקטים. המאגר הזה מכיל את כל נתוני tfErrors בפורמט JSON שמופרד בתו שורה חדשה.

לכל tfError יש כתובת משאב ותיאור שגיאה שקריא לבני אדם בשדה errorDescription. אם המשאב נכשל בגלל קוד שגיאה של HTTP שמוחזר מ-API מסוים Google Cloud , השדה httpResponseCode יאוכלס גם הוא. כל מידע נוסף על כשל ב-API מתועד בשדה השגיאה.

לחשבון השירות חסרות הרשאות לאחזור ההגדרה

מופיעה השגיאה הבאה:

  error downloading 'GCS_LOCATION': googleapi: Error 403: SA_EMAIL does
  not have storage.objects.list access to the Google Cloud Storage bucket.

השגיאה הזו מופיעה כי ל-Infra Manager אין הרשאה לאחזר את ההגדרות של Terraform מקטגוריה של Cloud Storage.

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

מיקום שגוי לאחזור ההגדרה

מופיעה השגיאה הבאה:

  `blueprint fetch failed: invalid path`

השגיאה הזו מוצגת כשמציינים מיקום לא תקין לאחזור הגדרת Terraform. ב-Infra Manager, המונח תוכנית מתייחס להגדרת Terraform.

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

הרשאה שגויה להפעלת משאבים

בדרך כלל השגיאות מופיעות בקטע tfErrors עם קוד התגובה 403 של המשאבים שלא ניתן היה לפרוס.

השגיאה הזו מופיעה כשאין לחשבון השירות מספיק הרשאות כדי ליצור, לקרוא, לעדכן או למחוק משאבים שמוגדרים בהגדרות של Terraform.

כדי לפתור את השגיאה הזו, כדאי לעיין במאמר בנושא הענקת הרשאות IAM לחשבון השירות.

הגדרה עם קצה עורפי

מופיעה השגיאה הבאה:

  `blueprint invalid: found backend config in file.tf`

השגיאה הזו מופיעה כשהגדרת Terraform כוללת בלוק backend. ‫Infrastructure Manager מנהל את הקצה העורפי, ולכן אי אפשר להגדיר בלוק של קצה עורפי בתצורת Terraform.

כדי לפתור את השגיאה הזו, צריך להסיר את חסימת ה-backend מההגדרה.

אימות ההגדרה של מאגר Cloud Build

אם ל-Infra Manager אין גישה למאגר Git שלכם (באמצעות מאגר Git פרטי או תהליך עבודה אוטומטי של Cloud Build), יכול להיות שתצטרכו לוודא שמאגר Cloud Build הוגדר בצורה נכונה.

כדי לוודא שהמאגר של Cloud Build הוגדר לספק גישה למאגר הפרטי, אפשר לעיין במאמר בנושא חיבור למאגר ב-GitHub.

‫Infra Manager משתמש בחיבור הראשון שבו כתובת ה-URL של מאגר Cloud Build תואמת להגדרת Terraform (שמצוינת ב---git-source-repo), ושבו הוא יכול ליצור טוקן לקריאה בלבד. החיבור למאגר מאומת ישירות על ידי קריאה ל-accessReadToken API במאגר Cloud Build שנבחר.

מריצים את הפקודה הזו באמצעות חשבון השירות של Infra Manager כדי לוודא שההרשאות נכונות:

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token \
--impersonate-service-account=SERVICE_ACCOUNT)" \
"https://cloudbuild.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/connections/CB_CONNECTION/repositories/CB_REPO:accessReadToken"

המאמרים הבאים