טריגרים של 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
...

המסוף

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

  1. בשדה סוג הטריגר, בוחרים באפשרות 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.

השלבים הבאים