אפשרויות אחסון של יומני בנייה

כשמריצים גרסאות build, ‏Cloud Build אוסף את יומני ה-build ומאחסן אותם בקטגוריית יומנים. בהתאם להגדרות של קובץ תצורת ה-build, יומני ה-build מאוחסנים בקטגוריות של Cloud Logging, בקטגוריות של Cloud Storage או בשני המיקומים. אתם יכולים גם להגדיר את סוג הקטגוריה של Logging או של Cloud Storage שמכילה את היומנים. המיקום והסוג של הקטגוריה משפיעים על היכולת לנתח את יומני ה-build ועל מידת השליטה בהגדרות הקטגוריה.

סקירה כללית

כשמגדירים את קובץ תצורת ה-build, חשוב לזכור את הנקודות הבאות:

  • אם אתם רוצים לשלוט בתקופת השמירה של יומני ה-build שמאוחסנים, אתם יכולים לשלוח אותם ל-Logging. בנוסף, במציג היומנים ב-Logging יש יותר אפשרויות לחיפוש יומני build ספציפיים בקטגוריה בהשוואה ל-Cloud Storage. עם זאת, כשמשתמשים ב-Logging, יכול להיות עיכוב בין הזמן שבו נוצר יומן ה-build לבין הזמן שבו הוא מתקבל ב-Logging.

  • כדי לצמצם את זמן האחזור בין יצירת יומן ה-build לבין הזמינות שלו ב-Cloud Storage, שלחו את יומני ה-build לקטגוריה ב-Cloud Storage.

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

מיקומי קטגוריות

מגדירים את השדה logging בקובץ תצורת ה-build כדי לקבוע לאן יישלחו יומני ה-build:

  • ‫GCS_ONLY: יומני ה-build נשלחים לקטגוריות של Cloud Storage.
  • ‫CLOUD_LOGGING_ONLY: יומני ה-build נשלחים לקטגוריות של Logging.
  • ‫LEGACY: יומני ה-build נשלחים לקטגוריות בשני המיקומים. אם לא מגדירים את logging, Cloud Build משתמש בערך הזה.
  • ‫NONE: יומני ה-build לא נשמרים.

אם אתם שולחים את יומני ה-build ל-Logging, תוכלו לקרוא על האפשרויות של קטגוריות ב-Logging במאמר הגדרת הניתוב של Cloud Logging. אם אתם שולחים את יומני ה-build ל-Cloud Storage, בקטע הבא מוסבר על הקטגוריות הזמינות של Cloud Storage. בקטע שיקולים לגבי בעלות על קטגוריות מתוארים היתרונות והשיקולים לגבי קטגוריות על סמך הבעלות על הקטגוריה, בלי קשר למיקום שלה.

אפשרויות לקטגוריות ב-Cloud Storage

אם יומני ה-build נשלחים ל-Cloud Storage, אז Cloud Build מעריך את השדות logsBucket ו-defaultLogsBucketBehavior בקובץ התצורה של ה-build כדי לקבוע את סוג הקטגוריה של Cloud Storage שמקבלת את יומני ה-build.

השדה logsBucket יכול להכיל כל סוג של קטגוריה. אם logsBucket מוגדר, היומנים תמיד נשלחים לקטגוריה הזו ב-Cloud Storage, בלי קשר לערך של defaultLogsBucketBehavior. אם המדיניות logsBucket לא מוגדרת, המערכת משתמשת בערך של המדיניות defaultLogsBucketBehavior באופן הבא:

  • ‫REGIONAL_USER_OWNED_BUCKET: יומני ה-build נשלחים לקטגוריה ב-Cloud Storage שנוצרה על ידי Cloud Build ונמצאת בבעלות המשתמש. הקטגוריה הזו נמצאת בפרויקט של המשתמש ומשתמשת באותו אזור כמו ה-build.
  • ‫LEGACY_BUCKET: יומני ה-build נשלחים לקטגוריה שנוצרה על ידי Cloud Build ובבעלות Google Cloud, בפרויקט שבבעלות Google Cloud.
  • ללא ערך: יומני ה-build נשלחים לקטגוריה שנוצרה על ידי Cloud Build ונמצאת בבעלות המשתמש ב-Cloud Storage. הקטגוריה הזו נמצאת בפרויקט של המשתמש, באותו אזור שבו נמצא ה-build. אם יצירת הקטגוריה נכשלת, יומני ה-build נשלחים לקטגוריה שנוצרה על ידי Cloud Build ובבעלות שלGoogle Cloud, בפרויקט שבבעלות של Google Cloud.

אחסון יומנים כשיוצרים מקובצי Docker

כדי להגדיר אחסון של יומני build כשמבצעים build מקובץ Docker, צריך לכלול את אחד מערכי הדגל של default-buckets-behavior כשמריצים את gcloud builds submit:

  • ‫regional-user-owned-bucket: יומני ה-build נשלחים לקטגוריה ב-Cloud Storage שנוצרה על ידי Cloud Build ונמצאת בבעלות המשתמש. הקטגוריה הזו נמצאת בפרויקט של המשתמש ומשתמשת באותו אזור כמו ה-build.
  • ‫legacy-bucket: יומני ה-build נשלחים לקטגוריה שנוצרה על ידי Cloud Build ובבעלות Google Cloud, בפרויקט שבבעלות Google Cloud. הערך הזה זהה להשארת השדה הזה לא מוגדר.

שיקולים לגבי בעלות על קטגוריות

לא משנה אם אתם משתמשים ב-Cloud Storage או ב-Logging, אנחנו ממליצים לשלוח את יומני ה-build לקטגוריה שבבעלות המשתמש. הקטגוריה יכולה להיות קטגוריה שנוצרה על ידי משתמש (לדוגמה, אם הגדרתם את logsBucket לקטגוריה שיצרתם), או קטגוריה שנוצרה על ידי Cloud Build אבל נמצאת בבעלות המשתמש (לדוגמה, אם קבעתם הגדרות לקטגוריה אזורית בבעלות המשתמש). כך תוכלו לערוך מאפיינים מסוימים של הקטגוריה ולצפות ביומנים בקטגוריה בכל שלב. מכיוון שהקטגוריות שבבעלות Google Cloudנמצאות בפרויקטים שבבעלותGoogle Cloud, אי אפשר לראות או לערוך את הקטגוריות האלה, ואפשר לראות את יומני ה-build שלהן רק בקטע Build log בדף Build details.

באופן כללי, קטגוריות שנוצרו על ידי משתמשים מספקות את הגמישות הגבוהה ביותר מבחינת קביעת ההגדרות של הקטגוריה, גם במהלך היצירה שלה וגם אחריה. עם זאת, במקרה כזה, תמיד צריך לוודא שהקטגוריה שנוצרה על ידי המשתמש תואמת לצרכים של ה-build. במקרים מסוימים, כמו ניהול אזורים של קטגוריות, שימוש בקטגוריה שנוצרה על ידי Cloud Build ונמצאת בבעלות המשתמש מאפשר לשלוח יומני build לקטגוריה שזמינה ב-Cloud Storage כברירת מחדל, ותמיד באותו אזור של ה-build. בקטע הבא מוסבר בהרחבה על תרחיש השימוש הזה:

שיקולים לגבי אזורי קטגוריות

מומלץ להגדיר את קטגוריית ה-build כך שתתאים לאזור של ה-build, כי ההגדרה הזו יכולה לעזור לכם לעמוד בדרישות של מיקום אחסון הנתונים. אם אתם רוצים להתאים את האזורים בצורה כזאת, כדאי להביא בחשבון את הנקודות הבאות:

  • קטגוריות שנוצרו על ידי משתמשים ב-Logging וב-Cloud Storage משתמשות באזור שהוגדר במהלך יצירת הקטגוריה. אם הגדרתם קטגוריה שנוצרה על ידי משתמש בתור הערך של logging ב-build, ודאו שהאזור שלה תואם לאזור של ה-build.

  • אם הגדרתם את יומן ה-build כך שישתמש בקטגוריות אזוריות בבעלות המשתמש ב-Cloud Storage, יומני ה-build תמיד יישלחו לקטגוריה באותו אזור של ה-build.

  • הקטגוריות שבבעלותGoogle Cloudמוגדרות לאזור שמוגדר על ידי Google Cloud. לכן, יכול להיות שהאזור הזה לא תמיד יהיה זהה לאזור של ה-build.

הוספת defaultLogsBucketBehavior לקובצי תצורת build קיימים

אם אתם מוסיפים את האפשרות defaultLogsBucketBehavior לקובץ תצורת build קיים שבו הגדרתם בעבר את logging או את logsBucket, מומלץ לבדוק את כל הגדרות אחסון היומנים כדי לוודא שהיומנים מאוחסנים כמו שצריך. ‫Cloud Build מתעלם מ-defaultLogsBucketBehavior אם מתקיים אחד מהתנאים הבאים:

  • ‫logging מוגדר כ-CLOUD_LOGGING_ONLY או כ-NONE.
  • ‫logging מוגדר כ-GCS_ONLY או כ-LEGACY, ו-logsBucket מוגדר.

אם מריצים build בלי להגדיר שדות לאחסון יומנים בקובץ התצורה של ה-build, ‏Cloud Build מגדיר את logging כ-LEGACY.

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