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

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

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

המכסות של Cloud Functions כוללות 4 תחומים:

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

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

  • מגבלות זמן

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

  • מגבלות קצב של יצירת בקשות

    הן משפיעות על הקצב שבו אפשר לשלוח קריאות ל-API של Cloud Functions כדי לנהל את הפונקציות.

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

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

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

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

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

מכסה תיאור מגבלה (דור ראשון) ‫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), ב-milli vCPU, שפרויקט יכול להשתמש בהם. הוא נמדד לפי הסכום הכולל של המעבד (CPU) שביקש המשתמש בכל המופעים של הפונקציה בפרק זמן של דקה אחת. תלוי באזור שנבחר. המגבלה הזו עשויה להיות גבוהה יותר באזורים עם קיבולת גבוהה, או נמוכה יותר באזורים שנפתחו לאחרונה. לא רלוונטי כן לכל פרויקט ואזור

מגבלות זמן

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

מגבלות קצב של יצירת בקשות

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

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

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

מגבלות הרשת הבאות חלות על Cloud Functions (דור ראשון):

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

מדרגיות

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

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

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

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

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

מה קורה כשמגיעים למגבלה של מכסה מסוימת

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

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

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

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

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

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