תיעוד 276
התראות אירועים
התראות אירועים שולחות הודעות אל התור שלך כאשר נתונים בדלי R2 משתנים. אפשר לצרוך את ההודעות האלה עם Worker צרכן או משיכה דרך HTTP מחוץ ל-Cloudflare Workers.
#תחילת עבודה עם התראות אירועים
#דרישות מוקדמות
לפני שמתחילים, צריך:
- דלי R2 קיים. אם אין עדיין דלי R2 קיים, עיין ביצירת דליים.
- תור קיים. אם אין עדיין תור, עיין ביצירת תור.
- Worker צרכן או משיכת HTTP שמופעלים על התור שלך.
#הפעלת התראות אירועים דרך לוח הבקרה
- בלוח הבקרה של Cloudflare, עבור אל הדף R2 object storage. עבור אל Overview
- בחר את הדלי שאליו תרצה להוסיף כלל להתראת אירוע.
- עבור ללשונית Settings, ואז גלול למטה אל הכרטיס Event notifications.
- בחר Add notification ובחר את התור שתרצה שיקבל התראות ואת סוג האירועים שיפעיל אותן.
- בחר Add notification.
#הפעלת התראות אירועים דרך Wrangler
#הגדרת Wrangler
כדי להתחיל, התקן את npm. אחר כך התקן את Wrangler, ה-CLI של פלטפורמת המפתחים.
#הפעלת התראות אירועים על דלי R2 שלך
התחבר ל-Wrangler עם הפקודה wrangler login. אחר כך הוסף כלל להתראת אירוע לדלי על ידי הרצת הפקודה r2 bucket notification create.
npx wrangler r2 bucket notification create <BUCKET_NAME> --event-type <EVENT_TYPE> --queue <QUEUE_NAME>כדי להוסיף סינון לפי prefix או suffix השתמש בדגל --prefix או --suffix, בהתאמה.
# Filter using prefix
$ npx wrangler r2 bucket notification create <BUCKET_NAME> --event-type <EVENT_TYPE> --queue <QUEUE_NAME> --prefix "<PREFIX_VALUE>"
# Filter using suffix
$ npx wrangler r2 bucket notification create <BUCKET_NAME> --event-type <EVENT_TYPE> --queue <QUEUE_NAME> --suffix "<SUFFIX_VALUE>"
# Filter using prefix and suffix. Both the conditions will be used for filtering
$ npx wrangler r2 bucket notification create <BUCKET_NAME> --event-type <EVENT_TYPE> --queue <QUEUE_NAME> --prefix "<PREFIX_VALUE>" --suffix "<SUFFIX_VALUE>"לדוגמה מלאה יותר צעד אחר צעד, עיין בדוגמה Log and store upload events in R2 with event notifications.
#כללי התראות אירועים
כללי התראות אירועים קובעים את סוגי האירועים שמפעילים התראות, ומאפשרים אופציונלית סינון לפי prefix ו-suffix של אובייקט. אפשר להגדיר עד 100 כללי התראות אירועים לכל דלי R2.
#סוגי אירועים
| Event type | Description | Trigger actions |
|---|---|---|
object-create | מופעל כאשר נוצרים אובייקטים חדשים או כאשר אובייקטים קיימים נדרסים. |
|
object-delete | מופעל כאשר אובייקט מוסר במפורש מהדלי. |
|
#מבנה ההודעה
צרכני תורים מקבלים התראות בתור Messages. להלן דוגמה לגוף של הודעה ש-Worker צרכן יקבל:
{
"account": "3f4b7e3dcab231cbfdaa90a6a28bd548",
"action": "CopyObject",
"bucket": "my-bucket",
"object": {
"key": "my-new-object",
"size": 65536,
"eTag": "c846ff7a18f28c2e262116d6e8719ef0"
},
"eventTime": "2024-05-24T19:36:44.379Z",
"copySource": {
"bucket": "my-bucket",
"object": "my-original-object"
}
}#מאפיינים
| Property | Type | Description |
|---|---|---|
account | String | מזהה חשבון Cloudflare שהאירוע משויך אליו. |
action | String | סוג הפעולה שהפעילה את התראת האירוע. פעולות לדוגמה כוללות: PutObject, CopyObject, CompleteMultipartUpload, DeleteObject. |
bucket | String | שם הדלי שבו התרחש האירוע. |
object | Object | אובייקט מקונן שמכיל פרטים על האובייקט שמעורב באירוע. |
object.key | String | המפתח (או השם) של האובייקט בתוך הדלי. |
object.size | Number | גודל האובייקט בבתים. הערה: לא קיים באירועי object-delete. |
object.eTag | String | תג הישות (eTag) של האובייקט. הערה: לא קיים באירועי object-delete. |
eventTime | String | הזמן שבו התרחשה הפעולה שהפעילה את האירוע. |
copySource | Object | אובייקט מקונן שמכיל פרטים על המקור של אובייקט שהועתק. הערה: קיים רק באירועים שהופעלו על ידי CopyObject. |
copySource.bucket | String | הדלי שהכיל את אובייקט המקור. |
copySource.object | String | שם אובייקט המקור. |
#הערות
- תפוקת הודעות לכל תור של Queues היא כרגע 5,000 הודעות בשנייה. אם עומס העבודה שלך מייצר יותר מ-5,000 התראות בשנייה, אנחנו ממליצים לפצל כללי התראות בין כמה תורים.
- כללים בלי prefix/suffix חלים על כל האובייקטים בדלי.
- כללים חופפים או סותרים שעלולים להפעיל כמה התראות לאותו אירוע אינם מותרים. לדוגמה, אם יש כלל
object-create(או פעולתPutObject) בלי prefix ו-suffix, אז הוספת כללobject-createנוסף (או פעולתPutObject) עם prefix כמוimages/עלולה להפעיל יותר מהתראה אחת להעלאה אחת, וזה לא תקין.