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

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

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

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

Slack

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

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

הפעלת ממשקי API

מפעילים את Cloud Build,‏ Compute Engine,‏ Cloud Run,‏ Pub/Sub ו-Secret Manager APIs, אם אחד מהם עדיין לא מופעל.

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

כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

הפעלת ממשקי ה-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. לוחצים על יצירת סוד.

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

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

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

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

כותבים קובץ הגדרות של התראות כדי להגדיר את ההתראות ב-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

מפעילים את Cloud Build,‏ Compute Engine,‏ Cloud Run,‏ Pub/Sub ו-Secret Manager APIs, אם אחד מהם עדיין לא מופעל.

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

כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

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

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

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

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

    פתיחת הדף Secret Manager

  3. לוחצים על יצירת סוד.

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

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

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

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

כותבים קובץ הגדרות של התראות כדי להגדיר את ההתראות ב-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

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

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

כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

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

מתן הרשאות

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

  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 Reader
      • עריכה של נתוני 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, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

הפעלת ממשקי ה-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

מפעילים את Cloud Build,‏ Compute Engine,‏ Cloud Run,‏ Pub/Sub ו-Secret Manager APIs, אם אחד מהם עדיין לא מופעל.

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

כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

הפעלת ממשקי ה-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. לוחצים על יצירת סוד.

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

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

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

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

כותבים קובץ תצורה של כלי להודעות כדי להגדיר את הכלי להודעות של 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

מפעילים את Cloud Build,‏ Compute Engine,‏ Cloud Run,‏ Pub/Sub ו-Secret Manager APIs, אם אחד מהם עדיין לא מופעל.

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

כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

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

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

  1. יוצרים אסימון גישה אישי ב-GitHub:

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

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

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

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

      פתיחת הדף Secret Manager

    2. לוחצים על יצירת סוד.

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

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

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

כתיבת קובץ תצורת תבנית

כותבים קובץ הגדרות של תבנית כדי לתאר את הפורמט של בעיות 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 כדי לקבל הוראות שימוש שקשורות לסקריפט.

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