מגדירים את קובץ התצורה של ה-Build כך שיומני ה-Build יאוחסנו בקטגוריות של יומנים, כדי שתוכלו לקבץ ולנתח אותם באמצעות הכלים של Cloud Logging ו-Cloud Storage. הגדרת האחסון של יומן הבנייה מאפשרת לכם לקבל שליטה רבה יותר על האחסון והניתוח של היומנים. אם לא מגדירים את הגדרות האחסון של יומן הבנייה, Cloud Build מאחסן אותם בקטגוריה בבעלות Google Cloudעם פחות אפשרויות לניתוח יומן הבנייה.
במאמר הזה מוסבר איך לאחסן יומני בנייה בסוגים שונים של קטגוריות, ואיך להציג ולמחוק יומנים מאוחסנים.
לפני שמתחילים
חשוב לוודא שאתם מכירים את האפשרויות של קובץ התצורה של ה-build להגדרת האחסון של יומן ה-build, ואת ההשפעה של בעלות על דלי על הגישה ליומן. מידע נוסף זמין במאמר בנושא אפשרויות לאחסון יומני בנייה.
אחסון יומני בנייה בדליים שנוצרו על ידי משתמשים
קטגוריות שנוצרו על ידי משתמשים מאפשרות לכם שליטה רבה יותר בניהול ובהגדרה של הקטגוריות.
אחסון יומני build בקטגוריה של Cloud Logging שנוצרה על ידי המשתמש
קטגוריות Logging שנוצרו על ידי משתמשים מאפשרות לכם לשנות את תקופת השמירה של יומני בנייה מאוחסנים. כדי לאחסן את יומני הבנייה בקטגוריה שנוצרה על ידי המשתמש ב-Logging, מבצעים את הפעולות הבאות:
מתן הרשאות IAM:
כדי לקבל את ההרשאות שדרושות לאחסון יומני בנייה בדלי Cloud Logging שנוצר על ידי משתמש, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד Logs Configuration Writer (roles/logging.configWriter) בחשבון או בחשבון השירות של הפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
הגדרת קטגוריית הרישום ביומן:
יוצרים קטגוריית אחסון ומגדירים ערך בשדה תקופת השמירה.
יוצרים יעד כדי להפנות את יומני הבנייה לקטגוריה החדשה:
מזינים את המסנן הבא להכללת גרסאות ב-Sink:
logName = "projects/PROJECT_ID/logs/cloudbuild"מחליפים את PROJECT-ID במזהה הפרויקט ב- Google Cloud .
(אופציונלי) כדי למנוע את השמירה של יומני הבנייה בקטגוריית ברירת המחדל של היומנים, פועלים לפי הדוגמה במאמר הפסקת השמירה של רשומות ביומן בקטגוריות של יומנים.
אחסון יומני בנייה בקטגוריה של Cloud Storage שנוצרה על ידי המשתמש
כדי לאחסן את יומני הבנייה בקטגוריה של Cloud Storage שנוצרה על ידי המשתמש, מבצעים את הפעולות הבאות:
מתן הרשאות IAM:
אם ה-bucket של Cloud Storage ו-Cloud Build נמצאים באותו פרויקט Google Cloud ואתם משתמשים בחשבון שירות מדור קודם של Cloud Build, לחשבון השירות מדור קודם של Cloud Build יש את הרשאות ה-IAM הנדרשות כברירת מחדל. לא צריך להעניק הרשאות נוספות. אם לא, פועלים לפי השלבים הבאים:
כדי לקבל את ההרשאות שנדרשות לאחסון יומני build בקטגוריה של Cloud Storage שנוצרה על ידי משתמש, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין לניהול אחסון (roles/storage.admin) בחשבון השירות שמשמש ל-build.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
מגדירים את הקטגוריה ב-Cloud Storage:
ב Google Cloud פרויקט, יוצרים קטגוריה של Cloud Storage ללא מדיניות שמירת נתונים מוגדרת, כדי לאחסן את יומני ה-build.
בקובץ התצורה של ה-build, מוסיפים שדה
logsBucketשמצביע על הקטגוריה של Cloud Storage שיצרתם לאחסון יומני ה-build. קובץ התצורה הבא של build מכיל הוראות ליצירת קובץ אימג' של קונטיינר ולאחסון יומני ה-build בקטגוריה בשםmylogsbucket:YAML
steps: - name: 'gcr.io/cloud-builders/docker' args: [ 'build', '-t', 'us-east1-docker.pkg.dev/myproject/myimage', '.' ] logsBucket: 'gs://mylogsbucket' options: logging: GCS_ONLYJSON
{ "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": [ "build", "-t", "us-east1-docker.pkg.dev/myproject/myimage", "." ] } ], "logsBucket": "gs://mylogsbucket", "options": { "logging": "GCS_ONLY" } }משתמשים בקובץ הגדרות ה-build כדי להתחיל build באמצעות שורת הפקודה, ה-API או טריגרים.
בסיום הבנייה, Cloud Build מאחסן את יומני הבנייה בקטגוריה של Cloud Storage שציינתם בקובץ ההגדרות של הבנייה.
אחסון יומני בנייה בקטגוריות של Cloud Storage ספציפיות לאזור
אתם יכולים להגדיר את ה-build כך ש-Cloud Build ישלח את יומני ה-build לקטגוריה של Cloud Storage בבעלות המשתמש באותו אזור כמו ה-build. התאמה בין האזורים של האחסון של הקטגוריה שלכם ושל יומן הבנייה יכולה לעזור לכם לעמוד בדרישות של מיקום הנתונים.
מתן הרשאות IAM:
אם באותו פרויקט נמצאים גם באקט Cloud Storage וגם Cloud Build, ואתם משתמשים בחשבון השירות מדור קודם של Cloud Build, אז לחשבון השירות הזה יש כברירת מחדל את הרשאות ה-IAM הנדרשות. Google Cloud לא צריך להעניק הרשאות נוספות. אם לא, פועלים לפי השלבים הבאים:
כדי לקבל את ההרשאות שנדרשות לאחסון יומני בנייה בקטגוריה ספציפית לאזור שנמצאת בבעלות המשתמש, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Storage Admin (אדמין לניהול אחסון) (roles/storage.admin) בחשבון השירות שמשמש לבנייה.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
מגדירים את הקטגוריה של Cloud Storage שספציפית לאזור:
בקובץ הגדרות ה-build, מוסיפים את האפשרות
defaultLogsBucketBehaviorומגדירים את הערך שלה ל-REGIONAL_USER_OWNED_BUCKET:YAML
steps: - name: 'gcr.io/cloud-builders/docker' args: [ 'build', '-t', 'us-central1-docker.pkg.dev/myproject/myrepo/myimage', '.' ] options: defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKETJSON
{ "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": [ "build", "-t", "us-central1-docker.pkg.dev/myproject/myrepo/myimage", "." ] } ], "options": { "defaultLogsBucketBehavior": "REGIONAL_USER_OWNED_BUCKET" } }משתמשים בקובץ הגדרות ה-build כדי להתחיל build באמצעות שורת הפקודה, ה-API או טריגרים.
כשמריצים את ה-build, Cloud Build יוצר את הקטגוריה החדשה באזור שבו מריצים את ה-build, ואז שומר את יומני ה-build בקטגוריה הזו. אם תבצעו עוד בנייה באותו פרויקט ובאותו אזור, המערכת תשתמש בדלי הקיים כל עוד
REGIONAL_USER_OWNED_BUCKETפעיל. הקטגוריה הזו בבעלות המשתמש, כך שאפשר להגדיר אותה כאילו היא קטגוריה שנוצרה על ידי משתמש.אם מגדירים את האפשרות
REGIONAL_USER_OWNED_BUCKETויוצרים גרסאות build בכמה אזורים, Cloud Build יוצר קטגוריה של Cloud Storage לכל אזור ייחודי.
אפשר גם להשתמש בקטגוריית אחסון שנוצרה על ידי משתמש אם צריך להתאים בין האזור של הבנייה לבין קטגוריית האחסון של היומנים. במקרה כזה, אפשר לבחור דלי קיים שנוצר על ידי משתמש שנמצא באותו אזור, או ליצור דלי חדש. אם רוצים ליצור קטגוריה, צריך לפעול לפי השלבים לשמירת יומני בנייה בקטגוריות שנוצרו על ידי משתמשים ולוודא שהאזור של הקטגוריה שנוצרה על ידי המשתמש זהה לאזור של הבנייה.
צפייה ביומני בנייה
כדי לראות את יומני הבנייה:
מתן הרשאות IAM:
כדי לקבל את ההרשאות שנדרשות לצפייה ביומני בנייה ב-Cloud Storage או ב-Logging, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בחשבון השירות שמשמש לבנייה:
-
הצגת יומני בנייה בקטגוריה של Cloud Storage שנוצרה על ידי משתמש או שנמצאת בבעלות משתמש:
- צפייה באובייקטים של אחסון (
roles/storage.objectViewer) – הגורמים הראשיים שרוצים לצפות ביומני בנייה - בעל הרשאת גישה לתצוגת יומנים (
roles/logging.viewAccessor) – הגורמים הראשיים שרוצים לצפות ביומני בנייה
- צפייה באובייקטים של אחסון (
-
צפייה ביומני build בקטגוריה של Cloud Storage שמוגדרת כברירת מחדל:
צפייה (
roles/viewer) – הפרויקט שבו מוגדר ה-build -
צפייה ביומני בנייה ביומן:
מציג היומנים (
roles/logging.viewer) – הגורמים העיקריים שרוצים לצפות ביומני בנייה
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
צפייה ביומני בנייה ב- Google Cloud
המסוף
פותחים את הדף Cloud Build במסוף Google Cloud .
בוחרים את הפרויקט ולוחצים על פתיחה.
בתפריט הנפתח אזור, בוחרים את האזור של הגרסה.
בדף Build history (היסטוריית בנייה), בוחרים בנייה מסוימת.
בדף Build details, בקטע Steps, לוחצים על Build summary כדי לראות את יומני ה-build של כל ה-build, או בוחרים שלב ב-build כדי לראות את יומני ה-build של השלב הזה.
אם יומני הבנייה מאוחסנים ב-Logging, בחלונית Build log לוחצים על הסמל כדי לראות את היומנים ב-Logs Explorer.
gcloud
מריצים את הפקודה gcloud builds log, כאשר build-id הוא המזהה של הגרסה שאותה רוצים לקבל ביומני הגרסה. מזהה ה-build מוצג בסוף תהליך שליחת ה-build כשמריצים את הפקודה gcloud builds submit, או בעמודה ID כשמריצים את הפקודה gcloud builds list.
gcloud builds log build-id
צפייה ביומני בנייה ב-GitHub וב-GitHub Enterprise
אם יוצרים טריגר של GitHub או GitHub Enterprise באמצעות ה-CLI של gcloud או Cloud Build API ומציינים את --include-logs-with-status כאפשרות, אפשר לראות את יומני הבנייה ב-GitHub וב-GitHub Enterprise.
כדי להציג את יומני ה-Build ב-GitHub וב-GitHub Enterprise, מבצעים את הפעולות הבאות:
עוברים אל המאגר שמשויך לטריגר.
עוברים לרשימת הקומיטים.
מאתרים את השורה של הקומיט שרוצים לראות את יומני הבנייה שלו.
לוחצים על סמל התוצאה בשורה של הקומיט.
תוצג רשימה של בדיקות שמשויכות לקומיט.
לוחצים על פרטים בשורה שרוצים לראות את יומני ה-build שלה.
יוצג הדף סיכום שמשויך לפעולת השמירה. אם יצרתם טריגר באמצעות הדגל
--include-logs-with-status, יומני הבנייה יוצגו בקטע Details בדף.
מחיקת יומני בנייה וקטגוריות
כדי לקבל את ההרשאות שדרושות למחיקת יומני בנייה וקטגוריות ב-Cloud Storage, אתם צריכים לבקש מהאדמין להקצות לחשבון השירות שמשמש לבנייה את תפקידי ה-IAM הבאים:
-
מחיקת יומני build בקטגוריה של Cloud Storage שנוצרה על ידי משתמש או בבעלות משתמש:
אדמין אחסון (
roles/storage.admin) – המשתמש או חשבון השירות שמוחקים את יומני ה-build -
מחיקת קטגוריה של Cloud Storage שנוצרה על ידי משתמש או בבעלות משתמש:
אדמין אחסון (
roles/storage.admin) – המשתמש או חשבון השירות שמוחק קטגוריות -
מחיקת דלי Logging שנוצר על ידי משתמש:
Logs Configuration Writer (
roles/logging.configWriter) – הפרויקט שלכם
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
כדי למחוק יומני בנייה בקטגוריה של Cloud Storage שנוצרה על ידי משתמש או שנמצאת בבעלות משתמש, צריך לפעול לפי ההוראות במאמר מחיקת אובייקטים במסמכי Cloud Storage.
כדי למחוק קטגוריה של Cloud Storage שנוצרה על ידי משתמש או שנמצאת בבעלות משתמש, צריך לפעול לפי ההוראות במאמר מחיקת קטגוריות במסמכי התיעוד של Cloud Storage.
כדי למחוק קטגוריית Logging שנוצרה על ידי משתמש, פועלים לפי ההוראות במאמר מחיקת קטגוריה במסמכי התיעוד של Logging.
המאמרים הבאים
- מידע על יומני ביקורת שנוצרו על ידי Cloud Build
- איך צופים בתוצאות של בניית האפליקציה
- מידע נוסף על הרשאות IAM ל-Cloud Build