טריגרים של Eventarc מאפשרים לנתב אירועים מספקי אירועים ליעדים. הצגה, עדכון ומחיקה של טריגרים עוזרים לכם לשלוט בהעברת אירועים ולתחזק את הארכיטקטורות מבוססות-האירועים. אתם יכולים לבצע את המשימות האלה באמצעות מסוף Google Cloud , באמצעות Google Cloud CLI בטרמינל או ב-Cloud Shell, או באמצעות Eventarc API.
הצגת רשימת הטריגרים
אתם יכולים להציג, לסנן ולמיין את הטריגרים בכל המיקומים.
המסוף
נכנסים לדף Triggers של Eventarc במסוף Google Cloud .
כאן מופיעים כל הטריגרים בפרויקט בכל המיקומים, כולל פרטים כמו שם הטריגר, האזור, ספק האירועים, היעד וסוג האירוע.
כדי לסנן את הטריגרים לפי מאפיין ספציפי:
- לוחצים על התיבה Filter.
- ברשימה Properties, בוחרים אפשרות לסינון הטריגרים – לדוגמה, Name או Event channel.
אפשר לבחור נכס אחד או להשתמש באופרטור הלוגי
ORכדי להוסיף עוד נכסים לסינון.כדי למיין את הטריגרים, לוחצים על מיון לצד כותרת העמודה הרלוונטית.
אפשר למיין רק חלק מהעמודות, למשל 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
]
}
תיאור הטריגר
אתם יכולים לתאר טריגר במיקום ספציפי.
המסוף
נכנסים לדף Triggers של Eventarc במסוף Google Cloud .
ברשימת הטריגרים, לוחצים על הטריגר שרוצים לראות את הפרטים שלו.
בדף 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. בהתאם ליעד, אפשר לעדכן שדות ספציפיים.
המסוף
נכנסים לדף Triggers של Eventarc במסוף Google Cloud .
ברשימת הטריגרים, לוחצים על הטריגר שרוצים לראות את הפרטים שלו.
בדף Trigger details, לוחצים על Edit.
עורכים את השדות לפי הצורך ולוחצים על שמירה.
שימו לב שאי אפשר לעדכן שדות לא זמינים כמו ספק האירועים ויעד האירועים. למידע נוסף על השדות, עיינו בהוראות למסוף בנוגע לספק, סוג אירוע ויעד ספציפיים.
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, הפעולה עדיין מתבצעת.
מחיקת טריגר
אתם יכולים למחוק טריגר.
המסוף
נכנסים לדף Triggers של Eventarc במסוף Google Cloud .
בוחרים את הטריגר ולוחצים על 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, הפעולה עדיין מתבצעת.