טריגרים של Cloud Storage (דור ראשון)

בפונקציות Cloud Run, טריגר של Cloud Storage מאפשר לקרוא לפונקציה בתגובה לשינויים ב-Cloud Storage. כשמגדירים טריגר של Cloud Storage לפונקציה, בוחרים סוג אירוע ומציינים קטגוריה של Cloud Storage. הפונקציה תופעל בכל פעם שיתרחש שינוי באובייקט (קובץ) בקטגוריה שצוינה.

.

סוגי האירועים הבאים של Cloud Storage נתמכים:

אירוע סוג אירוע תיאור
האובייקט הסופי
  • google.storage.object.finalize
מתרחש כשנוצר אובייקט חדש, או כשמתבצעת החלפה של אובייקט קיים ונוצרת גנרציה חדשה של האובייקט הזה.
האובייקט נמחק
  • google.storage.object.delete
מתרחש כשמבצעים מחיקה רכה של אובייקט. מידע נוסף זמין במאמר בנושא מחיקה עם יכולת שחזור.
האובייקט הועבר לארכיון
  • google.storage.object.archive
מתרחש כשגרסה פעילה של אובייקט הופכת לגרסה לא עדכנית. מידע נוסף זמין במאמר בנושא ניהול גרסאות של אובייקטים.
המטא-נתונים של האובייקט עודכנו
  • google.storage.object.metadataUpdate
מתרחש כשהמטא-הנתונים של אובייקט קיים משתנים.

כדי שפונקציה תוכל להשתמש בטריגר של Cloud Storage, צריך להטמיע אותה כפונקציה מבוססת-אירועים:

מאגר Google Events מכיל משאבים נוספים לעבודה עם נתוני אירועים.

פריסה

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

gcloud

אם מבצעים פריסה באמצעות ה-CLI של gcloud, אפשר להשתמש בסוג האירוע Object finalized של Cloud Storage עם הדגלים הבאים:

gcloud functions deploy YOUR_FUNCTION_NAME \
--no-gen2 \
--trigger-bucket=YOUR_STORAGE_BUCKET \
[--retry] \
...

כדי להשתמש בסוגי אירועים אחרים מלבד Object finalized, משתמשים בדגלים הבאים:

  gcloud functions deploy YOUR_FUNCTION_NAME 
--no-gen2
--trigger-event=EVENT_TYPE
--trigger-resource=YOUR_STORAGE_BUCKET
...

אירועים ב-Cloud Storage מדור קודם

פונקציות מדור קודם ב-Cloud Run (דור ראשון) משתמשות בהתראות מדור קודם על שינויים באובייקטים עבור טריגרים של Cloud Storage:

gcloud functions deploy YOUR_FUNCTION_NAME \
--no-gen2 \
--trigger-event=providers/cloud.storage/eventTypes/object.change \
--trigger-resource=YOUR_STORAGE_BUCKET \
...

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

המסוף

אם פורסים באמצעות מסוף Google Cloud , אפשר להגדיר טריגר של Cloud Storage בקטע Trigger:

  1. בשדה Trigger type, בוחרים באפשרות Cloud Storage.
  2. בשדה סוג האירוע, בוחרים סוג אירוע.
  3. בשדה Bucket, לוחצים על Browse כדי לבחור קטגוריה של Cloud Storage שהטריגר יעקוב אחריה. שינויים באובייקטים בתוך הדלי הזה יפעילו קריאות לפונקציה.
  4. מסמנים או מבטלים את הסימון של התיבה Retry on failure כדי לקבוע אם יתבצע ניסיון חוזר אוטומטי של קריאות פונקציה שנכשלו. מידע נוסף זמין במאמר בנושא ניסיון חוזר של פונקציות מבוססות-אירועים.

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

טריגרים של Cloud Storage מיושמים באמצעות התראות Pub/Sub ל-Cloud Storage. האירועים כפופים להתחייבויות למסירת התראות ב-Pub/Sub.

אפשר להגדיר עד 10 הגדרות של התראות להפעלה של אירוע ספציפי בקטגוריה של Cloud Storage. חריגה ממגבלות ההתראות של הדלי תגרום לכך שפריסות נוספות של פונקציות ייכשלו עם שגיאה כמו הבאה:

Cloud Storage bucket ...: Pub/Sub notification limit reached

כדי לעקוף את המגבלה הזו, אפשר לנהל נושא Pub/Sub משלכם ולרשום אותו לקבלת התראות Cloud Storage מהסוג שאתם רוצים שהפונקציה תגיב אליו. לדוגמה, אפשר להגדיר התראה אחת לאירוע שבחרתם (כמו יצירת אובייקט) לנושא Pub/Sub. לאחר מכן, צריך להגדיר מספר מנויים לפונקציה לפי הצורך כדי שהנושא יעבד את האירוע ויפיץ אותו למספר יעדים. לדוגמה:

  1. יצירת נושא Pub/Sub משלכם
  2. יוצרים הגדרה אחת של התראה בקטגוריית Cloud Storage שמופעלת באירוע ספציפי (כמו OBJECT_FINALIZE ליצירת אובייקט) ושולחת את האירוע לנושא Pub/Sub יחיד.
  3. יוצרים פונקציה (או פונקציות) שמופעלת על ידי נושא Pub/Sub.

מידע נוסף על המגבלות של Cloud Storage אפשר למצוא במאמר בנושא מכסות ומגבלות ב-Cloud Storage.

השלבים הבאים