יש שתי גרסאות של 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 בדור הראשון יחד עם פונקציות מהדור השני.