הגדרת התראות Pub/Sub

אתם יכולים לקבל התראות על שינויים במאגרי Google Cloudבאמצעות Pub/Sub. ההתראות האלה מודיעות לכם כשמשתמש יוצר מאגר חדש, מוחק מאגר או דוחף שינוי למאגר קיים. אתם יכולים להגדיר התראות למאגרים ספציפיים או לכלGoogle Cloud הפרויקט.

מידע נוסף על Pub/Sub זמין במאמר מה זה Pub/Sub?

לפני שמתחילים

  • אם עדיין לא עשיתם זאת, יוצרים מאגר.
  • מוודאים שיש לכם את ההרשאות המתאימות ליצירת נושאים ומינויים. למידע נוסף על בקרת גישה
  • מוודאים שיש לכם חשבון שירות שיכול לפרסם בנושא. כברירת מחדל, Cloud Source Repositories משתמש בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine כדי לפרסם הודעות. מידע נוסף זמין במאמר התראות Pub/Sub ל-Cloud Source Repositories.

יוצרים נושא Pub/Sub

לכל פרויקט או מאגר ב-Cloud Source Repositories שרוצים לקבל לגביו התראות, צריך ליצור נושא Pub/Sub. אפשר ליצור נושא באמצעות מסוף Google Cloud או כלי שורת הפקודה gcloud.

כשיוצרים נושא, צריך להשתמש ב-URI מלא של המאגר. כתובת ה-URI המוסמכת היא:

projects/[PROJECT_ID]/topics/[TOPIC_NAME]

כאשר:

  • [PROJECT_ID] הוא מזהה הפרויקט. Google Cloud
  • [TOPIC_NAME] הוא שם הנושא.

כדי ליצור נושא, מבצעים את השלבים הבאים.

המסוף

  1. נכנסים לדף Topics של Pub/Sub במסוף Google Cloud .

    כניסה לדף Topics

  2. לוחצים על יצירת נושא.

  3. מזינים שם לנושא עם ה-URI:

    projects/[PROJECT_ID]/topics/[TOPIC_NAME]
    

    כאשר:

    • [PROJECT_ID] הוא מזהה הפרויקט. Google Cloud
    • [TOPIC_NAME] הוא שם הנושא.
  4. לוחצים על יצירה.

    ייפתח הדף פרטי הנושא.

gcloud

בחלון המסוף, מריצים את הפקודה הבאה:

gcloud pubsub topics create projects/[PROJECT_ID]/topics/[TOPIC_NAME]

כאשר:

  • [PROJECT_ID] הוא מזהה הפרויקט. Google Cloud
  • [TOPIC_NAME] הוא שם הנושא.

מידע נוסף על הפקודה gcloud pubsub topics זמין במסמכי התיעוד של topics.

יצירת מינוי ל-Pub/Sub

כדי לקבל אירועים שפורסמו בנושא, צריך ליצור מינוי ל-Pub/Sub.

אפליקציה רשומה מקבלת הודעות מהנושא של המאגר. מנויים יכולים להגיב לאירועים במאגר שלכם על ידי שליחת התראות או הפעלה של בנייה.

כדי ליצור מינוי, פועלים לפי השלבים הבאים.

המסוף

  1. נכנסים לדף Topics של Pub/Sub במסוף Google Cloud .

    כניסה לדף Topics

  2. לוחצים על שם הנושא של הפרויקט.

  3. לוחצים על יצירת מינוי.

    נפתח הדף הוספת מינוי לנושא.

  4. מזינים שם מינוי:

    projects/[PROJECT_ID]/subscriptions/[SUBSCRIPTION_NAME]
    

    כאשר:

    • [PROJECT_ID] הוא מזהה הפרויקט. Google Cloud
    • [SUBSCRIPTION_NAME] הוא השם של המינוי ל-Pub/Sub.
  5. משאירים את ההגדרה של סוג המסירה כמשיכה.

  6. לוחצים על יצירה.

gcloud

בחלון המסוף, מריצים את הפקודה הבאה:

gcloud pubsub subscriptions create [SUBSCRIPTION_NAME] --topic=[TOPIC_NAME]

כאשר:

  • [SUBSCRIPTION_NAME] הוא השם של המינוי ל-Pub/Sub.
  • [TOPIC_NAME] הוא שם הנושא.

מידע נוסף על הפקודה gcloud pubsub subscriptions זמין במסמכי התיעוד של subscriptions.

הוספת נושא

אפשר לשייך נושא Pub/Sub ל Google Cloudפרויקט או למאגר באמצעות Google Cloud CLI.

כדי לשייך נושא לפרויקט שלם, מזינים את הפקודה הבאה:

gcloud source project-configs update --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]

כאשר:

  • [TOPIC_NAME] הוא שם הנושא ב-Pub/Sub.
  • [SERVICE_ACCOUNT_NAME] הוא השם של חשבון השירות ב-Cloud Build.

כדי לשייך נושא למאגר ספציפי, מזינים את הפקודה הבאה:

gcloud source repos update [REPOSITORY_NAME] --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]

כאשר:

  • [REPOSITORY_NAME] הוא השם של מאגר Google Cloud .
  • [TOPIC_NAME] הוא שם הנושא ב-Pub/Sub.
  • [SERVICE_ACCOUNT_NAME] הוא השם של חשבון השירות ב-Cloud Build.

חשבון השירות צריך להיות באותו פרויקט כמו המאגר, וצריכה להיות לו הרשאה pubsub.topics.publish לפרסום הודעה בנושא שצוין. צריכה להיות לכם הרשאת iam.serviceAccounts.actAs בחשבון השירות. אם לא מציינים חשבון שירות, ברירת המחדל היא חשבון השירות של Compute Engine.

הסרת נושא

אפשר להסיר את השיוך בין פרויקט או מאגר לבין נושא Pub/Sub באמצעות Google Cloud CLI.

כדי להסיר נושא מפרויקט שלם, מזינים את הפקודה הבאה:

gcloud source project-configs update --remove-topic=[TOPIC_NAME]

כדי להסיר נושא ממאגר מסוים, מזינים את הפקודה הבאה:

gcloud source repos update [REPOSITORY_NAME] --remove-topic=[TOPIC_NAME]

הגדרת פורמט הנושא

ההתראות של Cloud Source Repositories יכולות להיות בפורמט JSON או בפורמט Protocol Buffers. כדי להגדיר את הפורמט של נושא, אפשר להשתמש בפרמטר --message-format כשמוסיפים את הנושא:

gcloud source project-configs update --add-topic=[TOPIC_NAME] --message-format=[json|protobuf]

אפשר גם להשתמש בפקודה set-format:

gcloud source project-configs update --update-topic=[TOPIC_NAME] --message-format=[json|protobuf]

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