Cloud Build מפרסם הודעות בנושא Google Pub/Sub כשמצב הבנייה משתנה, למשל כשהבנייה נוצרת, כשהיא עוברת למצב פעיל וכשהיא מסתיימת. כל הודעה מכילה ייצוג מחרוזת JSON בקידוד base64 של משאב ה-Build במאפיין message.data. המזהה הייחודי של הגרסה ואת הסטטוס שלה אפשר למצוא בשדה message.attributes.
כברירת מחדל, ההודעות מתפרסמות בנושא cloud-builds. אפשר גם לציין שם נושא מותאם אישית בשדה options.pubsubTopic בקובץ ההגדרות של ה-build. מידע נוסף על הגדרת שמות של נושאים בקובץ ההגדרות של ה-build זמין במאמר נושאים ב-Pub/Sub להתראות על build.
אתם יכולים להשתמש במודל push או pull למינויים שלכם ל-Pub/Sub.
קבלת התראות על גרסאות build
כדי לקבל התראות על גרסאות build:
מפעילים את Cloud Build API:
כשמפעילים את Cloud Build API, חשבון השירות Cloud Build Service Agent מתווסף אוטומטית לפרויקט. חשבון השירות מאפשר לכם לקבל התראות על בנייה מ-Pub/Sub.
חשבון השירות הוא בפורמט הבא, כאשר project-number הוא מספר הפרויקט:
service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.comאם חשבון השירות Cloud Build Service Agent לא מופיע בדף IAM, או אם אתם לא מקבלים התראות מ-Pub/Sub, אתם צריכים להוסיף את חשבון השירות Cloud Build Service Agent לפרויקט שלכם. כדי לעשות זאת, פועלים לפי השלבים הבאים:
פותחים את הדף IAM במסוף Google Cloud :
לוחצים על הענקת גישה.
מוסיפים את הגורם הראשי הבא, כאשר project-number הוא מספר הפרויקט:
service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.comבוחרים באפשרות Service Agents > Cloud Build Service Agent בתור התפקיד.
לוחצים על Save.
מפעילים את Pub/Sub API:
יוצרים את הנושא
cloud-builds:gcloud pubsub topics create cloud-buildsאפשר גם להגדיר שם נושא מותאם אישית בקובץ תצורת ה-build כדי שההודעות יישלחו לנושא המותאם אישית במקום זאת. במקרה כזה, יוצרים נושא עם אותו שם נושא מותאם אישית:
gcloud pubsub topics create topic-nameמידע נוסף זמין במאמר בנושא נושאי Pub/Sub להתראות על בנייה.
מידע נוסף על ניהול נושאים ב-Pub/Sub זמין במאמר ניהול נושאים ומינויים.
הרשמות ל-Push
מינויים לשליחת הודעות בדחיפה מאפשרים לשלוח הודעות לנקודת קצה של HTTP שאתם מגדירים. ההודעות נשלחות ברגע שהן מתפרסמות בנושא.
הודעות שנשלחות ממינויים לדיוור ישיר נראות כך:
{
"message": {
"attributes": {
"buildId": "abcd-efgh...",
"status": "SUCCESS"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"messageId": "136969346945"
},
"subscription": "projects/myproject/subscriptions/mysubscription"
}
הרשמות לשליפה
מינויים מסוג pull מעבירים הודעות כשמתבצעת שאילתה על האפליקציה שאליה נרשמתם. ההודעות מועברות כשמתבצעת בדיקה של המינוי.
הודעות שנשלחות ממינויים מסוג pull נראות כך:
{
"receivedMessages": [
{
"ackId": "dQNNHlAbEGEIBERNK0EPKVgUWQYyODM2LwgRHFEZDDsLRk1SK...",
"message": {
"attributes": {
"buildId": "abcd-efgh-...",
"status": "SUCCESS"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"messageId": "19917247034"
}
}
]
}
הרשמה לקבלת התראות על עדכוני גרסה
יש כמה דרכים להירשם לקבלת עדכונים על גרסאות Build. לדוגמה, אתם יכולים לדחוף הודעות לנקודת קצה או לכתוב אפליקציית Python כדי לבצע סקר לגבי המינוי שלכם.
כדי ללמוד איך להגדיר מינויים ל-Pub/Sub לקבלת עדכונים לגבי בנייה, אפשר לקרוא את המדריך למנויים ב-Pub/Sub. אפשר גם לקרוא על ספריות הלקוח של Pub/Sub, שמקלות על פיתוח אפליקציות של מנויים.
כדי ללמוד איך להשתמש ב-Pub/Sub כדי לשלוח עדכונים לגבי בנייה לאימייל או לשירותים כמו Slack, אפשר לעיין במאמר בנושא Cloud Build notifiers.