Cloud Build notifiers

התראות של Cloud Build הן קובצי אימג' של Docker שאפשר להריץ כקונטיינרים ב-Cloud Run. כשמתבצעת בדיקה על ידי אפליקציית מנוי, כלי ההתראה של Cloud Build משתמשים במינויים מסוג Push כדי להעביר הודעות לשירות מוגדר, כמו Slack או שרת SMTP.

בדף הזה מופיעה סקירה כללית על Cloud Build Notifiers.

Cloud Build notifiers

‫Cloud Build שולח את כל העדכונים של אירועי הבנייה, יחד עם מטא-נתונים של הבנייה, ל-Pub/Sub בנושא cloud-builds או בנושא שהוגדר על ידי המשתמש. אפשר להגדיר את כלי ההתראה של Cloud Build להאזנה לנושא הזה, לסנן את ההודעות שהוא מקבל ולשלוח הודעות לשירות שלכם דרך Cloud Run.

כל כלי ההתראה משתמשים במפרט YAML משותף להגדרה, שמאוחסן ב-Cloud Storage. אם השירות שבחרתם דורש אימות, פרטי הכניסה שלו מאוחסנים ב-Secret Manager. ‫Cloud Run מנתב את ההודעה ושולח את ההתראות לשירות שלכם.

בתרשים הבא מוצגות האינטראקציות של Cloud Build עם מוצרים אחרים, כמו Pub/Sub ו-Cloud Run, לצורך שליחת התראות: Google Cloud

תרשים של Cloud Build Notifiers

נושאים ב-Pub/Sub לקבלת התראות על גרסאות build

כברירת מחדל, Cloud Build שולח התראות על בנייה לנושא Pub/Sub בשם cloud-builds, אם הוא קיים. אפשר גם ליצור נושא Pub/Sub בהתאמה אישית כדי לקבל התראות על בנייה. בקובץ תצורת ה-build, השדה options.pubsubTopic מגדיר את שם הנושא שאליו Cloud Build שולח התראות:

  • אם לא מציינים ערך ל-options.pubsubTopic, Cloud Build משתמש בערך ברירת המחדל cloud-builds כשם הנושא של ה-build מהקובץ הזה. לכן, אם יוצרים נושא cloud-builds ולא מגדירים את options.pubsubTopic בכל קובצי ההגדרות של ה-build, הנושא הזה יקבל את כל ההתראות על ה-build.

  • אם מציינים שם נושא בהתאמה אישית ב-options.pubsubTopic, ‏ Cloud Build שולח התראות לגבי קובץ ההגדרות של ה-build לנושא הזה. שמות נושאים מותאמים אישית שימושיים כשלא רוצים שכל ההתראות על בנייה יפורסמו באותו נושא.

    כשמשתמשים בשם נושא בהתאמה אישית בקובץ הגדרות build, צריך גם להקצות את התפקיד roles/pubsub.publisher לכל חשבון שירות שהוא לא חשבון השירות שמוגדר כברירת מחדל ב-Cloud Build.

פרסום התראות על בנייה בנושאי Pub/Sub בפרויקטים שונים

כדי לפרסם התראות על בנייה בנושא Pub/Sub בפרויקט אחר שבו בוצעה הבנייה, צריך להקצות את התפקיד roles/pubsub.publisher לחשבון השירות בפרויקט היעד.

לדוגמה, יש לכם את פרויקט א' ואת פרויקט ב'. אתם מפעילים גרסת build בפרויקט א באמצעות חשבון שירות א, ואתם רוצים לפרסם התראות על גרסת ה-build בנושא Pub/Sub בפרויקט ב. כדי לעשות זאת, אפשר להקצות לחשבון שירות א את התפקיד roles/pubsub.publisher בפרויקט ב באמצעות הפקודה הבאה:

  gcloud projects add-iam-policy-binding ProjectB --member 'serviceAccount:ServiceAccountA' --role 'roles/pubsub.publisher'

אפשר להשתמש בהגדרת build כמו זו שבהמשך, שמאפשרת להריץ build בפרויקט א' ולפרסם התראות על ה-build בפרויקט ב':

  steps:
    - name: ubuntu
      args:
        - pwd
  serviceAccount: projects/ProjectA/serviceAccounts/ServiceAccountA
  options:
    pubsubTopic: projects/ProjectB/topics/CustomTopic
    logging: desired-logging-option

התראות נתמכות שסופקו על ידי Cloud Build

‫Cloud Build מספקת ומתחזקת קובצי אימג' של כלי התראה שאפשר לפרוס במאגר cloud-build-notifiers. בטבלה הבאה מפורטים סוגי ההתראות הזמינים:

Notifier תיאור
bigquery כותב נתוני בנייה לטבלה ב-BigQuery
githubissues משתמש ב-webhook של GitHub כדי ליצור בעיות במאגר GitHub
googlechat משתמש ב-webhook של Google Chat כדי לפרסם הודעות במרחב ב-Google Chat
http שולחת מטען ייעודי (payload) של JSON לנקודת קצה אחרת של HTTP
slack משתמש ב-Slack webhook כדי לפרסם הודעות בערוץ Slack
smtp שולח אימיילים דרך שרת SMTP

מידע נוסף על אופן ההגדרה של כל כלי להודעות זמין בדף המתאים לכל שירות:

הגדרת אוטומציה של התראות

‫Cloud Build מספק סקריפט הגדרה שאפשר להשתמש בו כדי להגדיר אוטומטית התראות עבור התראות נתמכות ב-Cloud Build.

כדי ללמוד איך להגדיר התראות עבור התראות נתמכות של Cloud Build, אפשר לעיין במאמר אוטומציה של הגדרת התראות.

יצירת כלי משלכם לשליחת התראות

בנוסף למנגנוני התראה שמתוחזקים על ידי Cloud Build, כמו Slack או SMTP, אתם יכולים להשתמש בספרייה שמופיעה במאגר cloud-build-notifiers כדי ליצור מנגנון התראה משלכם.

במאמר יצירת כלי משלכם לשליחת התראות מוסבר איך ליצור כלי משלכם לשליחת התראות.

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