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

אתם יכולים להגדיר את Cloud Build כך שישלח לכם התראות על בנייה ל-Slack, ל-Google Chat, לשרת SMTP, לנקודת קצה (endpoint) ב-HTTP או למופע BigQuery באמצעות Cloud Build notifiers. בדף הזה מוסבר איך אפשר להפוך את תהליך ההגדרה של כלי ההתראה הרצוי לאוטומטי.

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

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

Slack

מתבצעת ההגדרה של

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

הפעלת ממשקי API

מפעילים את ממשקי ה-API של Cloud Build,‏ Compute Engine,‏ Cloud Run,‏ Pub/Sub ו-Secret Manager.

תפקידים שנדרשים להפעלת ממשקי API

כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

הפעלת ממשקי ה-API

קבלת פרטי כניסה ואחסון שלהם

  1. יוצרים אפליקציית Slack עבור סביבת העבודה ב-Slack שאליה רוצים לשלוח התראות.

  2. מפעילים webhooks נכנסים כדי לפרסם הודעות מ-Cloud Build ב-Slack.

  3. עוברים לאפליקציית Slack כדי למצוא את כתובת ה-URL של ה-webhook הנכנס. כתובת ה-URL תיראה בערך כך:

    http://hooks.slack.com/services/...
    
  4. מאחסנים את כתובת ה-URL של ה-webhook הנכנס ב-Secret Manager:

    1. פותחים את הדף Secret Manager במסוף Google Cloud :

      פתיחת הדף Secret Manager

    2. לוחצים על Create secret (יצירת סוד).

    3. מזינים שם לסוד.

    4. בקטע Secret value (ערך סודי), מוסיפים את ה-Webhook URL הנכנס של אפליקציית Slack.

    5. כדי לשמור את הסוד, לוחצים על Create secret (יצירת סוד).

כתיבת קובץ תצורה של כלי לשליחת התראות

כותבים קובץ תצורה של התראות כדי להגדיר את ההתראות ב-Slack ולסנן אירועים של בנייה:

בדוגמה הבאה של קובץ הגדרות של כלי להודעות, השדה filter משתמש בCommon Expression Language עם המשתנה הזמין build כדי לסנן אירועי build עם סטטוס SUCCESS:

  apiVersion: cloud-build-notifiers/v1
  kind: SlackNotifier
  metadata:
    name: example-slack-notifier
  spec:
    notification:
      filter: build.status == Build.Status.SUCCESS
      delivery:
        webhookUrl:
          secretRef: webhook-url
      template:
        type: golang
        uri: gs://example-gcs-bucket/slack.json
    secrets:
    - name: webhook-url
      value: projects/project-id/secrets/secret-name/versions/latest

כאשר:

  • webhook-url הוא משתנה ההגדרה שמשמש בדוגמה הזו כדי להפנות לנתיב של webhook URL של Slack שמאוחסן ב-Secret Manager. שם המשתנה שמציינים כאן צריך להיות זהה לשם בשדה name בקטע secrets.
  • project-id הוא מזהה הפרויקט. Google Cloud
  • secret-name הוא השם של הסוד שמכיל את כתובת ה-webhook שלכם ב-Slack.
  • השדה uri מפנה לקובץ slack.json. הקובץ הזה מכיל תבנית JSON שמתארחת ב-Cloud Storage ומייצגת את הודעת ההתראה שלכם במרחב Slack.

כדי לראות את הדוגמה, אפשר לעיין בקובץ ההגדרות של כלי ההתראות ב-Slack.

הרצת סקריפט של אוטומציה

כדי להגדיר אוטומטית את ההתראות של הכלי לשליחת התראות:

  1. משכפלים את מאגר cloud-build-notifiers.

  2. מגדירים את Google Cloud CLI עם מזהה הפרויקט והאזור:

    gcloud config set project project-id
    gcloud config set run/region region
    

    כאשר:

    • project-id הוא מזהה הפרויקט. Google Cloud
    • region הוא האזור שבו רוצים לפרוס את כלי ההתראות.
  3. מריצים את הפקודה הבאה בתיקיית הבסיס של המאגר:

    ./setup.sh slack config-path -t template-path -s secret-name

כאשר:

  • config-path הוא הנתיב לקובץ התצורה של ההתראות.
  • template-path הוא הנתיב לקובץ התבנית של ההתראות. קובץ התבנית של ההתראות מכיל את תבנית ה-JSON שמתארחת ב-Cloud Storage ומייצגת את הודעת ההתראה. אפשר לכלול את קובץ התבנית של ההתראות כנתיב באמצעות המשתנה הזה או בשדה uri של קובץ ההגדרות של ההתראות.
  • secret-name הוא השם של הסוד שמאוחסן ב-Secret Manager.

אחרי שמריצים את הסקריפט, מוצגת ההודעה הבאה:

** NOTIFIER SETUP COMPLETE **

ההתראה הוגדרה. אפשר לראות את הסקריפט המלא במאגר cloud-build-notifiers או להריץ את הפקודה ./setup.sh --help כדי לקבל הוראות לשימוש בסקריפט.

SMTP

מתבצעת ההגדרה של

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

הפעלת ממשקי API

מפעילים את ממשקי ה-API של Cloud Build,‏ Compute Engine,‏ Cloud Run,‏ Pub/Sub ו-Secret Manager.

תפקידים שנדרשים להפעלת ממשקי API

כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

הפעלת ממשקי ה-API

אחסון פרטי כניסה

  1. מאחסנים את הסיסמה של חשבון האימייל של השולח ב-Secret Manager:

  2. פותחים את הדף Secret Manager במסוף Google Cloud :

    פתיחת הדף Secret Manager

  3. לוחצים על Create secret (יצירת סוד).

  4. מזינים שם לסוד.

  5. בקטע ערך סודי, מוסיפים את הסיסמה של חשבון האימייל של השולח.

  6. כדי לשמור את הסוד, לוחצים על Create secret (יצירת סוד).

כתיבת קובץ תצורה של כלי לשליחת התראות

כותבים קובץ הגדרות של התראות כדי להגדיר את ההתראות ב-SMTP ולסנן אירועים של בנייה:

בדוגמה הבאה של קובץ הגדרות של כלי להודעות, השדה filter משתמש בCommon Expression Language עם המשתנה הזמין build כדי לסנן אירועי build עם סטטוס SUCCESS:

 apiVersion: cloud-build-notifiers/v1
 kind: SMTPNotifier
 metadata:
   name: example-smtp-notifier
 spec:
   notification:
     filter: build.status == Build.Status.SUCCESS
     delivery:
       server: server-host-name
       port: "port"
       sender: sender-email
       from: from-email
       recipients:
         - recipient-email
         # optional: more emails here
       password:
         secretRef: smtp-password
      template:
        type: golang
        uri: gs:example-gcs-bucket/smtp.html
   secrets:
   - name: smtp-password
     value: projects/project-id/secrets/secret-name/versions/latest

כאשר:

  • server-host-name היא הכתובת של שרת ה-SMTP.
  • port היא היציאה שתטפל בבקשות SMTP. הערך הזה צריך להיות מחרוזת.
  • sender-email היא כתובת האימייל של חשבון השולח שמוצגת ל-server-host-name שצוין.
  • from-email היא כתובת האימייל שהנמענים רואים.
  • recipient-email היא רשימה של כתובת אימייל אחת או יותר לקבלת הודעות מהשולח.
  • smtp-password הוא משתנה ההגדרה שמשמש בדוגמה הזו כדי להפנות לסיסמה של חשבון האימייל של השולח שמאוחסנת ב-Secret Manager. שם המשתנה שמציינים כאן צריך להיות זהה לערך בשדה name בקטע secrets.
  • project-id הוא מזהה הפרויקט. Google Cloud
  • secret-name הוא שם הסוד שמכיל את הסיסמה של חשבון האימייל של השולח.
  • השדה uri מפנה לקובץ smtp.html. הקובץ הזה מתייחס לתבנית HTML שמארחת ב-Cloud Storage ומייצגת את האימייל של ההתראה.

כדי לראות את הדוגמה, אפשר לעיין בקובץ ההגדרות של כלי ההתראות עבור כלי ההתראות של SMTP.

הרצת סקריפט של אוטומציה

כדי להגדיר אוטומטית את ההתראות של הכלי לשליחת התראות:

  1. משכפלים את מאגר cloud-build-notifiers.

  2. מגדירים את Google Cloud CLI עם מזהה הפרויקט והאזור:

    gcloud config set project project-id
    gcloud config set run/region region
    

    כאשר:

    • project-id הוא מזהה הפרויקט. Google Cloud
    • region הוא האזור שבו רוצים לפרוס את כלי ההתראות.
  3. מריצים את הפקודה הבאה בתיקיית הבסיס של המאגר:

    ./setup.sh smtp config-path -t template-path -s secret-name

כאשר:

  • config-path הוא הנתיב לקובץ התצורה של ההתראות.
  • template-path הוא הנתיב לקובץ התבנית של ההתראות. קובץ התבנית של ההתראות מכיל את תבנית ה-JSON שמתארחת ב-Cloud Storage ומייצגת את הודעת ההתראה. אפשר לכלול את קובץ התבנית של ההתראות כנתיב באמצעות המשתנה הזה או בשדה uri של קובץ ההגדרות של ההתראות.
  • secret-name הוא השם של הסוד שמאוחסן ב-Secret Manager.

אחרי שמריצים את הסקריפט, מוצגת ההודעה הבאה:

** NOTIFIER SETUP COMPLETE **

ההתראה הוגדרה. אפשר לראות את הסקריפט המלא במאגר cloud-build-notifiers או להריץ את הפקודה ./setup.sh --help כדי לקבל הוראות שימוש שקשורות לסקריפט.

BigQuery

מתבצעת ההגדרה של

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

הפעלת ממשקי API

מפעילים את Cloud Build API,‏ Cloud Run API,‏ Pub/Sub API ו-BigQuery API.

תפקידים שנדרשים להפעלת ממשקי API

כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

הפעלת ממשקי ה-API

מתן הרשאות

נותנים לחשבון השירות ב-Cloud Run הרשאה ליצור ולכתוב טבלאות ב-BigQuery והרשאה לאחזר נתונים מ-Artifact Registry שקשורים לבנייה:

  1. נכנסים לדף IAM במסוף Google Cloud :

    פתיחת הדף IAM

  2. מאתרים את חשבון השירות של Compute Engine שמוגדר כברירת מחדל שמשויך לפרויקט:

    חשבון השירות של Compute Engine שמוגדר כברירת מחדל ייראה בערך כך, כאשר project-number הוא מספר הפרויקט:

        project-number-compute@developer.gserviceaccount.com
    
  3. לוחצים על סמל העיפרון בשורה שמכילה את חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.

    תוצג הכרטיסייה גישת עריכה.

    1. לוחצים על הוספת תפקיד נוסף.

    2. מוסיפים את התפקידים הבאים:

      • קורא של Artifact Registry
      • עריכה של נתוני BigQuery

        התפקיד Artifact Registry Reader מאפשר לכם לאחזר נתונים של התמונות. עורך הנתונים של BigQuery מאפשר לכם לקרוא ולכתוב את הנתונים.

    3. לוחצים על Save.

כתיבת קובץ תצורה של כלי לשליחת התראות

כותבים קובץ תצורה של כלי ההתראות כדי להגדיר את כלי ההתראות של BigQuery ולסנן אירועי בנייה:

בדוגמה הבאה של קובץ תצורה של כלי להודעות, השדה filter משתמש בCommon Expression Language עם המשתנה build כדי לסנן אירועי build עם מזהה טריגר ספציפי:

 apiVersion: cloud-build-notifiers/v1
 kind: BigQueryNotifier
 metadata:
   name: example-bigquery-notifier
 spec:
   notification:
     filter: build.build_trigger_id == "123e4567-e89b-12d3-a456-426614174000"
     delivery:
       table: projects/project-id/datasets/dataset-name/tables/table-name
     template:
       type: golang
       uri: gs://example-gcs-bucket/bq.json

כאשר:

  • project-id הוא מזהה הפרויקט. Google Cloud
  • dataset-name הוא השם שרוצים לתת למערך הנתונים.
  • table-name הוא השם שרוצים לתת לטבלה.

הערך table-name בקובץ ההגדרות של כלי ההתראה יכול להתייחס אל:

  • טבלה שלא קיימת
  • טבלה ריקה ללא סכימה
  • טבלה קיימת עם סכימה שתואמת למפרטי הסכימה בכלי להודעות ב-BigQuery

  • השדה uri מפנה לקובץ bq.json. הקובץ הזה מפנה לתבנית JSON שמתארחת ב-Cloud Storage ומייצג את המידע שצריך להוסיף לטבלה ב-BigQuery.

כדי לראות את הדוגמה, אפשר לעיין בקובץ ההגדרות של כלי ההתראה של BigQuery.

הרצת סקריפט של אוטומציה

כדי להגדיר אוטומטית את ההתראות של הכלי לשליחת התראות:

  1. משכפלים את מאגר cloud-build-notifiers.

  2. מגדירים את Google Cloud CLI עם מזהה הפרויקט והאזור:

    gcloud config set project project-id
    gcloud config set run/region region
    

    כאשר:

    • project-id הוא מזהה הפרויקט. Google Cloud
    • region הוא האזור שבו רוצים לפרוס את כלי ההתראות.
  3. מריצים את הפקודה הבאה בתיקיית הבסיס של המאגר:

     ./setup.sh bigquery -t config-path -t template-path
    

    כאשר:

    • config-path הוא הנתיב לקובץ התצורה של ההתראות.
    • template-path הוא הנתיב לקובץ התבנית של ההתראות. קובץ התבנית של ההתראות מכיל את תבנית ה-JSON שמתארחת ב-Cloud Storage ומייצגת את הודעת ההתראה. אפשר לכלול את קובץ התבנית של ההתראות כנתיב באמצעות המשתנה הזה או בשדה uri של קובץ ההגדרות של ההתראות.

    אחרי שמריצים את הסקריפט, מוצגת ההודעה הבאה:

    ** NOTIFIER SETUP COMPLETE **
    

    ההתראה הוגדרה. אפשר לראות את הסקריפט המלא במאגר cloud-build-notifiers או להריץ את הפקודה ./setup.sh --help כדי לקבל הוראות שימוש שקשורות לסקריפט.

HTTP

מתבצעת ההגדרה של

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

הפעלת ממשקי API

מפעילים את Cloud Build,‏ Cloud Run ו-Pub/Sub APIs.

תפקידים שנדרשים להפעלת ממשקי API

כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

הפעלת ממשקי ה-API

כתיבת קובץ תצורה של כלי לשליחת התראות

כותבים קובץ הגדרות של כלי להודעות כדי להגדיר את הכלי להודעות HTTP ולסנן אירועים של בנייה:

בדוגמה הבאה של קובץ הגדרות של כלי להודעות, השדה filter משתמש בCommon Expression Language עם המשתנה הזמין build כדי לסנן אירועי build עם סטטוס SUCCESS:

    apiVersion: cloud-build-notifiers/v1
    kind: HTTPNotifier
    metadata:
      name: example-http-notifier
    spec:
      notification:
        filter: build.status == Build.Status.SUCCESS
        delivery:
          # The `http(s)://` protocol prefix is required.
          url: url
        template:
          type: golang
          uri: gs://example-gcs-bucket/http.json

כאשר:

  • url הוא משתנה ההגדרה שמשמש בדוגמה הזו כדי לציין את כתובת ה-URL של הבקשה.
  • url היא כתובת ה-URL שרוצים לציין כשרת הנמען.
  • השדה uri מפנה לקובץ http.json. הקובץ הזה מתייחס לתבנית JSON שמתארחת ב-Cloud Storage ומייצג את מטען ה-JSON לנקודת הקצה של ה-webhook.

כדי לראות את הדוגמה, אפשר לעיין בקובץ ההגדרות של כלי ההתראה עבור כלי ההתראה של HTTP.

הרצת סקריפט של אוטומציה

כדי להגדיר אוטומטית את ההתראות של הכלי לשליחת התראות:

  1. משכפלים את מאגר cloud-build-notifiers.

  2. מגדירים את Google Cloud CLI עם מזהה הפרויקט והאזור:

    gcloud config set project project-id
    gcloud config set run/region region
    

    כאשר:

    • project-id הוא מזהה הפרויקט. Google Cloud
    • region הוא האזור שבו רוצים לפרוס את כלי ההתראות.
  3. מריצים את הפקודה הבאה בתיקיית הבסיס של המאגר:

     ./setup.sh http -t config-path
    

    כאשר:

    • config-path הוא הנתיב לקובץ התצורה של ההתראות.

אחרי שמריצים את הסקריפט, מוצגת ההודעה הבאה:

** NOTIFIER SETUP COMPLETE **

ההתראה הוגדרה. אפשר לראות את הסקריפט המלא במאגר cloud-build-notifiers או להריץ את הפקודה ./setup.sh --help כדי לקבל הוראות שימוש שקשורות לסקריפט.

Google Chat

מתבצעת ההגדרה של

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

הפעלת ממשקי API

מפעילים את ממשקי ה-API של Cloud Build,‏ Compute Engine,‏ Cloud Run,‏ Pub/Sub ו-Secret Manager.

תפקידים שנדרשים להפעלת ממשקי API

כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

הפעלת ממשקי ה-API

קבלת פרטי כניסה ואחסון שלהם

  1. יוצרים מרחב ב-Google Chat.

  2. במרחב שנוצר, יוצרים webhook נכנס כדי לפרסם הודעות מ-Cloud Build ב-Google Chat. כתובת ה-URL תיראה בערך כך:

    https://chat.googleapis.com/v1/spaces/...

  3. מאחסנים את כתובת ה-URL של ה-webhook הנכנס ב-Secret Manager:

    1. פותחים את הדף Secret Manager במסוף Google Cloud :

      פתיחת הדף Secret Manager

    2. לוחצים על Create secret (יצירת סוד).

    3. מזינים שם לסוד.

    4. בקטע ערך סודי, מוסיפים את ה-Webhook URL הנכנס של המרחב ב-Google Chat.

    5. כדי לשמור את הסוד, לוחצים על Create secret (יצירת סוד).

כתיבת קובץ תצורה של כלי לשליחת התראות

כותבים קובץ הגדרות של התראות כדי להגדיר את ההתראות ב-Google Chat ולסנן אירועי בנייה:

בדוגמה הבאה של קובץ הגדרות של כלי להודעות, השדה filter משתמש בCommon Expression Language עם המשתנה הזמין build כדי לסנן אירועי build עם סטטוס SUCCESS:

  apiVersion: cloud-build-notifiers/v1
  kind: GoogleChatNotifier
  metadata:
    name: example-googlechat-notifier
  spec:
    notification:
      filter: build.status == Build.Status.SUCCESS
      delivery:
        webhookUrl:
          secretRef: webhook-url
    secrets:
    - name: webhook-url
      value: projects/project-id/secrets/secret-name/versions/latest

כאשר:

  • webhook-url הוא משתנה ההגדרה שמשמש בדוגמה הזו כדי להפנות לנתיב של כתובת ה-URL של ה-webhook ב-Google Chat שמאוחסן ב-Secret Manager. שם המשתנה שמציינים כאן צריך להיות זהה לשם בשדה name בקטע secrets.
  • project-id הוא מזהה הפרויקט. Google Cloud
  • secret-name הוא השם של הסוד שמכיל את כתובת ה-Webhook של Google Chat.

כדי לראות את הדוגמה, אפשר לעיין בקובץ ההגדרות של כלי ההתראה ל-Google Chat.

הרצת סקריפט של אוטומציה

כדי להגדיר אוטומטית את ההתראות של הכלי לשליחת התראות:

  1. משכפלים את מאגר cloud-build-notifiers.

  2. מגדירים את Google Cloud CLI עם מזהה הפרויקט והאזור:

    gcloud config set project project-id
    gcloud config set run/region region
    

    כאשר:

    • project-id הוא מזהה הפרויקט. Google Cloud
    • region הוא האזור שבו רוצים לפרוס את כלי ההתראות.
  3. מריצים את הפקודה הבאה בתיקיית הבסיס של המאגר:

./setup.sh googlechat config-path -s secret-name

כאשר:

  • config-path הוא הנתיב לקובץ התצורה של ההתראות.
  • secret-name הוא השם של הסוד שמאוחסן ב-Secret Manager.

אחרי שמריצים את הסקריפט, מוצגת ההודעה הבאה:

** NOTIFIER SETUP COMPLETE **

ההתראה הוגדרה. אפשר לראות את הסקריפט המלא במאגר cloud-build-notifiers או להריץ את הפקודה ./setup.sh --help כדי לקבל הוראות לשימוש בסקריפט.

GitHub Issues

מתבצעת ההגדרה של

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

הפעלת ממשקי API

מפעילים את ממשקי ה-API של Cloud Build,‏ Compute Engine,‏ Cloud Run,‏ Pub/Sub ו-Secret Manager.

תפקידים שנדרשים להפעלת ממשקי API

כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

הפעלת ממשקי ה-API

קבלת פרטי כניסה ואחסון שלהם

  1. יוצרים GitHub Personal Access Token:

    1. כדי ליצור טוקן חדש, עוברים אל ההגדרות של GitHub.
    2. בוחרים את ההיקף repo.

    3. לוחצים על יצירת טוקן.

  2. מאחסנים את הטוקן ב-Secret Manager:

    1. פותחים את הדף Secret Manager במסוף Google Cloud :

      פתיחת הדף Secret Manager

    2. לוחצים על Create secret (יצירת סוד).

    3. מזינים שם לסוד.

    4. בקטע Secret value (ערך סודי), מוסיפים את האסימון של GitHub.

    5. כדי לשמור את הסוד, לוחצים על Create secret (יצירת סוד).

כתיבת קובץ תצורה של תבנית

כותבים קובץ תצורה של תבנית כדי לתאר את הפורמט של הבעיות שנוצרות ב-GitHub:

בקובץ התצורה של התבנית לדוגמה שבהמשך, השדות title ו-body משתמשים במשתני החלפה מה-build:

{
    "title": "Build {{.Build.BuildTriggerId}}: {{.Build.Status}}",
    "body": "[{{.Build.ProjectId}}] {{.Build.BuildTriggerId}} status: **{{.Build.Status}}**\n\n[View Logs]({{.Build.LogUrl}})"
}

כדי לראות את הדוגמה, אפשר לעיין בקובץ ההגדרות של התבנית של כלי ההתראות על בעיות ב-GitHub.

אפשר להגדיר שדות נוספים מפרמטרים הזמינים בגוף הבקשה מנקודת קצה ל-API של GitHub ליצירת בעיה.

כתיבת קובץ תצורה של כלי לשליחת התראות

כותבים קובץ הגדרות של התראות כדי להגדיר את ההתראות ב-Google Chat ולסנן אירועי בנייה:

בדוגמה הבאה של קובץ הגדרות של כלי להודעות, השדה filter משתמש בCommon Expression Language עם המשתנה הזמין build כדי לסנן אירועי build עם סטטוס SUCCESS:

apiVersion: cloud-build-notifiers/v1
kind: GitHubIssuesNotifier
metadata:
  name: example-githubissues-notifier
spec:
  notification:
    filter: build.status == Build.Status.FAILURE
    template: 
      type: golang
      uri: gs://project-id-notifiers-config/template-file-name
    delivery:
      githubToken:
        secretRef: github-token
      githubRepo: myuser/myrepo
  secrets:
  - name: github-token
    value: projects/project-id/secrets/secret-name/versions/latest

כאשר:

  • githubToken הוא משתנה ההגדרה שמשמש בדוגמה הזו כדי להפנות לאסימון GitHub שמאוחסן ב-Secret Manager. שם המשתנה שמציינים כאן צריך להיות זהה לשם בשדה name בקטע secrets.
  • project-id-notifiers-config הוא המיקום שבו התבנית תועלה, והקטגוריה תיווצר אם היא עדיין לא קיימת.
  • template-file-name הוא שם קובץ התבנית.
  • myuser/myrepo הוא שם המאגר שבו ייווצרו הבעיות.
  • project-id הוא מזהה הפרויקט. Google Cloud
  • secret-name הוא השם של הסוד שמכיל את הטוקן של GitHub.

כדי לראות את הדוגמה, אפשר לעיין בקובץ ההגדרות של כלי ההתראה ל-Google Chat.

במאמר בנושא משאבי Build מפורטים שדות נוספים שאפשר לסנן לפיהם. דוגמאות נוספות לסינון זמינות במאמר שימוש ב-CEL לסינון אירועי בנייה.

הרצת סקריפט של אוטומציה

כדי להגדיר אוטומטית את ההתראות של הכלי לשליחת התראות:

  1. משכפלים את מאגר cloud-build-notifiers.

  2. מגדירים את Google Cloud CLI עם מזהה הפרויקט והאזור:

    gcloud config set project project-id
    gcloud config set run/region region
    

    כאשר:

    • project-id הוא מזהה הפרויקט. Google Cloud
    • region הוא האזור שבו רוצים לפרוס את כלי ההתראות.
  3. מריצים את הפקודה הבאה בתיקיית הבסיס של המאגר:

    ./setup.sh githubissues config-path -t template-path -s secret-name

כאשר:

  • config-path הוא הנתיב לקובץ התצורה של ההתראות.
  • template-path הוא הנתיב לקובץ התבנית של ההתראות. קובץ התבנית של ההתראות מכיל את תבנית ה-JSON שמתארחת ב-Cloud Storage ומייצגת את הודעת ההתראה. אפשר לכלול את קובץ התבנית של ההתראות כנתיב באמצעות המשתנה הזה או בשדה uri של קובץ ההגדרות של ההתראות.
  • secret-name הוא השם של הסוד שמאוחסן ב-Secret Manager.

אחרי שמריצים את הסקריפט, מוצגת ההודעה הבאה:

** NOTIFIER SETUP COMPLETE **

ההתראה הוגדרה. אפשר לראות את הסקריפט המלא במאגר cloud-build-notifiers או להריץ את הפקודה ./setup.sh --help כדי לקבל הוראות שימוש שקשורות לסקריפט.

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