מכסות ומגבלות

בדף הזה מפורטות המגבלות הניתנות להרחבה לפי השימוש ב-Cloud Functions בהתאם לתוכנית התמחור Blaze בתשלום לפי שימוש. המגבלות האלה חלות על פרויקטים ב-Firebase שפורסים פונקציות בסביבת זמן הריצה Node.js 10.

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

המכסות ל-Firebase כוללות 4 תחומים:

  • הגבלות על משאבים

    ההגדרות האלה משפיעות על כמות המשאבים הכוללת שהפונקציות יכולות לצרוך.

  • מגבלות זמן

    הם משפיעים על משך הזמן שבו אפשר להריץ דברים.

  • מגבלות קצב

    הגורמים האלה משפיעים על הקצב שבו אפשר לבצע קריאות ל-Firebase API כדי לנהל את הפונקציות.

  • הגבלות על רשתות

    ההגדרות האלה משפיעות על חיבורים יוצאים ומגבלות של מופעים.

בהמשך מפורטים סוגי המגבלות השונים. במקומות הרלוונטיים מצוינים ההבדלים בין המגבלות של Firebase (דור ראשון) לבין Firebase (דור שני).

הגבלות על משאבים

מגבלות המשאבים משפיעות על הכמות הכוללת של המשאבים שהפונקציות יכולות לצרוך. ההיקף האזורי הוא לכל פרויקט, ולכל פרויקט יש מגבלות משלו.

מכסה תיאור מגבלה (דור ראשון) Limit (דור שני) אפשר להגדיל את המכסה היקף
מספר הפונקציות המספר הכולל של פונקציות שאפשר לפרוס בכל אזור 1,000 ‫1,000 פחות מספר השירותים של Cloud Run שנפרסו לא לכל אזור
גודל הפריסה המקסימלי הגודל המקסימלי של פריסת פונקציה יחידה ‫100MB (דחוס) למקורות.
‫500MB (לא דחוס) למקורות בתוספת מודולים.
לא רלוונטי לא לכל פונקציה
גודל מקסימלי של בקשת HTTP לא דחוסה נתונים שנשלחים לפונקציות HTTP בבקשת HTTP ‫10MB 32MB לא לכל הפעלה
גודל מקסימלי של תגובת HTTP לא דחוסה נתונים שנשלחים מפונקציות HTTP בתגובת HTTP ‫10MB ‫10MB לתשובות שמוצגות באופן שוטף.
‫32MB לתשובות שלא מוצגות באופן שוטף.
לא לכל הפעלה
גודל אירוע מקסימלי לפונקציות מבוססות-אירועים נתונים שנשלחים באירועים לפונקציות ברקע ‫10MB ‫512KB לאירועי Eventarc.
‫10MB לאירועים קודמים.
לא לכל אירוע
זיכרון מקסימלי של פונקציה כמות הזיכרון שכל מופע של פונקציה יכול להשתמש בו ‫8GiB ‫32GiB לא לכל פונקציה
זיכרון מקסימלי לפרויקט נפח הזיכרון, בבייט, שפרויקט יכול להשתמש בו. המדד הזה מחושב כסכום הכולל של הזיכרון שנדרש על ידי המשתמשים בכל המופעים של הפונקציה במהלך תקופה של דקה אחת. תלוי באזור שנבחר. יכול להיות שהמגבלה הזו תהיה גבוהה יותר באזורים עם קיבולת גבוהה, או נמוכה יותר באזורים שנפתחו לאחרונה. לא רלוונטי כן לכל פרויקט ואזור
השימוש המקסימלי במעבד בפרויקט כמות ה-CPU, במילי-vCPU, שפרויקט יכול להשתמש בה. המדד הזה מחושב כסכום הכולל של השימוש במעבד שנדרש על ידי המשתמשים בכל המופעים של הפונקציה במהלך תקופה של דקה אחת. תלוי באזור שנבחר. יכול להיות שהמגבלה הזו תהיה גבוהה יותר באזורים עם קיבולת גבוהה, או נמוכה יותר באזורים שנפתחו לאחרונה. לא רלוונטי כן לכל פרויקט ואזור

מגבלות זמן

מכסה תיאור מגבלה (דור ראשון) Limit (דור שני) אפשר להגדיל את המכסה היקף
משך הפונקציה המקסימלי משך הזמן המקסימלי שפונקציה יכולה לפעול לפני שהיא מסתיימת בכוח ‫540 שניות ‫60 דקות לפונקציות HTTP.
‫9 דקות לפונקציות מבוססות-אירועים.
לא לכל הפעלה

מגבלות קצב

מכסה תיאור מגבלה (דור ראשון) Limit (דור שני) אפשר להגדיל את המכסה היקף
קריאות ל-API (קריאה) קריאות לתיאור או לרשימה של פונקציות באמצעות Firebase API ‫5,000 לכל 100 שניות ‫1,200 כל 60 שניות רק לדור הראשון לכל פרויקט (דור ראשון)
לכל אזור (דור שני)
קריאות ל-API (כתיבה) קריאות לפריסה או למחיקה של פונקציות דרך Firebase API ‫80 לכל 100 שניות ‫60 לכל 60 שניות לא 1 לכל פרויקט (דור ראשון)
לכל אזור (דור שני)
קריאות ל-API‏ (CALL) קריאות ל-API של 'שיחה' ‫16 כל 100 שניות לא רלוונטי לא 2 לכל פרויקט

מגבלות על רשתות

מידע על מגבלות רוחב הפס ומגבלות הבקשות ברשת של Firebase (דור שני) זמין במאמר מגבלות ברשת.

ההגבלות הבאות בנושא רשת חלות על Firebase (דור ראשון):

  • חיבורים יוצאים לשנייה לכל מופע: 500 (אי אפשר להגדיל את המספר הזה)
  • רזולוציות DNS יוצאות לשנייה לכל מופע: 100 (אי אפשר להגדיל את המספר הזה)
  • מספר החבילות המקסימלי לשנייה לכל מופע: 80,000
  • מספר הביטים המקסימלי לשנייה לכל מופע: 100,000,000

מדרגיות

פונקציות Firebase שמופעלות על ידי HTTP מתרחבות במהירות כדי לטפל בתנועה הנכנסת, בעוד שפונקציות ברקע מתרחבות באופן הדרגתי יותר. היכולת של פונקציה להתרחב נקבעת על ידי כמה גורמים, כולל:

  • משך הזמן שנדרש להשלמת ההפעלה של פונקציה (בדרך כלל אפשר להגדיל את הקיבולת של פונקציות שפועלות לזמן קצר כדי לטפל ביותר בקשות בו-זמנית).
  • משך הזמן שנדרש לאתחול של פונקציה בהפעלה במצב התחלתי.
  • שיעור השגיאות של הפונקציה.
  • גורמים זמניים, כמו עומס אזורי וקיבולת מרכז הנתונים.

לפונקציות ברקע יש מגבלות נוספות, כמו שמוסבר בהמשך. המגבלות האלה לא חלות על פונקציות HTTP מהדור הראשון.

מכסות נוספות לפונקציות ברקע

מכסה תיאור מגבלה אפשר להגדיל את המכסה היקף גרסת המוצר
מספר מקסימלי של הפעלות בו-זמנית המספר המקסימלי של הפעלות בו-זמניות של פונקציה אחת
דוגמה: אם הטיפול בכל אירוע נמשך 100 שניות, קצב ההפעלה יהיה מוגבל ל-30 לשנייה בממוצע
3,000 כן לכל פונקציה דור ראשון בלבד
קצב הפעלה מקסימלי הקצב המקסימלי של אירועים שמטופלים על ידי פונקציה אחת
דוגמה: אם הטיפול באירוע נמשך 100 אלפיות השנייה, קצב ההפעלה יהיה מוגבל ל-1,000 לשנייה, גם אם בממוצע מטופלות במקביל רק 100 בקשות
‫1,000 לשנייה לא לכל פונקציה דור ראשון בלבד
גודל מקסימלי של נתוני אירועים בו-זמנית הגודל המקסימלי הכולל של אירועים נכנסים להפעלות בו-זמניות של פונקציה אחת
דוגמה: אם גודל האירועים הוא 1MB ועיבוד שלהם נמשך 10 שניות, הקצב הממוצע יהיה אירוע אחד לשנייה, כי האירוע ה-11 לא יעובד עד שעיבוד אחד מ-10 האירועים הראשונים יסתיים
‫10MB לא לכל פונקציה דור ראשון ודור שני
התפוקה המקסימלית של אירועים נכנסים התפוקה המקסימלית של אירועים נכנסים לפונקציה אחת
דוגמה: אם גודל האירועים הוא 1MB, קצב ההפעלה יכול להיות מקסימום 10 בשנייה, גם אם הפונקציות מסתיימות תוך 100ms
‫10MB לשנייה לא לכל פונקציה דור ראשון ודור שני

כשמגיעים למכסה

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

כדי להגדיל את המכסות מעבר לערכי ברירת המחדל שמפורטים כאן, עוברים אל Firebase הדף Quotas, בוחרים את המכסות שרוצים לשנות, לוחצים על Edit quotas, מספקים את פרטי המשתמש אם מתבקשים לעשות זאת ומזינים את מגבלת המכסה החדשה לכל מכסה שבחרתם.

מגבלות מכסת השימוש לפריסה באמצעות Firebase CLI

הסוגים הבאים של מגבלות קצב ומגבלות זמן מושפעים מכל פונקציה שמוצבת באמצעות Firebase CLI:

  • קריאות ל-API (קריאה) – קריאה אחת לכל פריסה, לא משנה כמה פונקציות
    • מגבלה: 5,000 כל 100 שניות
  • קריאות ל-API (כתיבה) – קריאה אחת לכל פונקציה
    • מגבלה: 80 פעמים ב-100 שניות

אפשר לעיין גם במאמרי העזרה בנושא Firebase CLI.