אתם יכולים להגדיר את Cloud Build כך שישלח לכם התראות על גרסאות build ל-Slack, ל-Google Chat, לשרת SMTP, לנקודת קצה (endpoint) ב-HTTP או למכונה של BigQuery באמצעות שירותי ההתראות של Cloud Build. בדף הזה מוסבר איך להפוך את תהליך ההגדרה של המדווח הרצוי לאוטומטי.
הגדרה אוטומטית של התראות
ב-Cloud Build יש סקריפט הגדרות שמאפשר להגדיר התראות באופן אוטומטי. כדי להגדיר התראות באמצעות סקריפט ההגדרות:
Slack
מתבצעת ההגדרה של
בקטעים הבאים מתוארים השלבים שצריך להשלים לפני שמגדירים התראות באופן אוטומטי לשירות ההתראות.
הפעלת ממשקי API
מפעילים את ממשקי ה-API של Cloud Build, Compute Engine, Cloud Run, Pub/Sub ו-Secret Manager, אם הם עדיין לא מופעלים.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים?
קבלת פרטי כניסה ואחסון שלהם
יוצרים אפליקציית Slack לסביבת העבודה ב-Slack שאליה רוצים לשלוח התראות.
מפעילים webhooks נכנסים כדי לפרסם הודעות מ-Cloud Build ב-Slack.
עוברים לאפליקציית Slack כדי לאתר את כתובת ה-URL של ה-webhook הנכנס. כתובת ה-URL תיראה בערך כך:
http://hooks.slack.com/services/...שומרים את כתובת ה-URL של ה-webhook הנכנס ב-Secret Manager:
פותחים את הדף Secret Manager במסוף Google Cloud :
לוחצים על Create secret.
נותנים שם לסוד.
בקטע ערך סודי, מוסיפים את כתובת ה-URL של ה-webhook הנכנס לאפליקציית Slack.
כדי לשמור את הסוד, לוחצים על Create secret.
כתיבת קובץ תצורה של התראות
כותבים קובץ תצורה של שירות התראות כדי להגדיר את שירות ההתראות של Slack ולסנן אירועי build:
בקובץ התצורה הבא של השולח, השדה 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://bucket-name/slack.json
secrets:
- name: webhook-url
value: projects/project-id/secrets/secret-name/versions/latest
כאשר:
-
webhook-urlהוא משתנה התצורה שמשמש בדוגמה הזו כדי להפנות לנתיב של כתובת ה-URL של ה-webhook של Slack שמאוחסן ב-Secret Manager. שם המשתנה שמציינים כאן צריך להיות זהה לשדהnameבקטעsecrets. -
bucket-nameהוא השם של הקטגוריה ב-Cloud Storage שאליה סקריפט ההגדרות מעלה את קובץ התבנית. אם הקטגוריה לא קיימת, סקריפט ההגדרות יוצר אותה בפרויקט ומאמת את הבעלות על הקטגוריה לפני העלאת הקבצים. -
project-idהוא המזהה של הפרויקט ב- Google Cloud . -
secret-nameהוא שם הסוד שמכיל את כתובת ה-webhook של Slack. - השדה
uriמפנה לקובץslack.json. הקובץ הזה מכיל תבנית JSON שמתארחת ב-Cloud Storage ומייצגת את הודעת ההתראה למרחב העבודה שלכם ב-Slack.
כדי לראות את הדוגמה, עיינו בקובץ התצורה של השולח לשליחת התראות ל-Slack.
הרצת הסקריפט של הפעולה האוטומטית
כדי להגדיר התראות באופן אוטומטי:
משכפלים את המאגר cloud-build-notifiers.
מגדירים את Google Cloud CLI עם מזהה הפרויקט והאזור:
gcloud config set project project-id gcloud config set run/region regionכאשר:
-
project-idהוא מזהה הפרויקט ב- Google Cloud . -
regionהוא האזור שבו פורסים את שירות ההתראות.
-
מריצים את הפקודה הבאה בתיקיית הבסיס של המאגר:
./setup.sh slack config-path -b bucket-name -t template-path -s secret-name
כאשר:
-
config-pathהוא הנתיב לקובץ התצורה של מקבלי ההתראות. -
bucket-nameהוא השם של הקטגוריה ב-Cloud Storage שאליה סקריפט ההגדרות מעלה את קובצי ההגדרות והתבניות. אם משמיטים את-b, הסקריפט יוצר שם קטגוריה עם סיומת אקראית (notifiers-config-random-suffix). -
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, צריך את ההרשאה serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים?
אחסון פרטי כניסה
שומרים את הסיסמה של חשבון האימייל של השולח ב-Secret Manager:
פותחים את הדף Secret Manager במסוף Google Cloud :
לוחצים על Create secret.
נותנים שם לסוד.
בקטע Secret value, מוסיפים את הסיסמה לחשבון האימייל של השולח.
כדי לשמור את הסוד, לוחצים על Create secret.
כתיבת קובץ תצורה של התראות
כותבים קובץ תצורה של התראות כדי להגדיר את התראות ה-SMTP ולסנן אירועי build:
בקובץ התצורה הבא של השולח, השדה 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://bucket-name/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הוא שם הסוד שמכיל את הסיסמה לחשבון האימייל של השולח. -
bucket-nameהוא השם של הקטגוריה ב-Cloud Storage שאליה סקריפט ההגדרות מעלה את קובץ התבנית. אם הקטגוריה לא קיימת, סקריפט ההגדרות יוצר אותה בפרויקט ומאמת את הבעלות על הקטגוריה לפני העלאת הקבצים. - השדה
uriמפנה לקובץsmtp.html. הקובץ הזה מתייחס לתבנית HTML שמתארחת ב-Cloud Storage ומייצגת את ההתראה באימייל.
כדי לראות את הדוגמה, עיינו בקובץ התצורה של המודיע עבור המודיע של SMTP.
הרצת הסקריפט של הפעולה האוטומטית
כדי להגדיר התראות באופן אוטומטי:
משכפלים את המאגר cloud-build-notifiers.
מגדירים את Google Cloud CLI עם מזהה הפרויקט והאזור:
gcloud config set project project-id gcloud config set run/region regionכאשר:
-
project-idהוא מזהה הפרויקט ב- Google Cloud . -
regionהוא האזור שבו פורסים את שירות ההתראות.
-
מריצים את הפקודה הבאה בתיקיית הבסיס של המאגר:
./setup.sh smtp config-path -b bucket-name -t template-path -s secret-name
כאשר:
-
config-pathהוא הנתיב לקובץ התצורה של מקבלי ההתראות. -
bucket-nameהוא השם של הקטגוריה ב-Cloud Storage שאליה סקריפט ההגדרות מעלה את קובצי ההגדרות והתבניות. אם משמיטים את-b, הסקריפט יוצר שם קטגוריה עם סיומת אקראית (notifiers-config-random-suffix). -
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). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים?
מתן הרשאות
נותנים לחשבון השירות של Cloud Run הרשאה ליצור ולכתוב טבלאות ב-BigQuery, והרשאה לאחזר נתונים מ-Artifact Registry שקשורים ל-build:
נכנסים לדף IAM במסוף Google Cloud :
מאתרים את חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine ומשויך לפרויקט:
חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine ייראה בערך כך, כאשר project-number הוא מספר הפרויקט:
project-number-compute@לוחצים על סמל העיפרון בשורה שבה מופיע חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.
הכרטיסייה עריכת הרשאות הגישה תופיע.
לוחצים על הוספת תפקיד.
מוסיפים את התפקידים הבאים:
- Artifact Registry Reader
עריכה של נתוני BigQuery
התפקיד קורא ב-Artifact Registry מאפשר לאחזר נתונים של קובצי האימג'. התפקיד עריכת נתונים ב-BigQuery נותן לכם גישת קריאה וכתיבה לנתונים.
לוחצים על Save.
כתיבת קובץ תצורה של התראות
כותבים קובץ תצורה של התראות כדי להגדיר את ההתראות של BigQuery ולסנן אירועי build:
בקובץ התצורה הבא של השולח, השדה 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://bucket-name/bq.json
כאשר:
-
project-idהוא המזהה של הפרויקט ב- Google Cloud . -
dataset-nameהוא השם שרוצים לתת למערך הנתונים. -
table-nameהוא השם שרוצים לתת לטבלה. -
bucket-nameהוא השם של הקטגוריה ב-Cloud Storage שאליה סקריפט ההגדרות מעלה את קובץ התבנית. אם הקטגוריה לא קיימת, סקריפט ההגדרות יוצר אותה בפרויקט ומאמת את הבעלות על הקטגוריה לפני העלאת הקבצים. - השדה
uriמפנה לקובץbq.json. הקובץ הזה מתייחס לתבנית JSON שמתארחת ב-Cloud Storage ומייצגת את המידע שצריך להוסיף לטבלה ב-BigQuery.
הערך table-name בקובץ התצורה של ההתראות יכול להתייחס אל:
- טבלה שלא קיימת
- טבלה ריקה בלי סכימה
טבלה קיימת עם סכימה שתואמת למפרט הסכימה ב-BigQuery notifier
כדי לראות את הדוגמה, עיינו בקובץ התצורה של השירות לשליחת התראות של השירות לשליחת התראות של BigQuery.
הרצת הסקריפט של הפעולה האוטומטית
כדי להגדיר התראות באופן אוטומטי:
משכפלים את המאגר cloud-build-notifiers.
מגדירים את Google Cloud CLI עם מזהה הפרויקט והאזור:
gcloud config set project project-id gcloud config set run/region regionכאשר:
-
project-idהוא מזהה הפרויקט ב- Google Cloud . -
regionהוא האזור שבו פורסים את שירות ההתראות.
-
מריצים את הפקודה הבאה בתיקיית הבסיס של המאגר:
./setup.sh bigquery config-path -b bucket-name -t template-pathכאשר:
-
config-pathהוא הנתיב לקובץ התצורה של מקבלי ההתראות. -
bucket-nameהוא השם של הקטגוריה ב-Cloud Storage שאליה סקריפט ההגדרות מעלה את קובצי ההגדרות והתבניות. אם משמיטים את-b, הסקריפט יוצר שם קטגוריה עם סיומת אקראית (notifiers-config-random-suffix). -
template-pathהוא הנתיב לקובץ התבנית של ההתראות. קובץ התבנית של השולחים מכיל את תבנית ה-JSON שמתארחת ב-Cloud Storage ומייצגת את הודעת ההתראה. אתם יכולים לכלול את קובץ התבנית של השולחים כנתיב באמצעות המשתנה הזה, או בשדהuriשל קובץ התצורה של השולחים.
אחרי שמריצים את הסקריפט, מוצגת ההודעה הבאה:
** NOTIFIER SETUP COMPLETE **ההתראות מוגדרות. אפשר לראות את הסקריפט המלא במאגר cloud-build-notifiers או להריץ את
./setup.sh --helpכדי לקבל הוראות לשימוש בסקריפט.-
HTTP
מתבצעת ההגדרה של
בקטעים הבאים מתוארים השלבים שצריך להשלים לפני שמגדירים התראות באופן אוטומטי לשירות ההתראות.
הפעלת ממשקי API
מפעילים את Cloud Build API, Cloud Run API ו-Pub/Sub API, אם הם עדיין לא מופעלים.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים?
כתיבת קובץ תצורה של התראות
כותבים קובץ תצורה של התראות כדי להגדיר את ההתראות ב-HTTP ולסנן אירועי build:
בקובץ התצורה הבא של השולח, השדה 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://bucket-name/http.json
כאשר:
-
urlהוא משתנה התצורה שמשמש בדוגמה הזו כדי לציין את כתובת ה-URL של הבקשה. - url היא כתובת ה-URL שרוצים לציין בתור שרת הנמען.
-
bucket-nameהוא השם של הקטגוריה ב-Cloud Storage שאליה סקריפט ההגדרות מעלה את קובץ התבנית. אם הקטגוריה לא קיימת, סקריפט ההגדרות יוצר אותה בפרויקט ומאמת את הבעלות על הקטגוריה לפני העלאת הקבצים. - השדה
uriמפנה לקובץhttp.json. הקובץ הזה מפנה לתבנית JSON שמתארחת ב-Cloud Storage ומייצג את המטען הייעודי (payload) של ה-JSON לנקודת הקצה של ה-webhook.
כדי לראות את הדוגמה, עיינו בקובץ התצורה של שירות ההתראות לשירות ההתראות של HTTP.
הרצת הסקריפט של הפעולה האוטומטית
כדי להגדיר התראות באופן אוטומטי:
משכפלים את המאגר cloud-build-notifiers.
מגדירים את Google Cloud CLI עם מזהה הפרויקט והאזור:
gcloud config set project project-id gcloud config set run/region regionכאשר:
-
project-idהוא מזהה הפרויקט ב- Google Cloud . -
regionהוא האזור שבו פורסים את שירות ההתראות.
-
מריצים את הפקודה הבאה בתיקיית הבסיס של המאגר:
./setup.sh http config-path -b bucket-nameכאשר:
-
config-pathהוא הנתיב לקובץ התצורה של מקבלי ההתראות. -
bucket-nameהוא השם של הקטגוריה ב-Cloud Storage שאליה סקריפט ההגדרות מעלה את קובץ התצורה. אם משמיטים את-b, הסקריפט יוצר שם קטגוריה עם סיומת אקראית (notifiers-config-random-suffix).
-
אחרי שמריצים את הסקריפט, מוצגת ההודעה הבאה:
** 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, צריך את ההרשאה serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים?
קבלת פרטי כניסה ואחסון שלהם
יוצרים מרחב משותף ב-Google Chat.
במרחב המשותף שנוצר, יוצרים webhook נכנס כדי לפרסם הודעות מ-Cloud Build ב-Google Chat. כתובת ה-URL תיראה בערך כך:
https://chat.googleapis.com/v1/spaces/...
שומרים את כתובת ה-URL של ה-webhook הנכנס ב-Secret Manager:
פותחים את הדף Secret Manager במסוף Google Cloud :
לוחצים על Create secret.
נותנים שם לסוד.
בקטע Secret value (ערך סודי), מוסיפים את כתובת ה-URL של ה-webhook הנכנס למרחב המשותף ב-Google Chat.
כדי לשמור את הסוד, לוחצים על Create secret.
כתיבת קובץ תצורה של התראות
כותבים קובץ תצורה של התראות כדי להגדיר את ההתראות ב-Google Chat ולסנן אירועי build:
בקובץ התצורה הבא של השולח, השדה 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הוא השם של הסוד שמכיל את כתובת ה-URL של ה-webhook ב-Google Chat.
כדי לראות את הדוגמה, עיינו בקובץ התצורה של המודיע של Google Chat.
הרצת הסקריפט של הפעולה האוטומטית
כדי להגדיר התראות באופן אוטומטי:
משכפלים את המאגר cloud-build-notifiers.
מגדירים את Google Cloud CLI עם מזהה הפרויקט והאזור:
gcloud config set project project-id gcloud config set run/region regionכאשר:
-
project-idהוא מזהה הפרויקט ב- Google Cloud . -
regionהוא האזור שבו פורסים את שירות ההתראות.
-
מריצים את הפקודה הבאה בתיקיית הבסיס של המאגר:
./setup.sh googlechat config-path -b bucket-name -s secret-name
כאשר:
-
config-pathהוא הנתיב לקובץ התצורה של מקבלי ההתראות. -
bucket-nameהוא השם של הקטגוריה ב-Cloud Storage שאליה סקריפט ההגדרות מעלה את קובץ התצורה. אם משמיטים את-b, הסקריפט יוצר שם קטגוריה עם סיומת אקראית (notifiers-config-random-suffix). -
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, צריך את ההרשאה serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים?
קבלת פרטי כניסה ואחסון שלהם
יוצרים טוקן גישה אישי ל-GitHub:
- עוברים אל הגדרות GitHub כדי ליצור אסימון חדש.
בוחרים את ההיקף
repo.לוחצים על יצירת טוקן.
מאחסנים את הטוקן ב-Secret Manager:
פותחים את הדף Secret Manager במסוף Google Cloud :
לוחצים על Create secret.
נותנים שם לסוד.
בקטע Secret value, מוסיפים את הטוקן של GitHub.
כדי לשמור את הסוד, לוחצים על 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 Issues.
אפשר להגדיר שדות נוספים מהפרמטרים הזמינים של גוף הבקשה מנקודת קצה ל-API של GitHub ליצירת בעיה.
כתיבת קובץ תצורה של התראות
כותבים קובץ תצורה של התראות כדי להגדיר את ההתראות ב-Google Chat ולסנן אירועי build:
בקובץ התצורה הבא של השולח, השדה 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://bucket-name/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. -
bucket-nameהוא השם של הקטגוריה ב-Cloud Storage שאליה סקריפט ההגדרות מעלה את קובץ התבנית. אם הקטגוריה לא קיימת, סקריפט ההגדרות יוצר אותה בפרויקט ומאמת את הבעלות על הקטגוריה לפני העלאת הקבצים. -
template-file-nameהוא השם של קובץ התבנית. -
myuser/myrepoהוא שם המאגר שבו ייווצרו הבעיות. -
project-idהוא המזהה של הפרויקט ב- Google Cloud . -
secret-nameהוא שם הסוד שמכיל את הטוקן של GitHub.
כדי לראות את הדוגמה, עיינו בקובץ התצורה של המודיע של Google Chat.
כדי לראות שדות נוספים שאפשר לסנן לפיהם, עיינו במשאב Build. דוגמאות נוספות לסינון מופיעות במאמר שימוש ב-CEL לסינון אירועי build.
הרצת הסקריפט של הפעולה האוטומטית
כדי להגדיר התראות באופן אוטומטי:
משכפלים את המאגר cloud-build-notifiers.
מגדירים את Google Cloud CLI עם מזהה הפרויקט והאזור:
gcloud config set project project-id gcloud config set run/region regionכאשר:
-
project-idהוא מזהה הפרויקט ב- Google Cloud . -
regionהוא האזור שבו פורסים את שירות ההתראות.
-
מריצים את הפקודה הבאה בתיקיית הבסיס של המאגר:
./setup.sh githubissues config-path -b bucket-name -t template-path -s secret-name
כאשר:
-
config-pathהוא הנתיב לקובץ התצורה של מקבלי ההתראות. -
bucket-nameהוא השם של הקטגוריה ב-Cloud Storage שאליה סקריפט ההגדרות מעלה את קובצי ההגדרות והתבניות. אם משמיטים את-b, הסקריפט יוצר שם קטגוריה עם סיומת אקראית (notifiers-config-random-suffix). -
template-pathהוא הנתיב לקובץ התבנית של ההתראות. קובץ התבנית של השולחים מכיל את תבנית ה-JSON שמתארחת ב-Cloud Storage ומייצגת את הודעת ההתראה. אתם יכולים לכלול את קובץ התבנית של השולחים כנתיב באמצעות המשתנה הזה, או בשדהuriשל קובץ התצורה של השולחים.
secret-nameהוא שם הסוד שמאוחסן ב-Secret Manager.
אחרי שמריצים את הסקריפט, מוצגת ההודעה הבאה:
** NOTIFIER SETUP COMPLETE **
ההתראות מוגדרות. אתם יכולים לראות את הסקריפט המלא במאגר cloud-build-notifiers או להריץ את ./setup.sh --help כדי לקבל הוראות לשימוש בסקריפט.