כשמצב ה-build משתנה, למשל כשה-build נוצר, כשהוא עובר למצב עבודה וכשהוא מסתיים, Cloud Build מפרסם הודעות בנושא Google Pub/Sub. כל הודעה מכילה מחרוזת JSON בקידוד base64 שמייצגת את משאב ה-Build במאפיין message.data. המזהה הייחודי של ה-build והסטטוס שלו מופיעים בשדה message.attributes.
כברירת מחדל, ההודעות מתפרסמות בנושא cloud-builds. אפשר גם לציין שם נושא בהתאמה אישית בשדה options.pubsubTopic בקובץ תצורת ה-build. מידע נוסף על הגדרת שמות של נושאים בקובץ התצורה של ה-build זמין במאמר נושאי Pub/Sub להתראות build.
אפשר להשתמש במודל דחיפה או משיכה למינויים ב-Pub/Sub.
קבלת התראות על גרסאות build
כדי לקבל התראות על גרסאות build:
מפעילים את Cloud Build API:
ברוב המקרים, כשמפעילים את Cloud Build API, חשבון השירות Cloud Build Service Agent נוסף לפרויקט באופן אוטומטי. חשבון השירות מאפשר לכם לקבל התראות על גרסאות build מ-Pub/Sub.
חשבון השירות הוא בפורמט הבא, כאשר project-number הוא מספר הפרויקט:
service-project-number@gcp-sa-cloudbuild.אם חשבון השירות Cloud Build Service Agent לא מופיע בדף IAM, או אם אתם לא יכולים לקבל התראות מ-Pub/Sub, בצעו את השלבים הבאים כדי להוסיף את חשבון השירות Cloud Build Service Agent לפרויקט:
פותחים את הדף IAM במסוף Google Cloud :
לוחצים על הענקת גישה.
מוסיפים את חשבון המשתמש הבא, כאשר project-number הוא מספר הפרויקט:
service-project-number@gcp-sa-cloudbuild.בוחרים את התפקיד 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 להתראות על גרסאות build.
מינויי דחיפה
מינויי דחיפה מעבירים הודעות לנקודת קצה (endpoint) של HTTP שאתם מגדירים. ההודעות נשלחות ברגע שהן מתפרסמות בנושא.
הודעות שנשלחות ממינויי דחיפה נראות כך:
{
"message": {
"attributes": {
"buildId": "abcd-efgh...",
"status": "SUCCESS"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"messageId": "136969346945"
},
"subscription": "projects/myproject/subscriptions/mysubscription"
}
מינויי שליפה
מינויי משיכה מעבירים הודעות כשהאפליקציה המנויה מבצעת סקר. ההודעות נמסרות כשהמינוי נדגם.
הודעות שנשלחות ממינויי משיכה נראות כך:
{
"receivedMessages": [
{
"ackId": "dQNNHlAbEGEIBERNK0EPKVgUWQYyODM2LwgRHFEZDDsLRk1SK...",
"message": {
"attributes": {
"buildId": "abcd-efgh-...",
"status": "SUCCESS"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"messageId": "19917247034"
}
}
]
}
הרשמה לקבלת התראות על עדכוני גרסאות
יש כמה אפשרויות להירשם לקבלת התראות על עדכונים לגבי גרסאות build. לדוגמה, אתם יכולים לשלוח הודעות ב-push לנקודת קצה או לכתוב אפליקציית Python לדגימת המינוי.
במדריך למנויים של Pub/Sub מוסבר איך להגדיר מינויים ב-Pub/Sub לעדכוני build. אפשר גם לקרוא על ספריות הלקוח של Pub/Sub, שמאפשרות לפתח בקלות אפליקציות למנויים.
במאמר שירותי התראות של Cloud Build מוסבר איך משתמשים ב-Pub/Sub כדי לשלוח עדכונים על גרסאות build לאימייל או לשירותים כמו Slack.