השוואת גרסאות של Cloud Functions

יש שתי גרסאות של Cloud Functions for Firebase:

  • Cloud Functions (דור שני), שפורס את הפונקציות כשירותים ב-Cloud Run, ומאפשר להפעיל אותן באמצעות Eventarc ו-Pub/Sub.
  • Cloud Functions (דור ראשון), הגרסה המקורית של הפונקציות עם טריגרים מוגבלים לאירועים ואפשרויות מוגבלות להגדרה.

מומלץ לבחור באפשרות Cloud Functions (דור שני) לפונקציות חדשות, בכל מקום שאפשר. עם זאת, אנחנו מתכננים להמשיך לתמוך ב-Cloud Functions (דור ראשון).

בדף הזה מתוארות התכונות שהושקו ב-Cloud Functions ומוצג השוואה בין שתי גרסאות המוצר.

Cloud Functions (דור שני)

Cloud Functions הוא הדור הבא של Firebase ל-Functions-as-a-Service. הוא מבוסס על Cloud Run ועל Eventarc, וכולל שיפורים בתשתית וכיסוי רחב יותר של אירועים ב-Cloud Functions, כולל: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 Functions חולק מכסות ומגבלות של משאבים עם Cloud Run. מידע נוסף זמין במאמר בנושא מכסות.

טבלת השוואה

תכונה Cloud Functions (דור ראשון) Cloud Functions
מאגר תמונות Container Registry או Artifact Registry רק Artifact Registry
הזמן הקצוב לתפוגת הבקשה הסתיים עד 9 דקות
  • עד 60 דקות לפונקציות שמופעלות על ידי HTTP
  • עד 9 דקות לפונקציות שמופעלות על ידי אירועים
חשבון שירות* חשבון שירות של Google App Engine‏ (PROJECT_ID@appspot.gserviceaccount.com) חשבון השירות של 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:

  1. נכנסים אל Cloud Billing Reports page במסוף Google Cloud.
  2. אם מופיעה בקשה, בוחרים את החשבון לחיוב שמשויך לפרויקט ב-Google Cloud.
  3. בחלונית Filters, בקטע Labels, מוסיפים מסנן תווית עם המפתח goog-managed-by והערך cloudfunctions.

מגבלות

Cloud Functions for Firebase (דור שני) לא תומך באירועים מסוג Analytics.

למרות ש-Cloud Functions for Firebase (דור שני) תומך באירועים של חסימת אימות, הוא לא תומך באותה קבוצה של אירועים בסיסיים של Authentication כמו דור ראשון.

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