ניתוב אירועים לנקודת קצה (endpoint) פנימית של HTTP ברשת VPC

‫Eventarc מאפשר לכם להפנות אירועים לנקודות קצה פנימיות של HTTP שמתארחות ברשת של ענן וירטואלי פרטי (VPC). כך תוכלו לשלב תהליכי עבודה מבוססי-אירועים עם שירותי קצה עורפי פרטיים בלי לחשוף עומסי עבודה לאינטרנט הציבורי.

‫Eventarc מעביר אירועים למקבל האירועים בפורמט CloudEvents באמצעות בקשת HTTP. אפשר להגדיר טריגרים לתיעוד אירועים ישירים ממקורות Google Cloud, מיומני ביקורת ב-Cloud או מספקים חיצוניים.

ההוראות האלה מסבירות איך להגדיר ניתוב אירועים לנקודת קצה פנימית של HTTP ברשת VPC:

  • נקודת הקצה הפנימית של HTTP יכולה להיות כתובת IP פנימית או שם DNS שמוגדר במלואו (FQDN) לכל נקודת קצה של HTTP ברשת ענן וירטואלי פרטי (VPC). הנה שתי דוגמאות ליעדים אפשריים של אירועים:

    • מופע של מכונה וירטואלית (VM) ב-Compute Engine – מופעים של Compute Engine יכולים להריץ את התמונות הציבוריות של Linux ו-Windows Server ש-Google מספקת, וגם תמונות פרטיות בהתאמה אישית שאתם יכולים ליצור או לייבא מהמערכות הקיימות שלכם. מידע נוסף מופיע במאמר בנושא מכונות וירטואליות.
    • מאזן עומסים פנימי – Google Cloud מאזן עומסים פנימי של אפליקציות (ALB) הוא מאזן עומסים אזורי מבוסס-proxy בשכבה 7, שמאפשר להפעיל את השירותים ולהתאים את הקיבולת שלהם מאחורי כתובת IP פנימית. מאזני עומסים פנימיים של אפליקציות מפזרים תעבורת HTTP ו-HTTPS אל שרתים עורפיים שמארחים ב-Compute Engine,‏ Google Kubernetes Engine ‏ (GKE) וב-Cloud Run. מידע נוסף זמין במאמר סקירה כללית של מאזן עומסים פנימי של אפליקציות.
  • רשת VPC היא גרסה וירטואלית של רשת פיזית שמוטמעת בתוך רשת הייצור של Google. רשת VPC משותפת היא רשת VPC שמוגדרת בפרויקט מארח וזמינה כרשת משותפת מרכזית למשאבים שעומדים בדרישות בפרויקטים של שירותים שמצורפים אליה.

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

לפני שיוצרים טריגר Eventarc לניתוב אירועים לנקודת קצה פנימית של HTTP ברשת VPC, צריך ליצור קובץ מצורף לרשת שמקבל חיבורים באותה רשת ובאותו אזור שמכילים את שירות היעד של HTTP.

חיבור רשת הוא משאב אזורי שמאפשר לכם להעניק ליצרן הרשאה מפורשת להתחבר לרשת VPC של צרכן. כדי לפרסם אירועים, Eventarc משתמש בחיבור לרשת כדי ליצור חיבור לנקודת הקצה הפנימית של HTTP שמארחת ברשת VPC.

ההנחיות האלה מניחות שכבר יצרתם רשת VPC ותת-רשת, ופרסתם את שירות היעד של HTTP.

מידע נוסף זמין במאמר קבלת אירועים של Pub/Sub בנקודת קצה פנימית של HTTP ברשת VPC. במאמר הזה מוסבר איך לפרוס נקודת קצה פנימית של HTTP ברשת VPC ואיך לנתב אירועים של Pub/Sub לנקודת הקצה.

סוגי האירועים הנתמכים

אלה סוגי האירועים הנתמכים כשמנתבים אירועים לנקודת קצה פנימית של HTTP ברשת VPC:

  • אירועים ישירים – מופעלים על ידי אירוע שלא עובר תיווך, כמו עדכון של אובייקט בקטגוריה של Cloud Storage או הודעה שפורסמה בנושא Pub/Sub.

  • אירועים ביומני ביקורת של Cloud – מופעלים כשיומן נוצר באמצעות יומני ביקורת של Cloud.

  • אירועים של צד שלישי – מופעלים על ידי אירועים של ספק שאינו Google שמציע מקור Eventarc.

מגבלות ידועות

אלה הן מגבלות ידועות כשמנתבים אירועים לנקודת קצה פנימית של HTTP ברשת VPC:

  • אי אפשר ליצור יותר מטריגר Eventarc אחד לאותו שם DNS.

  • בכל פרויקט אפשר ליצור עד 100 טריגרים של Eventarc לנקודות קצה פנימיות של HTTP.

  • יש תמיכה רק במיקומי הטריגר הבאים של Eventarc:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

הכנה ליצירת טריגר

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

המסוף

  1. בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- או יוצרים Google Cloud אותו.

    כניסה לדף לבחירת הפרויקט

  2. מפעילים את Cloud Logging API ו-Eventarc API.

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

  3. אם רלוונטי, מפעילים את ממשק ה-API שקשור לאירועים הישירים. לדוגמה, כדי לראות אירועים של פונקציות Cloud Run, צריך להפעיל את cloudfunctions.googleapis.com.

  4. אם עדיין אין לכם חשבון שירות, אתם צריכים ליצור חשבון שירות בניהול המשתמש, ואז להקצות לו את התפקידים וההרשאות הנדרשים כדי ש-Eventarc יוכל לנהל אירועים בשירות היעד.

    1. במסוף Google Cloud , נכנסים לדף יצירת חשבון שירות.

      כניסה לדף Create service account

    2. בוחרים את הפרויקט הרצוי.

    3. כותבים שם בשדה Service account name. השדה Service account ID ימולא במסוף Google Cloud בהתאם לשם הזה.

      כותבים תיאור בשדה Service account description. לדוגמה, Service account for event trigger.

    4. לוחצים על Create and continue.

    5. כדי לספק גישה מתאימה, ברשימה Select a role בוחרים את תפקידי ניהול הזהויות והגישה (IAM) שרוצים להקצות לחשבון השירות. מידע נוסף זמין במאמר בנושא תפקידים והרשאות לנקודת קצה פנימית של HTTP ברשת VPC.

      כדי להוסיף עוד תפקידים, לוחצים על Add another role ומוסיפים אותם אחד אחרי השני.

    6. לוחצים על Continue.

    7. כדי לסיים את יצירת החשבון, לוחצים על סיום.

  5. אם יוצרים טריגר לאירועים ישירים מ-Cloud Storage, צריך להעניק לסוכן השירות של Cloud Storage את התפקיד Pub/Sub Publisher‏ (roles/pubsub.publisher):

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

      כניסה לדף IAM

    2. מסמנים את התיבה Include Google-provided role grants.

    3. בעמודה Principal, מחפשים את סוכן שירות Cloud Storage עם הטופס service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com, ולוחצים על Edit principal בשורה המתאימה.

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

    5. ברשימה Select a role, מסננים לפי Pub/Sub Publisher ואז בוחרים את התפקיד.

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

  6. אם ה-URI של נקודת הקצה הפנימית של ה-HTTP ברשת ה-VPC משתמש בשם ה-DNS הפנימי של שירות שאפשר לפתור באמצעות Cloud DNS, צריך להעניק את תפקיד DNS Peer (roles/dns.peer) בפרויקט המארח של ה-VPC לסוכן השירות של Eventarc.

    שימו לב: בהתאם לאופן שבו הגדרתם את רשת ה-VPC, יכול להיות שהפרויקט המארח של ה-VPC יהיה גם פרויקט הטריגר של Eventarc.

    1. בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים את פרויקט המארח של ה-VPC.

      כניסה לדף לבחירת הפרויקט

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

      כניסה לדף IAM

    3. מסמנים את התיבה Include Google-provided role grants.

    4. משנים או מוסיפים את סוכן השירות של Eventarc כגורם ראשי:

      • אם לסוכן השירות של Eventarc כבר יש תפקידים אחרים בפרויקט, מחפשים את השורה שכוללת את החשבון הראשי בטופס service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com, לוחצים על Edit principal בשורה הזו ואז על Add another role.

      • אם לסוכן השירות של Eventarc אין תפקידים קיימים בפרויקט, לוחצים על Grant Access ומזינים את כתובת האימייל בפורמט service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com.

      מחליפים את PROJECT_NUMBER ב Google Cloudמספר הפרויקט של טריגר Eventarc. אפשר לראות את מספר הפרויקט בדף Welcome במסוף Google Cloud או על ידי הרצת הפקודה הבאה:

      gcloud projects describe PROJECT_ID --format='value(projectNumber)'
    5. ברשימה Select a role, מסננים לפי DNS Peer ואז בוחרים את התפקיד.

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

gcloud

  1. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. מפעילים את Cloud Logging API,‏ Eventarc API ו-Eventarc Publishing API.

    gcloud services enable logging.googleapis.com \
      eventarc.googleapis.com \
      eventarcpublishing.googleapis.com
  3. אם רלוונטי, מפעילים את ממשק ה-API שקשור לאירועים. לדוגמה, כדי לראות אירועים של פונקציות Cloud Run, צריך להפעיל את cloudfunctions.googleapis.com.

  4. אם עדיין אין לכם חשבון שירות, אתם צריכים ליצור חשבון שירות בניהול המשתמשים ואז להקצות לו את התפקידים וההרשאות הנדרשים כדי ש-Eventarc יוכל לנהל אירועים בשירות היעד.

    1. יוצרים את חשבון השירות:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      מחליפים את SERVICE_ACCOUNT_NAME בשם של חשבון השירות. הוא צריך להכיל בין 6 ל-30 תווים, והוא יכול לכלול תווים אלפאנומריים קטנים ומקפים. אחרי שיוצרים חשבון שירות, אי אפשר לשנות את השם שלו.

    2. מקצים את התפקידים או ההרשאות הנדרשים לניהול זהויות והרשאות גישה (IAM). מידע נוסף זמין במאמר בנושא תפקידים והרשאות לנקודת קצה פנימית של HTTP ברשת VPC.

  5. אם ה-URI של נקודת הקצה הפנימית של ה-HTTP ברשת ה-VPC משתמש בשם ה-DNS הפנימי של שירות שאפשר לפתור באמצעות Cloud DNS, צריך להעניק את תפקיד DNS Peer (roles/dns.peer) בפרויקט המארח של ה-VPC לסוכן השירות של Eventarc.

    שימו לב: בהתאם לאופן שבו הגדרתם את רשת ה-VPC, יכול להיות שהפרויקט המארח של ה-VPC יהיה גם פרויקט הטריגר של Eventarc.

    gcloud projects add-iam-policy-binding VPC_HOST_PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com \
        --role=roles/dns.peer

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫VPC_HOST_PROJECT_ID: מזהה הפרויקט ב- Google Cloudשל פרויקט המארח של ה-VPC.
    • ‫PROJECT_NUMBER: Google Cloudמספר הפרויקט של טריגר Eventarc. אפשר לראות את מספר הפרויקט בדף Welcome במסוף Google Cloud או על ידי הפעלת הפקודה הבאה:
    gcloud projects describe PROJECT_ID --format='value(projectNumber)'
  6. אם אתם יוצרים טריגר לאירועים ישירים מ-Cloud Storage, צריך להעניק את התפקיד Pub/Sub Publisher (roles/pubsub.publisher) בפרויקט לסוכן השירות של Cloud Storage:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com \
        --role=roles/pubsub.publisher

יצירת טריגר

אפשר ליצור טריגר Eventarc באמצעות Google Cloud CLI או דרך מסוף Google Cloud .

המסוף

  1. נכנסים לדף Triggers ב-Eventarc במסוף Google Cloud .

    כניסה לדף Triggers

  2. לוחצים על Create trigger (יצירת ביטוי להפעלה).
  3. מקלידים Trigger name.

    זהו המזהה של הטריגר, והוא חייב להתחיל באות. הוא יכול להכיל עד 63 אותיות קטנות, מספרים או מקפים.

  4. בקטע Trigger type (סוג הטריגר), בוחרים באפשרות Google sources (מקורות של Google) או באפשרות Third-party (צד שלישי).
  5. בוחרים ספק אירועים.

    זהו השירות שממנו מגיעים האירועים. במקרה של מקור Google, הנתונים מגיעים ישירות או דרך יומני הביקורת שלו.

  6. בהתאם לסוג האירוע שאתם מעבירים, מבצעים אחת מהפעולות הבאות:
    1. אירועים ישירים – ברשימה סוג האירוע, מתוך האירועים הישירים, בוחרים סוג אירוע.
      1. כדי להגדיר אירועים ישירות ב-Cloud Pub/Sub, ברשימה Select a Cloud Pub/Sub topic, בוחרים נושא או מאשרים את ברירת המחדל None כדי ליצור נושא חדש.
      2. לאירועים ישירים של Cloud Storage, מציינים או מחפשים את המזהה הייחודי הגלובלי של הקטגוריה ב-Cloud Storage.
    2. אירועים ביומן ביקורת – ברשימה סוג האירוע, מתוך האירועים via Cloud Audit Logs, בוחרים סוג אירוע ואז בוחרים באחת מהאפשרויות הבאות:
      • כל משאב – זוהי ברירת המחדל, והיא כוללת משאבים שנוצרו באופן דינמי עם מזהים שנוצרו בזמן היצירה.
      • משאב ספציפי – צריך לציין את שם המשאב המלא.
      • תבנית נתיב – אתם יכולים לסנן משאבים באמצעות תבנית נתיב. לדוגמה, מקלידים projects/_/buckets/eventarc-bucket/objects/random.txt או projects/_/buckets/**/r*.txt.
    3. אירועים של צד שלישי – ברשימה ערוץ, בוחרים ערוץ ואז ברשימה סוג האירוע, בוחרים אירוע.

      מידע נוסף זמין במאמר בנושא יצירה של ערוץ ואחזור הפרטים שלו.

  7. אם האפשרות רלוונטית לסוג האירוע, ברשימה Event data content type (סוג התוכן של נתוני האירוע), בוחרים באפשרות application/json או application/protobuf כדי לציין את הקידוד של מטען הייעודי (payload) של האירוע.

    שימו לב שמטען ייעודי (payload) של אירוע בפורמט JSON גדול יותר ממטען ייעודי בפורמט Protobuf. הדבר הזה עשוי להשפיע על המהימנות, בהתאם ליעד של האירוע ולמגבלות שלו לגבי גודל האירוע. מידע נוסף זמין במאמר בנושא בעיות מוכרות.

  8. אם האפשרות רלוונטית לספק האירועים, לוחצים על הוספת מסנן ומציינים את הפרטים הבאים:
    1. בשדה Attribute 1 (מאפיין 1), בהתאם לאירוע הישיר שבחרתם, בוחרים מזהה משאב שיכול לשמש כמסנן אירועים.
    2. בוחרים אופרטור:
    3. בשדה ערך מאפיין 1, בהתאם לאופרטור שבחרתם, מקלידים את הערך המדויק או מחילים תבנית נתיב.
    4. אם יש שדה Attribute 2, צריך לציין את הערכים המתאימים.
  9. ברשימה Region, בוחרים מיקום.

    כדי להימנע מבעיות בביצועים ובמיקום אחסון הנתונים, המיקום צריך להיות זהה למיקום של Google Cloud השירות שמייצר אירועים.

    שימו לב: ביעד האירועים הזה יש תמיכה רק במיקומים הבאים:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-east1

    מידע נוסף זמין במאמר בנושא מיקומי Eventarc.

  10. בוחרים את חשבון השירות שיפעיל את השירות.

    אפשר גם ליצור חשבון שירות חדש.

    כאן מציינים את כתובת האימייל בחשבון השירות ב-IAM שמשויך לטריגר, ושקודם לכן הענקתם לו תפקידים ספציפיים שנדרשים על ידי Eventarc.

  11. ברשימה Event destination בוחרים באפשרות HTTP endpoint (internal).
    1. מציינים את ה-URI של היעד. זהו ה-URI של נקודת הקצה הפנימית של ה-HTTP ברשת ה-VPC שמקבלת את האירועים להפעלת הטריגר. ה-URI יכול להיות כתובת IP פנימית סטטית ברשת ה-VPC שאליה מצורף חיבור הרשת, או שם DNS פנימי של שירות שאפשר לפתור באמצעות Cloud DNS.

      אם נקודת הקצה של ה-HTTP משתמשת בשם DNS פנימי, Eventarc יוצר באופן אוטומטי אזורי DNS של peering ומעביר בקשות DNS לאזורי ה-DNS ברשת ה-VPC היעד. קישור בין רשתות שכנות (peering) ב-DNS מאפשר לשלוח בקשות לרשומות שמגיעות ממרחב שמות של אזור אחד לרשת VPC אחרת. מידע נוסף זמין במאמרים בנושא אזורי פירינג ויצירת אזור פירינג.

      שימו לב: אי אפשר ליצור יותר מטריגר אחד לאותו שם DNS.

    2. ברשימה Network attachment, בוחרים מזהה למשאב של חיבור הרשת. המזהה הזה נוצר אחרי שיוצרים קובץ מצורף לרשת. מידע נוסף זמין במאמר בנושא יצירת קבצים מצורפים לרשת.

      צירופי רשת מאפשרים לרשתות VPC של בעלים של שירות מנוהל ליזום חיבורים לרשתות VPC של צרכני שירות. ‫Eventarc משתמש בצירוף הרשת כדי ליצור חיבור לנקודת הקצה (endpoint) הפנימית של HTTP שמארחת ברשת ה-VPC של הצרכן ולפרסם אירועים.

      כשיוצרים קובץ מצורף לרשת, אפשר לאשר במפורש חיבור באמצעות רשימות של יצרנים שאושרו או נדחו. בכל מקרה, Eventarc יכול לעדכן את רשימת היצרנים שאושרו בקובץ מצורף לרשת עם מזהה הפרויקט המתאים, בלי שתצטרכו להתערב.

  12. לוחצים על יצירה.
  13. אחרי שיוצרים טריגר, אי אפשר לשנות את המסננים של מקור האירועים. במקום זאת, אפשר ליצור טריגר חדש ולמחוק את הטריגר הקודם. מידע נוסף זמין במאמר בנושא ניהול טריגרים.

gcloud

כדי ליצור טריגר, מריצים gcloud eventarc triggers createפקודה עם דגלים נדרשים ואופציונליים.

אירועים ישירים

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-http-endpoint-uri=ENDPOINT_URI \
    --network-attachment=NETWORK_ATTACHMENT_ID \
    --event-filters="type=EVENT_FILTER_TYPE" \
    --event-filters="COLLECTION_ID=RESOURCE_ID" \
    --event-filters-path-pattern="COLLECTION_ID=PATH_PATTERN" \
    --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"

מחליפים את מה שכתוב בשדות הבאים:

  • ‫TRIGGER: המזהה של הטריגר או מזהה מלא.
  • ‫LOCATION: המיקום של טריגר Eventarc. אפשר גם להגדיר את המאפיין eventarc/location, למשל gcloud config set eventarc/location us-central1.

    כדי למנוע בעיות בביצועים ובמיקום אחסון הנתונים, המיקום צריך להיות זהה למיקום של Google Cloud השירות שמייצר את האירועים.

    שימו לב: ביעד האירועים הזה יש תמיכה רק במיקומים הבאים:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

    מידע נוסף זמין במאמר בנושא מיקומי Eventarc.

  • ‫ENDPOINT_URI: ה-URI של נקודת הקצה הפנימית של HTTP ברשת ה-VPC שמקבלת את האירועים להפעלת הטריגר. ה-URI יכול להיות כתובת IP פנימית סטטית ברשת ה-VPC שאליה מצורף מחבר הרשת, או שם DNS פנימי של שירות שאפשר לבצע לו רזולוציה באמצעות Cloud DNS.

    אם נקודת הקצה של ה-HTTP משתמשת בשם DNS פנימי, Eventarc יוצר באופן אוטומטי אזורי DNS של שותפות ומעביר בקשות DNS לאזורי ה-DNS ברשת ה-VPC של היעד. קישור בין רשתות שכנות (peering) ב-DNS מאפשר לשלוח בקשות לרשומות שמגיעות ממרחב שמות של אזור אחד לרשת VPC אחרת. מידע נוסף זמין במאמרים בנושא אזורי פירינג ויצירת אזור פירינג.

    שימו לב: אי אפשר ליצור יותר מטריגר אחד לאותו שם DNS.

  • ‫NETWORK_ATTACHMENT_ID: מזהה ייחודי של משאב הצירוף לרשת. המזהה נוצר אחרי שיוצרים קובץ מצורף לרשת. מידע נוסף זמין במאמר יצירת קבצים מצורפים לרשת.

    מחברי רשת מאפשרים לרשתות VPC של בעלים של שירותים מנוהלים ליזום חיבורים לרשתות VPC של צרכני שירותים. ‫Eventarc משתמש בחיבור לרשת כדי ליצור חיבור לנקודת הקצה (endpoint) הפנימית של HTTP שמארחת ברשת ה-VPC של הצרכן ולפרסם אירועים.

    כשיוצרים קובץ מצורף לרשת, אפשר לאשר באופן מפורש חיבור באמצעות רשימות של יצרנים שאושרו או נדחו. בכל מקרה, Eventarc יכול לעדכן את רשימת היצרנים שאושרו של קובץ מצורף לרשת עם מזהה הפרויקט המתאים, בלי שתצטרכו לעשות כלום.

  • ‫EVENT_FILTER_TYPE: המזהה של האירוע. אירוע נוצר כשקריאה ל-API של השיטה מצליחה. בפעולות ארוכות טווח, האירוע נוצר רק בסוף הפעולה, ורק אם הפעולה בוצעה בהצלחה. רשימת סוגי האירועים הישירים הנתמכים

  • ‫COLLECTION_ID (אופציונלי): רכיב resource שיכול לשמש כמסנן אירועים. לדוגמה, בפונקציות Cloud Run, הרכיב הזה הוא function.

  • ‫RESOURCE_ID: המזהה של המשאב שמשמש כערך הסינון של האוסף המשויך. מידע נוסף זמין במאמר מזהה משאב.

  • ‫PATH_PATTERN: דפוס הנתיב שרוצים להחיל כשמסננים את המשאב.

  • ‫SERVICE_ACCOUNT_NAME: השם של חשבון השירות שמנוהל על ידי המשתמש.

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .

הערות:

  • חובה להשתמש בדגל --event-filters="type=EVENT_FILTER_TYPE". אם לא מוגדר מסנן אירועים אחר, המערכת תתאים אירועים לכל המשאבים.
  • אי אפשר לשנות את EVENT_FILTER_TYPE אחרי שיוצרים אותו. כדי לשנות את EVENT_FILTER_TYPE, צריך ליצור טריגר חדש ולמחוק את הטריגר הקודם.
  • לכל טריגר יכולים להיות כמה מסנני אירועים, שמופרדים בפסיקים בדגל אחד --event-filters=[ATTRIBUTE=VALUE,...] , או שאפשר לחזור על הדגל כדי להוסיף עוד מסננים. רק אירועים שתואמים לכל המסננים נשלחים ליעד. אין תמיכה בתווים כלליים לחיפוש ובביטויים רגולריים. עם זאת, כשמשתמשים בדגל --event-filters-path-pattern, אפשר להגדיר דפוס של נתיב למשאב.
  • הדגל --service-account משמש לציון כתובת האימייל בחשבון השירות ב-IAM שמשויך לטריגר.

דוגמה:

gcloud eventarc triggers create helloworld-trigger \
    --location=us-central1 \
    --destination-http-endpoint-uri=http://my-vm.us-central1-a.c.my-project.internal \
    --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment-name" \
    --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
    --service-account=my-service-account@my-project.iam.gserviceaccount.com

אירועים ביומן הביקורת

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-http-endpoint-uri=ENDPOINT_URI \
    --network-attachment=NETWORK_ATTACHMENT_ID \
    --event-filters="type=google.cloud.audit.log.v1.written" \
    --event-filters="serviceName=SERVICE_NAME" \
    --event-filters="methodName=METHOD_NAME" \
    --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"

מחליפים את מה שכתוב בשדות הבאים:

  • ‫TRIGGER: המזהה של הטריגר או מזהה מלא.
  • ‫LOCATION: המיקום של טריגר Eventarc. אפשר גם להגדיר את המאפיין eventarc/location, למשל gcloud config set eventarc/location us-central1.

    כדי למנוע בעיות בביצועים ובמיקום אחסון הנתונים, המיקום צריך להיות זהה למיקום של Google Cloud השירות שמייצר את האירועים. המיקומים הנתמכים:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

    מידע נוסף זמין במאמר בנושא מיקומי Eventarc.

  • ‫ENDPOINT_URI: ה-URI של נקודת הקצה הפנימית של HTTP ברשת ה-VPC שמקבלת את האירועים להפעלת הטריגר. ה-URI יכול להיות כתובת IP פנימית סטטית ברשת ה-VPC שאליה מצורף מחבר הרשת, או שם DNS פנימי של שירות שאפשר לבצע לו רזולוציה באמצעות Cloud DNS.

    אם נקודת הקצה של ה-HTTP משתמשת בשם DNS פנימי, Eventarc יוצר באופן אוטומטי אזורי DNS של שותפות ומעביר בקשות DNS לאזורי ה-DNS ברשת ה-VPC של היעד. קישור בין רשתות שכנות (peering) ב-DNS מאפשר לשלוח בקשות לרשומות שמגיעות ממרחב שמות של אזור אחד לרשת VPC אחרת. מידע נוסף זמין במאמרים בנושא אזורי פירינג ויצירת אזור פירינג.

    שימו לב: אי אפשר ליצור יותר מטריגר אחד לאותו שם DNS.

  • ‫NETWORK_ATTACHMENT_ID: מזהה ייחודי של משאב הצירוף לרשת. המזהה נוצר אחרי שיוצרים קובץ מצורף לרשת. מידע נוסף זמין במאמר יצירת קבצים מצורפים לרשת.

    מחברי רשת מאפשרים לרשתות VPC של בעלים של שירותים מנוהלים ליזום חיבורים לרשתות VPC של צרכני שירותים. ‫Eventarc משתמש בחיבור לרשת כדי ליצור חיבור לנקודת הקצה (endpoint) הפנימית של HTTP שמארחת ברשת ה-VPC של הצרכן ולפרסם אירועים.

    כשיוצרים קובץ מצורף לרשת, אפשר לאשר באופן מפורש חיבור באמצעות רשימות של יצרנים שאושרו או נדחו. בכל מקרה, Eventarc יכול לעדכן את רשימת היצרנים שאושרו של קובץ מצורף לרשת עם מזהה הפרויקט המתאים, בלי שתצטרכו לעשות כלום.

  • ‫SERVICE_NAME: המזהה שלGoogle Cloud השירות. רשימת סוגי האירועים הנתמכים ביומן הביקורת

  • ‫METHOD_NAME: המזהה של הפעולה. רשימת סוגי האירועים הנתמכים ביומן הביקורת

  • ‫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,...] , או שאפשר לחזור על הדגל כדי להוסיף עוד מסננים. רק אירועים שתואמים לכל המסננים נשלחים ליעד. אין תמיכה בתווים כלליים לחיפוש ובביטויים רגולריים. עם זאת, כשמשתמשים בדגל --event-filters-path-pattern, אפשר להגדיר דפוס של נתיב למשאב.
  • אחרי שיוצרים טריגר, אי אפשר לשנות את סוג המסנן של האירועים. כדי להגדיר סוג אחר של אירוע, צריך ליצור טריגר חדש.
  • הדגל --service-account משמש לציון כתובת האימייל בחשבון השירות ב-IAM שמשויך לטריגר.

דוגמה:

gcloud eventarc triggers create helloworld-trigger \
    --location=us-central1 \
    --destination-http-endpoint-uri=http://10.10.10.2 \
    --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment" \
    --event-filters="type=google.cloud.audit.log.v1.written" \
    --event-filters="serviceName=eventarc.googleapis.com" \
    --event-filters="methodName=google.cloud.eventarc.v1.Eventarc.GetTrigger" \
    --event-filters="resourceName=projects/my-project/locations/us-central1/triggers/my-trigger" \
    --service-account=my-service-account@my-project.iam.gserviceaccount.com

אירועים של צד שלישי

gcloud eventarc triggers create TRIGGER \
    --location=LOCATION \
    --destination-http-endpoint-uri=ENDPOINT_URI \
    --network-attachment=NETWORK_ATTACHMENT_ID \
    --event-filters="type=EVENT_FILTER_TYPE" \
    --channel=CHANNEL_NAME \
    --project=PROJECT_ID \
    --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"

מחליפים את מה שכתוב בשדות הבאים:

  • ‫TRIGGER: המזהה של הטריגר או מזהה מלא.
  • ‫LOCATION: המיקום של טריגר Eventarc. אפשר גם להגדיר את המאפיין eventarc/location, למשל gcloud config set eventarc/location us-central1.

    כדי למנוע בעיות בביצועים ובמיקום אחסון הנתונים, המיקום צריך להיות זהה למיקום של Google Cloud השירות שמייצר את האירועים.

    שימו לב: ביעד האירועים הזה יש תמיכה רק במיקומים הבאים:

    • asia-east1
    • europe-north1
    • europe-west1
    • us-central1
    • us-east1

    מידע נוסף זמין במאמר בנושא מיקומי Eventarc.

  • ‫ENDPOINT_URI: ה-URI של נקודת הקצה הפנימית של HTTP ברשת ה-VPC שמקבלת את האירועים להפעלת הטריגר. ה-URI יכול להיות כתובת IP פנימית סטטית ברשת ה-VPC שאליה מצורף מחבר הרשת, או שם DNS פנימי של שירות שאפשר לבצע לו רזולוציה באמצעות Cloud DNS.

    אם נקודת הקצה של ה-HTTP משתמשת בשם DNS פנימי, Eventarc יוצר באופן אוטומטי אזורי DNS של שותפות ומעביר בקשות DNS לאזורי ה-DNS ברשת ה-VPC של היעד. קישור בין רשתות שכנות (peering) ב-DNS מאפשר לשלוח בקשות לרשומות שמגיעות ממרחב שמות של אזור אחד לרשת VPC אחרת. מידע נוסף זמין במאמרים בנושא אזורי פירינג ויצירת אזור פירינג.

    שימו לב: אי אפשר ליצור יותר מטריגר אחד לאותו שם DNS.

  • ‫NETWORK_ATTACHMENT_ID: מזהה ייחודי של משאב הצירוף לרשת. המזהה נוצר אחרי שיוצרים קובץ מצורף לרשת. מידע נוסף זמין במאמר יצירת קבצים מצורפים לרשת.

    מחברי רשת מאפשרים לרשתות VPC של בעלים של שירותים מנוהלים ליזום חיבורים לרשתות VPC של צרכני שירותים. ‫Eventarc משתמש בחיבור לרשת כדי ליצור חיבור לנקודת הקצה (endpoint) הפנימית של HTTP שמארחת ברשת ה-VPC של הצרכן ולפרסם אירועים.

    כשיוצרים קובץ מצורף לרשת, אפשר לאשר באופן מפורש חיבור באמצעות רשימות של יצרנים שאושרו או נדחו. בכל מקרה, Eventarc יכול לעדכן את רשימת היצרנים שאושרו של קובץ מצורף לרשת עם מזהה הפרויקט המתאים, בלי שתצטרכו לעשות כלום.

  • ‫EVENT_FILTER_TYPE: סוג האירוע שנתמך על ידי הספק.

  • ‫CHANNEL_NAME: שם לערוץ. למידע נוסף, קראו את המאמר יצירה של ערוץ ואחזור הפרטים שלו.

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .

  • ‫SERVICE_ACCOUNT_NAME: השם של חשבון השירות שמנוהל על ידי המשתמש.

הערות:

  • חובה להשתמש בדגל --event-filters="type=EVENT_FILTER_TYPE". אם לא מוגדר מסנן אירועים אחר, המערכת תתאים אירועים לכל המשאבים.
  • אי אפשר לשנות את EVENT_FILTER_TYPE אחרי שיוצרים אותו. כדי לשנות את EVENT_FILTER_TYPE, צריך ליצור טריגר חדש ולמחוק את הטריגר הקודם.
  • לכל טריגר יכולים להיות כמה מסנני אירועים, שמופרדים בפסיקים בדגל אחד --event-filters=[ATTRIBUTE=VALUE,...] , או שאפשר לחזור על הדגל כדי להוסיף עוד מסננים. רק אירועים שתואמים לכל המסננים נשלחים ליעד. אין תמיכה בתווים כלליים לחיפוש ובביטויים רגולריים.
  • הדגל --service-account משמש לציון כתובת האימייל בחשבון השירות ב-IAM שמשויך לטריגר.

דוגמה:

gcloud eventarc triggers create helloworld-trigger \
    --location=us-central1 \
    --destination-http-endpoint-uri=http://my-vm.us-central1-a.c.my-project.internal \
    --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment-name" \
    --event-filters="type=third-party-event-type" \
    --channel=my-channel \
    --project=my-project-ID \
    --service-account=my-service-account@my-project.iam.gserviceaccount.com

הצגת טריגר

אפשר לאשר את יצירת הטריגר באמצעות רשימת הטריגרים של Eventarc ב-Google Cloud CLI או במסוף Google Cloud .

המסוף

  1. נכנסים לדף Triggers ב-Eventarc במסוף Google Cloud .

    כניסה לדף Triggers

    בדף הזה מפורטים הטריגרים בכל המיקומים, כולל פרטים כמו שמות, אזורים, ספקי אירועים, יעדים ועוד.

  2. כדי לסנן את הטריגרים:

    1. לוחצים על מסנן או על השדה הפעלת מסנן.
    2. ברשימה Properties, בוחרים אפשרות לסינון הטריגרים.

    אפשר לבחור נכס אחד או להשתמש באופרטור הלוגי OR כדי להוסיף עוד נכסים.

  3. כדי למיין את הטריגרים, לוחצים על מיון לצד כותרת של עמודה נתמכת.

gcloud

מריצים את הפקודה הבאה כדי להציג את הטריגרים:

gcloud eventarc triggers list --location=-

הפקודה הזו מציגה רשימה של הטריגרים בכל המיקומים, וכוללת פרטים כמו שמות, סוגים, יעדים וסטטוסים.

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