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

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

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

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

המסוף

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

    כניסה לדף Triggers

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

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

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

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

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

    אפשר למיין רק חלק מהעמודות – למשל, שם, אזור או ערוץ אירועים.

gcloud

gcloud eventarc triggers list --location=-

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

REST

כדי להציג רשימה של טריגרים בפרויקט ובמיקום מסוימים, משתמשים בשיטה 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. ברשימת הטריגרים, לוחצים על הטריגר שרוצים לראות את הפרטים שלו.

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

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. בדף פרטי הטריגר, לוחצים על עריכה.

  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"

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

  • 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.

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

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

כדי לעדכן טריגר קיים, משתמשים בשיטה 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: אופציונלי. הקידוד של מטען הנתונים של האירוע. בהתאם לספק האירוע, הקידוד יכול להיות application/json או application/protobuf.
  • UPDATE_FIELDS: אופציונלי. רשימה מופרדת בפסיקים של השדות שרוצים לעדכן. אם לא תציינו שדות, כל השדות שצוינו בבקשה יעודכנו. לדוגמה: serviceAccount,destination

תוכן בקשת JSON:

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

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

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע חדש של 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. בוחרים את הטריגר ולוחצים על מחיקה.

gcloud

gcloud eventarc triggers delete TRIGGER

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

REST

כדי למחוק טריגר עם שם ספציפי, משתמשים בשיטה 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, הפעולה עדיין מתבצעת.

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