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