העברת אירועים של Cloud Deploy ל-Cloud Run

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

‫Eventarc מעביר אירועים למקבל האירועים בפורמט CloudEvents באמצעות בקשת HTTP.

ההוראות האלה מסבירות איך להגדיר ניתוב אירועים לשירות Cloud Run שמופעל על ידי אירועCloud Deploy ישיר. פרטים נוספים זמינים ברשימה של אירועים ישירים נתמכים.

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

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

המסוף

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

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

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

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

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

  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) שרוצים להקצות לחשבון השירות עבור הפעלות מאומתות או לא מאומתות. מידע נוסף זמין במאמר תפקידים והרשאות ליעדים ב-Cloud Run.

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

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

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

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 שקשור לאירועים הישירים. לדוגמה, כדי להפעיל את האפשרות clouddeploy.googleapis.com לאירועים, צריך להזין את הערך Cloud Deploy events.

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

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

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

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

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

יצירת טריגר

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

המסוף

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

    כניסה לדף Triggers

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

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

  4. בשדה Trigger type, בוחרים באפשרות Google sources.
  5. ברשימה Event provider בוחרים באפשרות Cloud Deploy.

    שימו לב: יכול להיות שבשם ספק האירועים שמופיע בGoogle Cloud מסמכי התיעוד המשויכים לא מופיעה הקידומת Cloud או Google Cloud. לדוגמה, במסוף, Memorystore for Redis נקרא Google Cloud Memorystore for Redis.

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

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

  8. ברשימה Region, בוחרים את אותו אזור כמוGoogle Cloud השירות שמייצר את האירועים.

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

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

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

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

  11. ברשימה Event destination, בוחרים באפשרות Cloud Run.
  12. בוחרים שירות.

    זהו שם השירות שמקבל את האירועים להפעלת הטריגר. השירות צריך להיות באותו פרויקט כמו הטריגר, והוא יקבל אירועים כבקשות HTTP POST שנשלחות לנתיב של כתובת ה-URL הבסיסית שלו (/), בכל פעם שהאירוע נוצר.

  13. אפשר גם לציין את נתיב כתובת ה-URL של השירות כדי לשלוח אליו את הבקשה הנכנסת.

    זהו הנתיב היחסי בשירות היעד שאליו יישלחו האירועים של הטריגר. לדוגמה: /, /route, route, route/subroute.

  14. אפשר גם לבטל את הסימון של התיבה הפעלת ניסיון חוזר במקרה של כשל כדי לציין ניסיון מסירה יחיד ללא ניסיונות חוזרים. אחרת, התנהגות ברירת המחדל היא ניסיונות חוזרים אם ניסיון המסירה נכשל. מידע נוסף זמין במאמר בנושא ניסיון חוזר לשליחת אירועים.
  15. אפשר גם ללחוץ על הוספת תווית. תוויות הן צמדי מפתח/ערך שעוזרים לכם לארגן אתGoogle Cloud המשאבים. מידע נוסף זמין במאמר מהן תוויות?
  16. לוחצים על יצירה.
  17. אחרי שיוצרים טריגר, אי אפשר לשנות את המסננים של מקור האירוע. במקום זאת, צריך ליצור טריגר חדש ולמחוק את הטריגר הישן. מידע נוסף זמין במאמר בנושא ניהול טריגרים.

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=EVENT_FILTER_TYPE" \
      --event-filters="COLLECTION_ID=RESOURCE_ID" \
      --event-filters-path-pattern="COLLECTION_ID=PATH_PATTERN" \
      --event-data-content-type="EVENT_DATA_CONTENT_TYPE" \
      --max-retry-attempts=1 \
      --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"

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

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

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

  • DESTINATION_RUN_SERVICE: השם של שירות Cloud Run שמקבל את האירועים של הטריגר. השירות יכול להיות בכל אחד מהמיקומים הנתמכים של Cloud Run, והוא לא צריך להיות באותו מיקום כמו הטריגר. עם זאת, השירות צריך להיות באותו פרויקט כמו הטריגר והוא יקבל אירועים כבקשות HTTP POST שנשלחות לנתיב של כתובת ה-URL הבסיסית שלו (/), בכל פעם שהאירוע נוצר.
  • DESTINATION_RUN_REGION: (אופציונלי) המיקום של Cloud Run שבו נמצא שירות היעד של Cloud Run. אם לא מציינים זאת, המערכת מניחה שהשירות נמצא באותו אזור כמו הטריגר.
  • EVENT_FILTER_TYPE: המזהה של האירוע. אירוע נוצר כשקריאה ל-API של השיטה מצליחה. בפעולות ארוכות טווח, האירוע נוצר רק בסוף הפעולה, ורק אם הפעולה בוצעה בהצלחה. רשימה של סוגי האירועים הנתמכים מופיעה במאמר בנושא סוגי אירועים של Google שנתמכים על ידי Eventarc.
  • COLLECTION_ID (אופציונלי): רכיב resource שיכול לשמש כמסנן אירועים, ואחת מהאפשרויות הבאות:
    • automation
    • customtargettype
    • deliverypipeline
    • release
    • rollout
    • target
  • RESOURCE_ID: המזהה של המשאב שמשמש כערך הסינון של האוסף המשויך. מידע נוסף זמין במאמר מזהה משאב.
  • PATH_PATTERN: תבנית הנתיב שרוצים להחיל כשמסננים את המשאב.
  • EVENT_DATA_CONTENT_TYPE: (אופציונלי) הקידוד של מטען הייעודי של האירוע. הערך יכול להיות application/json או application/protobuf. קידוד ברירת המחדל הוא application/json.

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

  • 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, אפשר להגדיר דפוס נתיב של משאב.
  • אפשר גם לציין ניסיון אחד למסירת אירוע ללא ניסיונות חוזרים באמצעות הדגל --max-retry-attempts. הערך החוקי היחיד הוא 1. אם לא מציינים את הדגל, המערכת תנסה שוב לבצע את הפעולה לפי ההתנהגות הרגילה. מידע נוסף זמין במאמר בנושא ניסיון חוזר לשליחת אירועים.
  • הדגל --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.deploy.deliveryPipeline.v1.created" \
      --event-filters-path-pattern="deliverypipeline=my-deliverypipeline-*" \
      --service-account=${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com

הפקודה הזו יוצרת טריגר בשם helloworld-trigger לאירוע שמזוהה כ-google.cloud.deploy.deliveryPipeline.v1.created, ומתאימה לאירועים עם מזהי deliverypipeline שמתחילים ב-my-deliverypipeline-.

Terraform

אפשר ליצור טריגר ליעד ב-Cloud Run באמצעות Terraform. פרטים נוספים זמינים במאמר יצירת טריגר באמצעות Terraform.

הצגת טריגר

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

המסוף

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

    כניסה לדף Triggers

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

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

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

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

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

gcloud

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

gcloud eventarc triggers list --location=-

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

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