יש שתי גרסאות של Cloud Functions for Firebase:
- Cloud Functions (דור שני), שפורס את הפונקציות כשירותים ב-Cloud Run, ומאפשר להפעיל אותן באמצעות Eventarc ו-Pub/Sub.
- Cloud Functions (דור ראשון), הגרסה המקורית של הפונקציות עם טריגרים מוגבלים לאירועים ואפשרויות מוגבלות להגדרה.
מומלץ לבחור באפשרות Cloud Functions (דור שני) לפונקציות חדשות, בכל מקום שאפשר. עם זאת, אנחנו מתכננים להמשיך לתמוך ב-Cloud Functions (דור ראשון).
בדף הזה מתוארות התכונות שהושקו ב-Cloud Functions ומוצג השוואה בין שתי גרסאות המוצר.
Cloud Functions (דור שני)
Cloud Functions הוא הדור הבא של Firebase בתחום הפונקציות כשירות (FaaS). Cloud Functions (דור שני), שמבוסס על Cloud Run ועל Eventarc, מציע תשתית משופרת וכיסוי רחב יותר של אירועים ב-Cloud Functions, כולל:
- מבוסס על Cloud Run: הפונקציות מבוססות על Cloud Build ונפרסות כשירותי Cloud Run באמצעות סביבת הביצוע של Cloud Run שמוגדרת כברירת מחדל. כך תוכלו להתאים אישית את הפונקציה כמו שמתאימים אישית שירות Cloud Run. כדאי לעיין במסמכי התיעוד של Cloud Run כדי לבדוק את האפשרויות להגדרת השירות, כמו מגבלות זיכרון, משתני סביבה וכו'.
- זמני עיבוד ארוכים יותר של בקשות: הפעלת עומסי עבודה של בקשות ארוכות יותר, כמו עיבוד של זרמי נתונים גדולים מ-Cloud Storage או מ-BigQuery.
- גודלי אינסטנס גדולים יותר: הרצת עומסי עבודה גדולים יותר בזיכרון, עומסי עבודה אינטנסיביים ועומסי עבודה מקבילים.
- בו-זמניות משופרת: אפשר לטפל בכמה בקשות בו-זמנית באמצעות מופע פונקציה יחיד כדי לצמצם את ההפעלה במצב התחלתי ולשפר את זמן האחזור.
- ניהול תנועה: פיצול תנועה בין גרסאות שונות של פונקציה או חזרה לגרסה קודמת של פונקציה.
- שילוב עם Eventarc: תמיכה מובנית בטריגרים של Eventarc, שמאפשרת להשתמש בכל 90+ מקורות האירועים שנתמכים על ידי Eventarc ב-Cloud Functions.
- תמיכה רחבה יותר ב-CloudEvents: תמיכה ב-CloudEvents בתקן התעשייה בכל סביבות זמן הריצה של השפות, כדי לספק חוויית פיתוח עקבית.
פרטים נוספים זמינים בטבלת ההשוואה.
מכיוון ש-Cloud Functions פורס פונקציות כשירותים ב-Cloud Run, הוא חולק את מכסות המשאבים והמגבלות עם Cloud Run.Cloud Functions מידע על מכסות
טבלת השוואה
| תכונה | Cloud Functions (דור ראשון) | Cloud Functions |
|---|---|---|
| מאגר תמונות | Container Registry או Artifact Registry | רק Artifact Registry |
| הזמן הקצוב לתפוגת הבקשה הסתיים | עד 9 דקות |
|
| חשבון שירות* | חשבון שירות של Google App Engine (PROJECT_ID@ |
חשבון השירות של Google Cloud שמוגדר כברירת מחדל למחשוב (PROJECT_NUMBER-compute@developer.gserviceaccount.com) |
| גודל המכונה | עד 8GB RAM עם 2 vCPU | עד 16GiB RAM עם 4 vCPU |
| בו-זמניות (concurrency) | בקשה מקבילה אחת לכל מופע של פונקציה | עד 1,000 בקשות מקבילות לכל מופע של פונקציה |
* זהו חשבון השירות שמוגדר כברירת מחדל ומשמש לגישה ל-Firebase או ל-Cloud APIs מפונקציה שפועלת. הוא משמש את SDK של Firebase לאדמינים כשמבצעים אתחול ללא ארגומנטים.
תמחור
למידע על מחירים אפשר לעיין בתוכניות התמחור של Firebase.
כדי לראות את העלויות שקשורות ל-Cloud Functions:
- נכנסים אל Cloud Billing Reports page במסוף Google Cloud.
- אם מופיעה בקשה, בוחרים את החשבון לחיוב שמשויך לפרויקט ב-Google Cloud.
- בחלונית Filters, בקטע Labels, מוסיפים מסנן תווית עם המפתח
goog-managed-byוהערךcloudfunctions.
מגבלות
Cloud Functions for Firebase (דור שני) לא תומך באירועים מסוג Analytics.
למרות ש-Cloud Functions for Firebase (דור שני) תומך באירועים של חסימת אימות, הוא לא תומך באותה קבוצה של אירועי Authentication בסיסיים כמו דור ראשון.
עם זאת, מכיוון שפונקציות מדור ראשון ומדור שני יכולות להתקיים זו לצד זו באותו קובץ מקור, עדיין אפשר לפתח ולפרוס טריגרים של Analytics וטריגרים בסיסיים של Authentication בדור ראשון יחד עם פונקציות מדור שני.