ניהול טריגרים

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

הצגת רשימת הטריגרים

אתם יכולים להציג, לסנן ולמיין את הטריגרים בכל המיקומים.

המסוף

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

    כניסה לדף Triggers

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

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

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

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

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

    אפשר למיין רק חלק מהעמודות, למשל Name,‏ Region או Event channel.

gcloud

gcloud eventarc triggers list --location=-

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

REST

כדי להציג רשימה של טריגרים בפרויקט ובמיקום מסוימים, משתמשים ב-method‏ projects.locations.triggers.list.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud.
  • ‫LOCATION: האזור שבו נוצרים הטריגרים, לדוגמה us-central1.

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אם הפעולה בוצעה ללא שגיאות, גוף התגובה מכיל מופעים של Trigger והתגובה אמורה להיות דומה לדוגמה הבאה:

{
  "triggers": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
      "uid": "d700773a-698b-47b2-a712-2ee10b690062",
      "createTime": "2022-12-06T22:44:04.744001514Z",
      "updateTime": "2022-12-06T22:44:09.116459550Z",
      "eventFilters": [
        {
          "attribute": "type",
          "value": "google.cloud.pubsub.topic.v1.messagePublished"
        }
      ],
      "serviceAccount": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
      "destination": {
        "workflow": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME"
      },
      "transport": {
        "pubsub": {
          "topic": "projects/PROJECT_ID/topics/TOPIC_ID",
          "subscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID"
        }
      }
    },
    {
      object (Trigger)
    }
  ],
  "nextPageToken": string,
  "unreachable": [
    string
  ]
}

תיאור הטריגר

אתם יכולים לתאר טריגר במיקום ספציפי.

המסוף

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

    כניסה לדף Triggers

  2. ברשימת הטריגרים, לוחצים על הטריגר שרוצים לראות את הפרטים שלו.

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

אם יעד האירוע הוא Cloud Run, מצוין אם מדיניות הניסיונות החוזרים מופעלת או מושבתת.

gcloud

gcloud eventarc triggers describe TRIGGER \
    --location=LOCATION

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

  • ‫TRIGGER: המזהה של הטריגר או מזהה מלא.
  • ‫LOCATION: המיקום של הטריגר של Eventarc.

הפקודה הזו מחזירה מידע על הטריגר, בדומה לזה:

  createTime: '2023-03-16T13:40:44.889670204Z'
  destination:
    cloudRun:
      path: /
      region: us-central1
      service: hello
  eventDataContentType: application/protobuf
  eventFilters:
  - attribute: serviceName
    value: cloudscheduler.googleapis.com
  - attribute: methodName
    value: google.cloud.scheduler.v1.CloudScheduler.DeleteJob
  - attribute: type
    value: google.cloud.audit.log.v1.written
  name: projects/project-name/locations/us-central1/triggers/name-of-trigger
  serviceAccount: project-number-compute@developer.gserviceaccount.com
  transport:
    pubsub:
      subscription: projects/project-name/subscriptions/eventarc-us-central1-name-of-trigger-sub-034
      topic: projects/project-name/topics/eventarc-us-central1-name-of-trigger-931

REST

כדי לתאר טריגר בפרויקט ובמיקום נתונים, משתמשים ב-method‏ projects.locations.triggers.get.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫TRIGGER_NAME: שם הטריגר שרוצים לתאר.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud.
  • ‫LOCATION: האזור שבו נוצר הטריגר, לדוגמה us-central1.

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אם הפעולה בוצעה ללא שגיאות, גוף התשובה יכיל מופע של Trigger, בדומה לדוגמה הבאה:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
  "uid": "d700773a-698b-47b2-a712-2ee10b690062",
  "createTime": "2022-12-06T22:44:04.744001514Z",
  "updateTime": "2022-12-06T22:44:09.116459550Z",
  "eventFilters": [
    {
      "attribute": "type",
      "value": "google.cloud.pubsub.topic.v1.messagePublished"
    }
  ],
  "serviceAccount": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
  "destination": {
    "workflow": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME"
  },
  "transport": {
    "pubsub": {
      "topic": "projects/PROJECT_ID/topics/TOPIC_ID",
      "subscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID"
    }
  }
}

אם התנאי של הטריגר מצביע על בעיה בנושא Pub/Sub, קראו את המאמר הטריגר לא מעביר אירועים.

עדכון טריגר

אפשר לעדכן טריגר ליעדים ב-Cloud Run, ב-Google Kubernetes Engine ‏ (GKE) וב-Workflows. בהתאם ליעד, אפשר לעדכן שדות ספציפיים.

המסוף

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

    כניסה לדף Triggers

  2. ברשימת הטריגרים, לוחצים על הטריגר שרוצים לראות את הפרטים שלו.

  3. בדף Trigger details, לוחצים על Edit.

  4. עורכים את השדות לפי הצורך ולוחצים על שמירה.

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

gcloud

Cloud Run

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --event-filters=NEW_EVENT_FILTERS \
    --service-account=NEW_SERVICE_ACCOUNT \
    --destination-run-region=NEW_REGION \
    --destination-run-service=NEW_SERVICE \
    --destination-run-path=NEW_PATH \
    --event-data-content-type="NEW_EVENT_DATA_TYPE" \
    --max-retry-attempts=1

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

  • ‫TRIGGER: המזהה של הטריגר או מזהה מלא.
  • ‫LOCATION: המיקום של הטריגר של Eventarc.

אפשר לעדכן את הפרטים הבאים:

  • ‫NEW_EVENT_FILTERS: המסנן שמשמש להגדרת ניתוב האירועים של הטריגר. לדוגמה, אפשר לעדכן את methodName=storage.objects.create ל-methodName=storage.objects.delete. שימו לב שאחרי שיוצרים טריגר, אי אפשר לשנות את מסנן האירועים type. כדי להגדיר סוג אירוע אחר, צריך ליצור טריגר חדש.
  • ‫NEW_SERVICE_ACCOUNT: כתובת האימייל של חשבון השירות בניהול זהויות והרשאות גישה (IAM) שמשויך לטריגר.
  • ‫NEW_REGION: האזור שבו נמצא שירות היעד של Cloud Run.
  • ‫NEW_SERVICE: השם של שירות Cloud Run שמקבל את האירועים של הטריגר.
  • ‫NEW_PATH: הנתיב היחסי בשירות Cloud Run שאליו צריך לשלוח את האירועים של הטריגר.
  • ‫NEW_EVENT_DATA_TYPE: הקידוד של המטען הייעודי (payload) של האירוע. בהתאם לספק האירוע, הקידוד יכול להיות application/json או application/protobuf.
  • אפשר גם להשתמש בדגל --max-retry-attempts כדי לציין ניסיון מסירה יחיד של הודעת אירוע ללא ניסיונות חוזרים. הערך התקין היחיד הוא 1. הדגל הזה רלוונטי רק ליעדים של Cloud Run (כולל פונקציות Cloud Run). כדי למחוק את ההגדרה, משתמשים בדגל --clear-max-retry-attempts. מידע נוסף מופיע במאמר ניסיון חוזר של אירועים.

לדוגמה, כדי לעדכן את חשבון השירות של טריגר:

gcloud eventarc triggers update my-cloud-run-trigger \
    --service-account=new-serviceaccount@${PROJECT_ID}.iam.gserviceaccount.com

הפקודה הזו מעדכנת את חשבון השירות של טריגר בשם my-cloud-run-trigger ל-new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com.

GKE

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

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --destination-gke-namespace=NEW_NAMESPACE \
    --destination-gke-service=NEW_SERVICE \
    --destination-gke-path=NEW_PATH \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

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

  • ‫TRIGGER: המזהה של הטריגר או מזהה מלא.
  • ‫LOCATION: המיקום של הטריגר של Eventarc.

אפשר לעדכן את הפרטים הבאים:

  • ‫NEW_NAMESPACE: מרחב השמות שבו פועל שירות היעד של GKE.
  • ‫NEW_SERVICE: השם של שירות GKE שמקבל את האירועים של הטריגר.
  • ‫NEW_PATH: הנתיב היחסי בשירות GKE של היעד, שאליו צריך לשלוח את האירועים של הטריגר.
  • ‫NEW_EVENT_DATA_TYPE: הקידוד של המטען הייעודי (payload) של האירוע. בהתאם לספק האירוע, הקידוד יכול להיות application/json או application/protobuf.

לדוגמה, כדי לעדכן את שירות מקבל האירועים של טריגר:

gcloud eventarc triggers update my-gke-trigger \
    --destination-gke-service=helloworld-events

הפקודה הזו מעדכנת את שירות מקלט האירועים של טריגר בשם my-gke-trigger לשירות GKE בשם helloworld-events.

Workflows

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --event-filters=NEW_EVENT_FILTERS \
    --service-account=NEW_SERVICE_ACCOUNT \
    --destination-workflow=NEW_DESTINATION_WORKFLOW \
    --destination-workflow-location=NEW_DESTINATION_WORKFLOW_LOCATION \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

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

  • ‫TRIGGER: המזהה של הטריגר או מזהה מלא.
  • ‫LOCATION: המיקום של הטריגר של Eventarc.

אפשר לעדכן את הפרטים הבאים:

  • ‫NEW_EVENT_FILTERS: המסנן שמשמש להגדרת ניתוב האירועים של הטריגר. לדוגמה, אפשר לעדכן את methodName=storage.objects.create ל-methodName=storage.objects.delete. שימו לב שאחרי שיוצרים טריגר, אי אפשר לשנות את מסנן האירועים type. כדי להגדיר סוג אירוע אחר, צריך ליצור טריגר חדש.
  • ‫NEW_SERVICE_ACCOUNT: כתובת האימייל של חשבון השירות בניהול זהויות והרשאות גישה (IAM) שמשויך לטריגר.
  • ‫NEW_DESTINATION_WORKFLOW: המזהה של תהליך העבודה שנפרס ומקבל את האירועים מהטריגר.
  • ‫NEW_DESTINATION_WORKFLOW_LOCATION: המיקום שבו נפרס תהליך העבודה של היעד.
  • ‫NEW_EVENT_DATA_TYPE: הקידוד של המטען הייעודי (payload) של האירוע. בהתאם לספק האירוע, הקידוד יכול להיות application/json או application/protobuf.

לדוגמה, כדי לעדכן את חשבון השירות של טריגר:

gcloud eventarc triggers update my-workflows-trigger \
    --service-account=new-serviceaccount@${PROJECT_ID}.iam.gserviceaccount.com

הפקודה הזו מעדכנת את חשבון השירות של טריגר בשם my-workflows-trigger ל-new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com.

REST

כדי לעדכן טריגר קיים, משתמשים ב-method‏ projects.locations.triggers.patch. אפשר גם להשתמש בפרמטרים של שאילתה updateMask כדי לציין רשימה של שדות לעדכון.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫TRIGGER_NAME: שם הטריגר שרוצים לעדכן.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud.
  • ‫LOCATION: האזור שבו נוצר הטריגר, לדוגמה us-central1.
  • ‫SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: אופציונלי. כתובת האימייל של חשבון השירות לניהול זהויות והרשאות גישה (IAM) שמשויכת לטריגר.
  • ‫DESTINATION: אופציונלי. מציין את היעד שאליו צריך לשלוח את האירוע, ומכיל מופע של Destination. לדוגמה:

    {"destination": {"workflow": "projects/my-project/locations/us-central1/workflows/my-first-workflow"}}

    או

    {"destination": {"cloudRun": {"service": "hello-world", "region": "us-central1"}}}

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

    {"eventFilters": [{"attribute": "methodName", "value": "storage.buckets.create"}, {"attribute": "type", "value": "google.cloud.audit.log.v1.written"}, {"attribute": "serviceName", "value": "storage.googleapis.com"}]}

    שימו לב שאי אפשר לעדכן את סוגי השיטות של יעדי GKE.

  • ‫CONTENT_TYPE: אופציונלי. הקידוד של המטען הייעודי (payload) של האירוע. בהתאם לספק האירוע, הקידוד יכול להיות application/json או application/protobuf.
  • ‫RETRY_POLICY: אופציונלי. מספר הניסיונות המקסימלי לשליחת אירועים. הערך התקין הוא 1, שמציין ניסיון שליחה אחד בלי ניסיונות חוזרים, והוא רלוונטי רק ליעדים של Cloud Run (כולל פונקציות Cloud Run). לדוגמה:

    {"retryPolicy": {"maxAttempts": 1}}

    מידע נוסף זמין במאמר ניסיון חוזר של אירועים.
  • ‫UPDATE_FIELDS: אופציונלי. רשימה מופרדת בפסיקים של שדות שרוצים לעדכן. אם לא מציינים את הפרמטר הזה, כל השדות שצוינו בבקשה מתעדכנים. לדוגמה: serviceAccount,destination

תוכן בקשת JSON:

{
  "serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com",
  "destination": DESTINATION,
  "eventFilters": EVENT_FILTER,
  "eventDataContentType": "CONTENT_TYPE",
  "retryPolicy": RETRY_POLICY
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אם הפעולה בוצעה בהצלחה, גוף התשובה יכיל מופע חדש של Operation:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

אם הערך של "done" הוא false, הפעולה עדיין מתבצעת.

מחיקת טריגר

אתם יכולים למחוק טריגר.

המסוף

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

    כניסה לדף Triggers

  2. בוחרים את הטריגר ולוחצים על Delete.

gcloud

gcloud eventarc triggers delete TRIGGER

מחליפים את TRIGGER במזהה של הטריגר או במזהה מלא.

REST

כדי למחוק טריגר עם שם ספציפי, משתמשים ב-method‏ projects.locations.triggers.delete.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud.
  • ‫LOCATION: האזור שבו נוצר הטריגר, לדוגמה us-central1.
  • ‫TRIGGER_NAME: שם הטריגר שרוצים למחוק.

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אם הפעולה בוצעה ללא שגיאות, גוף התשובה יכיל מופע של Operation:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-24T17:53:52.834876290Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

אם הערך של "done" הוא false, הפעולה עדיין מתבצעת.

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