טריגר ב-Eventarc מציין שיש לכם עניין באירוע מסוים או בקבוצת אירועים. אפשר להגדיר ניתוב אירועים על ידי ציון מסננים לטריגר, כולל מקור האירוע ושירות היעד של Cloud Run.
Eventarc מעביר אירועים למקבל האירועים בפורמט CloudEvents באמצעות בקשת HTTP.
בהוראות האלה מוסבר איך להגדיר ניתוב לשירות Cloud Run שמופעל כשנוצר יומן ביקורת שתואם לקריטריוני הסינון של הטריגר. רשימת האירועים ביומן הביקורת שנתמכים ב-Eventarc, כולל ערכי serviceName ו-methodName, מופיעה במאמר סוגי אירועים של Google שנתמכים ב-Eventarc.
מידע נוסף על תיעוד אירועים שמופעלים כשנוצר יומן ביקורת שתואם לקריטריונים של המסנן של הטריגר זמין במאמר בנושא קביעת מסנני אירועים ליומני ביקורת של Cloud.
הכנות ליצירת טריגר
לפני שיוצרים טריגר, צריך לבצע את הפעולות הבאות:
המסוף
בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.
מפעילים את Cloud Logging API, Eventarc API ו-Eventarc Publishing API.
אם רלוונטי, מפעילים את ה-API שקשור לאירועים ביומני הביקורת של Cloud. לדוגמה, כדי להפעיל יומני ביקורת של פונקציות Cloud Run, צריך להפעיל את Cloud Functions API.
אם עדיין אין לכם חשבון שירות, אתם צריכים ליצור חשבון שירות שמנוהל על ידי משתמש, ואז להקצות לו את התפקידים וההרשאות הנדרשים כדי ש-Eventarc יוכל לנהל אירועים בשירות היעד.
במסוף Google Cloud , נכנסים לדף יצירת חשבון שירות.
בוחרים את הפרויקט הרצוי.
כותבים שם בשדה Service account name. השדה Service account ID ימולא במסוף Google Cloud בהתאם לשם הזה.
כותבים תיאור בשדה Service account description. לדוגמה,
Service account for event trigger.לוחצים על Create and continue.
כדי לספק גישה מתאימה, ברשימה Select a role בוחרים את התפקידים הנדרשים בפלטפורמה לניהול זהויות והרשאות גישה (IAM) שרוצים להקצות לחשבון השירות עבור הפעלות מאומתות או לא מאומתות. מידע נוסף זמין במאמר תפקידים והרשאות ליעדים ב-Cloud Run.
כדי להוסיף עוד תפקידים, לוחצים על Add another role ומוסיפים אותם אחד אחרי השני.
לוחצים על Continue.
כדי לסיים את יצירת החשבון, לוחצים על סיום.
gcloud
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
מפעילים את Cloud Logging API, Eventarc API ו-Eventarc Publishing API.
gcloud services enable logging.googleapis.com \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com
אם רלוונטי, מפעילים את ה-API שקשור לאירועים ביומני הביקורת של Cloud. לדוגמה, כדי להפעיל יומני ביקורת של פונקציות Cloud Run, צריך להפעיל את האפשרות
cloudfunctions.googleapis.com.אם עדיין אין לכם חשבון שירות, אתם צריכים ליצור חשבון שירות שמנוהל על ידי משתמש, ואז להקצות לו את התפקידים וההרשאות הנדרשים כדי ש-Eventarc יוכל לנהל אירועים בשירות היעד.
יוצרים את חשבון השירות:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
מחליפים את
SERVICE_ACCOUNT_NAMEבשם של חשבון השירות. הוא צריך להכיל בין 6 ל-30 תווים, והוא יכול לכלול תווים אלפאנומריים קטנים ומקפים. אחרי שיוצרים חשבון שירות, אי אפשר לשנות את השם שלו.נותנים את התפקידים או ההרשאות הנדרשים בניהול הזהויות והרשאות הגישה (IAM) להפעלות מאומתות או לא מאומתות. מידע נוסף זמין במאמר תפקידים והרשאות ליעדים ב-Cloud Run.
יצירת טריגר
אפשר ליצור טריגר Eventarc באמצעות Google Cloud CLI או דרך מסוף Google Cloud .
המסוף
- נכנסים לדף Triggers ב-Eventarc במסוף Google Cloud .
- לוחצים על Create trigger (יצירת ביטוי להפעלה).
- מקלידים Trigger name.
זהו המזהה של הטריגר, והוא חייב להתחיל באות. הוא יכול להכיל עד 63 אותיות קטנות, ספרות או מקפים.
- בשדה Trigger type, בוחרים באפשרות Google sources.
- בוחרים ספק אירועים.
זהו שירות Google שמשמש כמקור לאירועים דרך יומני הביקורת שלו. לדוגמה, בוחרים באפשרות BigQuery.
שימו לב: יכול להיות שבשם ספק האירועים שמופיע בGoogle Cloud מסמכי התיעוד המשויכים לא מופיעה הקידומת Cloud או Google Cloud. לדוגמה, במסוף, Memorystore for Redis נקרא Google Cloud Memorystore for Redis.
- ברשימה סוג האירוע, מתוך האירועים דרך יומני ביקורת בענן, בוחרים סוג אירוע.
- בוחרים אחת מהאפשרויות הבאות:
- כל משאב – זוהי ברירת המחדל, והיא כוללת משאבים שנוצרו באופן דינמי עם מזהים שנוצרו בזמן היצירה.
- משאב ספציפי – צריך לציין את השם המלא של המשאב.
- תבנית נתיב – אפשר לסנן משאבים באמצעות תבנית נתיב.
לדוגמה, מקלידים
projects/_/buckets/eventarc-bucket/objects/random.txtאו מקלידיםprojects/_/buckets/**/r*.txt.
- כדי לציין את הקידוד של מטען הייעודי (payload) של האירוע, ברשימה Event data content type (סוג התוכן של נתוני האירוע), בוחרים באפשרות application/json או באפשרות application/protobuf.
חשוב לזכור שמטען ייעודי (payload) של אירוע בפורמט JSON גדול יותר ממטען ייעודי בפורמט Protobuf. זה עלול להשפיע על המהימנות, בהתאם ליעד של האירוע ולמגבלות שלו לגבי גודל האירוע. מידע נוסף זמין במאמר בנושא בעיות מוכרות.
- ברשימה Region, בוחרים אזור.
הטריגרים של יומני הביקורת של Cloud ל-Eventarc זמינים באזורים ספציפיים ובאזור הגלובלי, אבל לא במיקומים של שני אזורים או של מספר אזורים. כדי להימנע מבעיות בביצועים ובמיקום הנתונים שנגרמות כתוצאה מטריגר גלובלי, Google ממליצה שהמיקום יתאים למיקום של Google Cloud השירות שמייצר אירועים. מידע נוסף זמין במאמר בנושא מיקומי Eventarc.
אם מציינים את המיקום הגלובלי, מקבלים אירועים מכל המיקומים שתואמים למסנני האירועים. לדוגמה, אם יוצרים טריגר גלובלי של Eventarc, אפשר לקבל אירועים ממשאבים במספר אזורים באיחוד האירופי ובארה"ב.
שימו לב שיש בעיה מוכרת בטריגרים של Cloud Audit Logs ב-Compute Engine שגורמת לאירועים שמקורם באזור יחיד:
us-central1. המיקום הזה לא משתנה גם אם המיקום האמיתי של המכונה הווירטואלית שונה. כשיוצרים את הטריגר, מגדירים את מיקום הטריגר ל-us-central1או ל-global. - בוחרים את חשבון השירות שיפעיל את השירות או את תהליך העבודה.
אפשר גם ליצור חשבון שירות חדש.
כאן מציינים את כתובת האימייל בחשבון השירות של ניהול הזהויות והרשאות הגישה (IAM) שמשויך לטריגר, ושקודם לכן הענקתם לו תפקידים ספציפיים שנדרשים על ידי Eventarc.
- ברשימה Event destination, בוחרים באפשרות Cloud Run.
- בוחרים שירות.
זהו שם השירות שמקבל את האירועים להפעלת הטריגר. השירות צריך להיות באותו פרויקט כמו הטריגר, והוא יקבל אירועים כבקשות HTTP POST שנשלחות לנתיב של כתובת ה-URL הבסיסית שלו (
/), בכל פעם שהאירוע נוצר. - אפשר לציין נתיב לכתובת ה-URL של השירות כדי לשלוח את הבקשה הנכנסת.
זהו הנתיב היחסי בשירות היעד שאליו יישלחו האירועים של הטריגר. לדוגמה:
/,/route,route,route/subroute. - אפשר גם ללחוץ על הוספת תווית. תוויות הן צמדי מפתח/ערך שעוזרים לכם לארגן אתGoogle Cloud המשאבים. מידע נוסף זמין במאמר מהן תוויות?
- לוחצים על יצירה.
אחרי שיוצרים טריגר, אי אפשר לשנות את המסננים של מקור האירוע. במקום זאת, צריך ליצור טריגר חדש ולמחוק את הטריגר הישן. מידע נוסף זמין במאמר בנושא ניהול טריגרים.
gcloud
כדי ליצור טריגר, מריצים פקודה עם דגלים נדרשים ואופציונליים.gcloud eventarc triggers create
gcloud eventarc triggers create TRIGGER \ --location=LOCATION \ --destination-run-service=DESTINATION_RUN_SERVICE \ --destination-run-region=DESTINATION_RUN_REGION \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=SERVICE_NAME" \ --event-filters="methodName=METHOD_NAME" \ --event-data-content-type="EVENT_DATA_CONTENT_TYPE" \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
מחליפים את מה שכתוב בשדות הבאים:
-
TRIGGER: המזהה של הטריגר או מזהה מלא. -
LOCATION: המיקום של טריגר Eventarc. אפשר גם להגדיר את המאפייןeventarc/location. לדוגמה:gcloud config set eventarc/location us-central1.הטריגרים של יומני הביקורת של Cloud ל-Eventarc זמינים באזורים ספציפיים ובאזור הגלובלי, אבל לא זמינים במיקומים של שני אזורים ומספר אזורים. כדי להימנע מבעיות בביצועים ובמיקום הנתונים שנגרמות כתוצאה מטריגר גלובלי, Google ממליצה שהמיקום יתאים למיקום של Google Cloud השירות שמייצר אירועים. מידע נוסף זמין במאמר בנושא מיקומי Eventarc.
אם תציינו את המיקום הגלובלי, תקבלו אירועים מכל המיקומים שתואמים למסנני האירועים. לדוגמה, אם יוצרים טריגר גלובלי של Eventarc, אפשר לקבל אירועים ממשאבים במספר אזורים באיחוד האירופי ובארה"ב.
שימו לב שיש בעיה מוכרת בטריגרים של Cloud Audit Logs עבור Compute Engine שגורמת לאירועים שמקורם באזור יחיד:
us-central1. המיקום הזה לא משתנה, לא משנה איפה נמצאת בפועל המכונה הווירטואלית. כשיוצרים את הטריגר, מגדירים את מיקום הטריגר ל-us-central1או ל-global. -
DESTINATION_RUN_SERVICE: השם של שירות Cloud Run שמקבל את האירועים של הטריגר. השירות יכול להיות בכל אחד מהמיקומים הנתמכים של Cloud Run, והוא לא צריך להיות באותו מיקום כמו הטריגר. עם זאת, השירות צריך להיות באותו פרויקט כמו הטריגר והוא יקבל אירועים כבקשות HTTP POST שנשלחות לנתיב כתובת ה-URL הבסיסית שלו (/), בכל פעם שהאירוע נוצר. -
DESTINATION_RUN_REGION: (אופציונלי) האזור שבו נמצא שירות היעד של Cloud Run. אם לא מציינים זאת, המערכת מניחה שהשירות נמצא באותו אזור כמו הטריגר.
-
SERVICE_NAME: המזהה של Google Cloud השירות -
METHOD_NAME: המזהה של הפעולה
-
EVENT_DATA_CONTENT_TYPE: (אופציונלי) הקידוד של מטען הייעודי של האירוע. הערך יכול להיותapplication/jsonאוapplication/protobuf. קידוד ברירת המחדל הואapplication/json.חשוב לזכור שמטען ייעודי (payload) של אירוע בפורמט JSON גדול יותר ממטען ייעודי בפורמט Protobuf. זה עשוי להשפיע על המהימנות בהתאם ליעד האירוע ולמגבלות שלו לגבי גודל האירוע. מידע נוסף זמין במאמר בנושא בעיות מוכרות.
-
SERVICE_ACCOUNT_NAME: השם של חשבון השירות שמנוהל על ידי המשתמש. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
הערות:
חובה להשתמש בדגלים הבאים:
--event-filters="type=google.cloud.audit.log.v1.written"--event-filters="serviceName=VALUE"--event-filters="methodName=VALUE"
אפשר גם לסנן אירועים של משאב ספציפי באמצעות הדגל
--event-filters="resourceName=VALUE"וציון הנתיב המלא למשאב. לא מציינים את הדגל למשאבים שנוצרו באופן דינמי ושמזהים שלהם נוצרו בזמן היצירה. לחלופין, אפשר לסנן אירועים עבור קבוצה של משאבים באמצעות הדגל--event-filters-path-pattern="resourceName=VALUE"ולהגדיר את דפוס נתיב המשאב.
- לכל טריגר יכולים להיות כמה מסנני אירועים, מופרדים בפסיקים בדגל אחד
--event-filters=[ATTRIBUTE=VALUE,...] או שאפשר לחזור על הדגל כדי להוסיף עוד מסננים. רק אירועים שתואמים לכל המסננים נשלחים ליעד. אין תמיכה בתווים כלליים לחיפוש ובביטויים רגולריים. - אחרי שיוצרים טריגר, אי אפשר לשנות את סוג המסנן של האירועים. כדי להגדיר סוג אירוע אחר, צריך ליצור טריגר חדש.
- הדגל
--service-accountמשמש לציון כתובת האימייל בחשבון השירות בניהול זהויות והרשאות גישה (IAM) שמשויך לטריגר. - אפשר לציין נתיב יחסי בשירות היעד של Cloud Run שאליו הטריגר צריך לשלוח את האירועים באמצעות הדגל
--destination-run-path.
דוגמה:
gcloud eventarc triggers create helloworld-trigger \
--location=us-central1 \
--destination-run-service=helloworld-events \
--destination-run-region=us-central1 \
--event-filters="type=google.cloud.audit.log.v1.written" \
--event-filters="serviceName=bigquery.googleapis.com" \
--event-filters="methodName=google.cloud.bigquery.v2.JobService.InsertJob" \
--service-account=${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com
הפעולה הזו יוצרת טריגר בשם helloworld-trigger ליומני ביקורת שנכתבים על ידי bigquery.googleapis.com ולפעולה שמזוהה כ-google.cloud.bigquery.v2.JobService.InsertJob.
Terraform
אפשר ליצור טריגר ליעד ב-Cloud Run באמצעות Terraform. פרטים נוספים זמינים במאמר יצירת טריגר באמצעות Terraform.
הצגת טריגר
אפשר לאשר את יצירת הטריגר באמצעות רשימת הטריגרים של Eventarc ב-Google Cloud CLI או במסוף Google Cloud .
המסוף
נכנסים לדף Triggers ב-Eventarc במסוף Google Cloud .
בדף הזה מפורטים הטריגרים בכל המיקומים, כולל פרטים כמו שמות, אזורים, ספקי אירועים, יעדים ועוד.
כדי לסנן את הטריגרים:
- לוחצים על Filter (מסנן) או על השדה Filter triggers (טריגרים של מסנן).
- ברשימה Properties, בוחרים אפשרות לסינון הטריגרים.
אפשר לבחור נכס אחד או להשתמש באופרטור הלוגי
ORכדי להוסיף עוד נכסים.כדי למיין את הטריגרים, לוחצים על מיון לצד כותרת של עמודה נתמכת.
gcloud
מריצים את הפקודה הבאה כדי להציג את הטריגרים:
gcloud eventarc triggers list --location=-
הפקודה הזו מציגה רשימה של הטריגרים בכל המיקומים, וכוללת פרטים כמו שמות, סוגים, יעדים וסטטוסים.