מדריך קלאודפלייר בעברית

תיעוד 276

התראות אירועים

התראות אירועים שולחות הודעות אל התור שלך כאשר נתונים בדלי R2 משתנים. אפשר לצרוך את ההודעות האלה עם Worker צרכן או משיכה דרך HTTP מחוץ ל-Cloudflare Workers.

#תחילת עבודה עם התראות אירועים

#דרישות מוקדמות

לפני שמתחילים, צריך:

#הפעלת התראות אירועים דרך לוח הבקרה

  1. בלוח הבקרה של Cloudflare, עבור אל הדף R2 object storage. עבור אל Overview
  2. בחר את הדלי שאליו תרצה להוסיף כלל להתראת אירוע.
  3. עבור ללשונית Settings, ואז גלול למטה אל הכרטיס Event notifications.
  4. בחר Add notification ובחר את התור שתרצה שיקבל התראות ואת סוג האירועים שיפעיל אותן.
  5. בחר 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 typeDescriptionTrigger actions
object-createמופעל כאשר נוצרים אובייקטים חדשים או כאשר אובייקטים קיימים נדרסים.
  • PutObject
  • CopyObject
  • CompleteMultipartUpload
object-deleteמופעל כאשר אובייקט מוסר במפורש מהדלי.
  • DeleteObject
  • LifecycleDeletion

#מבנה ההודעה

צרכני תורים מקבלים התראות בתור 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"
	}
}

#מאפיינים

PropertyTypeDescription
accountStringמזהה חשבון Cloudflare שהאירוע משויך אליו.
actionStringסוג הפעולה שהפעילה את התראת האירוע. פעולות לדוגמה כוללות: PutObject, CopyObject, CompleteMultipartUpload, DeleteObject.
bucketStringשם הדלי שבו התרחש האירוע.
objectObjectאובייקט מקונן שמכיל פרטים על האובייקט שמעורב באירוע.
object.keyStringהמפתח (או השם) של האובייקט בתוך הדלי.
object.sizeNumberגודל האובייקט בבתים. הערה: לא קיים באירועי object-delete.
object.eTagStringתג הישות (eTag) של האובייקט. הערה: לא קיים באירועי object-delete.
eventTimeStringהזמן שבו התרחשה הפעולה שהפעילה את האירוע.
copySourceObjectאובייקט מקונן שמכיל פרטים על המקור של אובייקט שהועתק. הערה: קיים רק באירועים שהופעלו על ידי CopyObject.
copySource.bucketStringהדלי שהכיל את אובייקט המקור.
copySource.objectStringשם אובייקט המקור.

#הערות

  • תפוקת הודעות לכל תור של Queues היא כרגע 5,000 הודעות בשנייה. אם עומס העבודה שלך מייצר יותר מ-5,000 התראות בשנייה, אנחנו ממליצים לפצל כללי התראות בין כמה תורים.
  • כללים בלי prefix/suffix חלים על כל האובייקטים בדלי.
  • כללים חופפים או סותרים שעלולים להפעיל כמה התראות לאותו אירוע אינם מותרים. לדוגמה, אם יש כלל object-create (או פעולת PutObject) בלי prefix ו-suffix, אז הוספת כלל object-create נוסף (או פעולת PutObject) עם prefix כמו images/ עלולה להפעיל יותר מהתראה אחת להעלאה אחת, וזה לא תקין.