این صفحه محدودیتهای مقیاسپذیر و مبتنی بر استفاده را برای Cloud Functions مطابق با طرح قیمتگذاری پرداختی Blaze توضیح میدهد. این محدودیت ها برای پروژه های Firebase اعمال می شود که توابع را در محیط زمان اجرا Node.js 10 مستقر می کنند.
طرح Blaze مقادیر سخاوتمندانه ای از فراخوان ها، زمان محاسبه و ترافیک اینترنت را رایگان فراهم می کند. با این حال، استقرار عملکرد هزینههای کوچکی را برای فضای ذخیرهسازی مورد استفاده برای محفظه عملکرد متحمل میشود. برای اطلاعات بیشتر به سؤالات متداول Firebase مراجعه کنید.
سهمیه های Firebase شامل 4 حوزه است:
محدودیت منابع
اینها بر مقدار کل منابعی که عملکردهای شما می توانند مصرف کنند تأثیر می گذارد.
محدودیت های زمانی
اینها بر مدت زمانی که کارها می توانند ادامه داشته باشند تأثیر می گذارد.
محدودیت های نرخ
اینها بر نرخی تأثیر میگذارند که با آن میتوانید با Firebase API برای مدیریت عملکردهای خود تماس بگیرید.
محدودیت های شبکه
این موارد بر اتصال خروجی و محدودیتهای نمونه تأثیر میگذارند.
انواع مختلف محدودیت ها با جزئیات بیشتر در زیر توضیح داده شده است. تفاوت بین محدودیتهای Firebase (نسل اول) و Firebase (نسل دوم) در صورت لزوم ذکر شده است.
محدودیت منابع
محدودیت منابع بر مقدار کل منابعی که عملکردهای شما می توانند مصرف کنند تأثیر می گذارد. محدوده منطقه ای برای هر پروژه است و هر پروژه محدودیت های خود را حفظ می کند.
سهمیه | توضیحات | حد (نسل اول) | حد (نسل دوم) | قابل افزایش است | دامنه |
---|---|---|---|---|---|
تعداد توابع | تعداد کل توابع قابل استقرار در هر منطقه | 1000 | 1000 منهای تعداد سرویس های Cloud Run مستقر شده | خیر | در هر منطقه |
حداکثر اندازه استقرار | حداکثر اندازه استقرار یک تابع | 100 مگابایت (فشرده شده) برای منابع. 500 مگابایت (غیر فشرده) برای منابع و ماژول ها. | N/A | خیر | در هر تابع |
حداکثر اندازه درخواست HTTP فشرده نشده | دادهها در یک درخواست HTTP به توابع HTTP ارسال میشوند | 10 مگابایت | 32 مگابایت | خیر | در هر فراخوانی |
حداکثر اندازه پاسخ HTTP فشرده نشده | داده های ارسال شده از توابع HTTP در یک پاسخ HTTP | 10 مگابایت | 10 مگابایت برای پاسخ های جریانی. 32 مگابایت برای پاسخ های بدون جریان. | خیر | در هر فراخوانی |
حداکثر اندازه رویداد برای عملکردهای رویداد محور | داده ها در رویدادها به توابع پس زمینه ارسال می شوند | 10 مگابایت | 512 کیلوبایت برای رویدادهای Eventarc. 10 مگابایت برای رویدادهای قدیمی. | خیر | در هر رویداد |
حداکثر حافظه عملکرد | مقدار حافظه ای که هر نمونه تابع می تواند استفاده کند | 8 گیگابایت | 32 گیگابایت | خیر | در هر تابع |
حداکثر حافظه پروژه | مقدار حافظه، در By، که یک پروژه می تواند استفاده کند. این مقدار با مجموع حافظه درخواستی کاربر در بین نمونه های تابع در یک بازه زمانی 1 دقیقه اندازه گیری می شود. | بستگی به منطقه انتخاب شده دارد. این محدودیت ممکن است در مناطق پرظرفیت بیشتر یا در مناطقی که اخیراً افتتاح شده کمتر باشد. | N/A | بله | در هر پروژه و منطقه |
حداکثر CPU پروژه | مقدار CPU، به میلی vCPU، که یک پروژه می تواند استفاده کند. با مجموع کل CPUهای درخواستی کاربر در بین نمونه های تابع در یک بازه زمانی 1 دقیقه اندازه گیری می شود. | بستگی به منطقه انتخاب شده دارد. این محدودیت ممکن است در مناطق پرظرفیت بیشتر یا در مناطقی که اخیراً افتتاح شده کمتر باشد. | N/A | بله | در هر پروژه و منطقه |
محدودیت های زمانی
سهمیه | توضیحات | حد (نسل اول) | حد (نسل دوم) | قابل افزایش است | دامنه |
---|---|---|---|---|---|
حداکثر مدت زمان عملکرد | حداکثر مدت زمانی که یک تابع می تواند قبل از خاتمه اجباری اجرا شود | 540 ثانیه | 60 دقیقه برای توابع HTTP. 9 دقیقه برای عملکردهای رویداد محور. | خیر | در هر فراخوانی |
محدودیت های نرخ
سهمیه | توضیحات | حد (نسل اول) | حد (نسل دوم) | قابل افزایش است | دامنه |
---|---|---|---|---|---|
تماس های API (READ) | فراخوانی برای توصیف یا فهرست کردن توابع از طریق Firebase API | 5000 در 100 ثانیه | 1200 در 60 ثانیه | فقط برای نسل اول | در هر پروژه (نسل اول) در هر منطقه (نسل دوم) |
تماس های API (WRITE) | فراخوانی برای استقرار یا حذف توابع از طریق Firebase API | 80 در 100 ثانیه | 60 در 60 ثانیه | شماره 1 | در هر پروژه (نسل اول) در هر منطقه (نسل دوم) |
تماس های API (CALL) | تماس با API "تماس". | 16 در 100 ثانیه | N/A | شماره 2 | در هر پروژه |
محدودیت های شبکه
برای اطلاعات در مورد درخواست شبکه Firebase (نسل دوم) و محدودیتهای پهنای باند، به محدودیتهای شبکه مراجعه کنید.
محدودیت های شبکه زیر برای Firebase (نسل اول) اعمال می شود:
- اتصالات خروجی در ثانیه در هر نمونه: 500 (قابل افزایش نیست)
- وضوح DNS خروجی در هر ثانیه: 100 (قابل افزایش نیست)
مقیاس پذیری
Firebase که توسط HTTP فراخوانی می شود، برای مدیریت ترافیک ورودی به سرعت افزایش می یابد، در حالی که عملکردهای پس زمینه به تدریج مقیاس می شوند. توانایی یک تابع برای افزایش مقیاس توسط چند عامل دیکته می شود، از جمله:
- مدت زمانی که طول می کشد تا اجرای یک تابع کامل شود (توابع کوتاه مدت معمولاً می توانند برای رسیدگی به درخواست های همزمان بیشتر مقیاس شوند).
- مقدار زمانی که طول می کشد تا یک تابع در شروع سرد مقداردهی اولیه شود.
- میزان خطای تابع شما
عوامل گذرا، مانند بار منطقه ای و ظرفیت مرکز داده.
سهمیه های اضافی برای توابع پس زمینه
سهمیه | توضیحات | محدود کردن | قابل افزایش است | دامنه | نسخه محصول |
---|---|---|---|---|---|
حداکثر فراخوانی همزمان | حداکثر فراخوانی همزمان یک تابع مثال: اگر مدیریت هر رویداد 100 ثانیه طول بکشد، نرخ فراخوان به طور متوسط به 30 در ثانیه محدود می شود. | 3000 | بله | در هر تابع | فقط نسل اول |
حداکثر نرخ فراخوانی | حداکثر نرخ رویدادهایی که توسط یک تابع مدیریت می شود مثال: اگر رسیدگی به یک رویداد 100 میلیثانیه طول بکشد، نرخ فراخوانی به 1000 در ثانیه محدود میشود، حتی اگر به طور متوسط تنها 100 درخواست به صورت موازی انجام شوند. | 1000 در ثانیه | خیر | در هر تابع | فقط نسل اول |
حداکثر اندازه داده رویداد همزمان | حداکثر اندازه کل رویدادهای ورودی به فراخوانی همزمان یک تابع مثال: اگر اندازه رویدادها 1 مگابایت باشد و پردازش آنها 10 ثانیه طول بکشد، میانگین نرخ 1 رویداد در ثانیه خواهد بود، زیرا رویداد یازدهم تا زمانی که پردازش یکی از 10 رویداد اول به پایان برسد پردازش نخواهد شد. | 10 مگابایت | خیر | در هر تابع | نسل اول و نسل دوم |
حداکثر توان عملیاتی رویدادهای دریافتی | حداکثر توان عملیاتی رویدادهای ورودی به یک تابع مثال: اگر اندازه رویدادها 1 مگابایت باشد، نرخ فراخوانی میتواند حداکثر 10 در ثانیه باشد، حتی اگر توابع در 100 میلیثانیه تمام شوند. | 10 مگابایت در ثانیه | خیر | در هر تابع | نسل اول و نسل دوم |
وقتی به حد نصاب رسیدید
هنگامی که یک تابع تمام یک منبع تخصیص یافته را مصرف می کند، منبع تا زمانی که سهمیه به روزرسانی یا افزایش نیابد در دسترس نیست. این ممکن است به این معنی باشد که عملکرد شما و سایر توابع در همان پروژه تا آن زمان کار نخواهند کرد. یک تابع یک کد خطای HTTP 500 را زمانی برمی گرداند که یکی از منابع بیش از سهمیه باشد و تابع نتواند اجرا شود.
برای افزایش سهمیهها بالاتر از پیشفرضهای فهرستشده در اینجا، به صفحه Firebase Quotas بروید، سهمیههایی را که میخواهید تغییر دهید انتخاب کنید، روی Edit quotas کلیک کنید، در صورت درخواست اطلاعات کاربری خود را ارائه دهید و محدودیت سهمیه جدید را برای هر سهمیهای که انتخاب کردهاید وارد کنید.
محدودیت های سهمیه برای استقرار Firebase CLI
برای هر تابعی که Firebase CLI به کار میگیرد، این نوع نرخها و محدودیتهای زمانی تحتتاثیر قرار میگیرند:
- تماس های API (READ) - 1 تماس در هر استقرار، بدون توجه به تعداد عملکردها
- محدودیت: 5000 در 100 ثانیه
- تماس های API (WRITE) - 1 تماس در هر تابع
- محدودیت: 80 در 100 ثانیه
همچنین به مرجع Firebase CLI مراجعه کنید.