התראות של 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
נושאים ב-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 |
מידע נוסף על אופן ההגדרה של כל כלי להודעות זמין בדף המתאים לכל שירות:
- הגדרת התראות ב-BigQuery
- הגדרת ההתראות של GitHub Issues
- הגדרת ההתראות בקשר לצ'אטים של Google Chat
- הגדרת התראות HTTP
- הגדרת ההתראות ב-Slack
- הגדרת התראות SMTP
הגדרת אוטומציה של התראות
Cloud Build מספק סקריפט הגדרה שאפשר להשתמש בו כדי להגדיר אוטומטית התראות עבור התראות נתמכות ב-Cloud Build.
כדי ללמוד איך להגדיר התראות עבור התראות נתמכות של Cloud Build, אפשר לעיין במאמר אוטומציה של הגדרת התראות.
יצירת כלי משלכם לשליחת התראות
בנוסף למנגנוני התראה שמתוחזקים על ידי Cloud Build, כמו Slack או SMTP, אתם יכולים להשתמש בספרייה שמופיעה במאגר cloud-build-notifiers כדי ליצור מנגנון התראה משלכם.
במאמר יצירת כלי משלכם לשליחת התראות מוסבר איך ליצור כלי משלכם לשליחת התראות.
המאמרים הבאים
- במאמרים הבאים מוסבר איך להגדיר התראות ב-BigQuery, ב-GitHub Issue, ב-Google Chat, ב-HTTP, ב-Slack או ב-SMTP.
- איך מגדירים אוטומציה של ההגדרות של התראות
- כך יוצרים כלי משלכם לשליחת התראות.