این صفحه جزئیات حدود مقیاسپذیر و مبتنی بر استفاده برای Cloud Functions طبق طرح قیمتگذاری Blaze با پرداخت براساس مصرف را شرح میدهد. این محدودیتها برای پروژههای Firebase که توابع را در محیط زمان اجرای Node.js 10 مستقر میکنند اعمال میشود.
طرح قیمتگذاری Blaze مقادیر زیادی فراخوانی، زمان محاسباتی، و ترافیک اینترنت را بهصورت رایگان ارائه میدهد. بااینحال، استقرار تابع برای فضای ذخیرهسازی استفادهشده برای محفظه تابع هزینههای کوچکی دارد. برای جزئیات بیشتر، پرسشگان را ببینید.
سهمیههای Cloud Functions شامل ۴ حوزه است:
محدودیتهای منبع
اینها بر مقدار کل منابعی که توابع شما میتوانند مصرف کنند تأثیر میگذارند.
محدودیتهای زمانی
این تنظیمات بر مدت زمانی که کارها میتوانند اجرا شوند تأثیر میگذارند.
حدود نرخ
اینها بر نرخ فراخوانی میانای برنامهسازی کاربردی Cloud Functions برای مدیریت توابع شما تأثیر میگذارند.
محدودیتهای شبکه
اینها بر اتصال خروجی و محدودیتهای نمونه تأثیر میگذارند.
انواع مختلف محدودیتها در زیر با جزئیات بیشتری توضیح داده شده است. تفاوتهای بین محدودیتهای Cloud Functions (نسل اول) و Cloud Functions (نسل دوم) در موارد مقتضی ذکر شده است.
محدودیتهای منبع
محدودیتهای منابع بر مقدار کل منابعی که توابع شما میتوانند مصرف کنند تأثیر میگذارد. محدوده منطقهای برای هر پروژه است و هر پروژه حدود خود را حفظ میکند.
| سهمیه | شرح | Limit (نسل اول) | Limit (نسل دوم) | میتواند افزایش یابد | حوزه |
|---|---|---|---|---|---|
| تعداد توابع | تعداد کل توابعی که میتوانند در هر منطقه مستقر شوند | ۱٬۰۰۰ | ۱٬۰۰۰ منهای تعداد سرویسهای Cloud Run مستقرشده | نه | برای هر منطقه |
| حداکثر اندازه استقرار | حداکثر اندازه استقرار تابع واحد | ۱۰۰ مگابایت (فشرده) برای منابع. ۵۰۰ مگابایت (فشردهنشده) برای منابع بهعلاوه واحدها. |
نامربوط | نه | برای هر تابع |
| حداکثر اندازه درخواست اچتیتیپی فشردهنشده | دادهها در درخواست HTTP به «توابع HTTP» ارسال شد | ۱۰ مگابایت | ۳۲ مگابایت | نه | بهازای هر فراخوانی |
| حداکثر اندازه پاسخ HTTP فشردهنشده | دادههای ارسالشده از توابع HTTP در پاسخ HTTP | ۱۰ مگابایت | ۱۰ مگابایت برای جاریسازی پاسخها. ۳۲ مگابایت برای پاسخهای غیرجاریسازی. |
نه | بهازای هر فراخوانی |
| حداکثر اندازه رویداد برای توابع رویدادمحور | دادههای ارسالشده در رویدادها به عملکردهای پسزمینه | ۱۰ مگابایت | ۵۱۲ کیلوبایت برای رویدادهای Eventarc. ۱۰ مگابایت برای رویدادهای قدیمی. |
نه | برای هر رویداد |
| حداکثر حافظه تابع | مقدار حافظهای که هر نمونه تابع میتواند استفاده کند | ۸ گیبیبایت | ۳۲ گیبیبایت | نه | برای هر تابع |
| حداکثر حافظه پروژه | مقدار حافظه، برحسب بایت، که یک پروژه میتواند استفاده کند. این مقدار با مجموع کل حافظه درخواستشده توسط کاربر در نمونههای کارکرد در یک دوره ۱ دقیقهای اندازهگیری میشود. | به منطقه انتخابی بستگی دارد. این حد ممکن است در مناطق با ظرفیت بالا بیشتر باشد یا در مناطق تازه افتتاحشده کمتر باشد. | نامربوط | بله | بهازای هر پروژه و منطقه |
| حداکثر واحد پردازش مرکزی پروژه | مقدار واحد پردازش مرکزی، برحسب میلی واحد پردازش مجازی، که یک پروژه میتواند استفاده کند. این مقدار با مجموع کل CPU درخواستشده توسط کاربر در نمونههای کارکرد در یک دوره ۱ دقیقهای اندازهگیری میشود. | به منطقه انتخابی بستگی دارد. این حد ممکن است در مناطق با ظرفیت بالا بیشتر باشد یا در مناطق تازه افتتاحشده کمتر باشد. | نامربوط | بله | بهازای هر پروژه و منطقه |
محدودیتهای زمانی
| سهمیه | شرح | Limit (نسل اول) | Limit (نسل دوم) | میتواند افزایش یابد | حوزه |
|---|---|---|---|---|---|
| حداکثر مدت تابع | حداکثر مدت زمانی که یک تابع میتواند اجرا شود قبلاز اینکه بهاجبار خاتمه یابد | ۵۴۰ ثانیه |
|
نه | بهازای هر فراخوانی |
حدود نرخ
| سهمیه | شرح | Limit (نسل اول) | Limit (نسل دوم) | میتواند افزایش یابد | حوزه |
|---|---|---|---|---|---|
| فراخوانیهای میانای برنامهسازی کاربردی (خواندن) | فراخوانی برای شرح یا فهرست کردن توابع ازطریق Cloud Functions API | ۵۰۰۰ در ۱۰۰ ثانیه | ۱٬۲۰۰ در ۶۰ ثانیه | فقط برای نسل اول | بهازای هر پروژه (نسل اول) بهازای هر منطقه (نسل دوم) |
| فراخوانیهای میانای برنامهسازی کاربردی (نوشتن) | تماسها برای استقرار یا حذف توابع ازطریق Cloud Functions API | ۸۰ در ۱۰۰ ثانیه | ۶۰ در ۶۰ ثانیه | نه ۱ | بهازای هر پروژه (نسل اول) بهازای هر منطقه (نسل دوم) |
| فراخوانیهای میانای برنامهسازی کاربردی (تماس) | فراخوانیهای API «تماس» | ۱۶ در هر ۱۰۰ ثانیه | نامربوط | نه ۲ | برای هر پروژه |
محدودیتهای شبکه
برای اطلاعات درباره درخواست شبکه Cloud Functions (نسل دوم) و محدودیتهای پهنای باند، محدودیتهای شبکه را ببینید.
محدودیتهای شبکه زیر برای Cloud Functions (نسل اول) اعمال میشود:
- اتصالهای خروجی در ثانیه برای هر نمونه: ۵۰۰ (قابل افزایش نیست)
- تفکیک ساناد خروجی در ثانیه برای هر نمونه: ۱۰۰ (قابل افزایش نیست)
- حداکثر بستهها در ثانیه برای هر نمونه: ۸۰٬۰۰۰
- حداکثر بیت در ثانیه برای هر نمونه: ۱۰۰٬۰۰۰٬۰۰۰
میزانپذیری
Cloud Functions که با HTTP فراخوانده میشود بهسرعت مقیاسبندی میشود تا ترافیک ورودی را مدیریت کند، درحالیکه توابع پسزمینهای بهتدریج مقیاسبندی میشوند. توانایی یک تابع برای مقیاسبندی بهبالا توسط چند عامل تعیین میشود، ازجمله:
- مدت زمانی که طول میکشد تا اجرای تابع تکمیل شود (توابع با زمان اجرای کوتاه معمولاً میتوانند برای مدیریت درخواستهای همزمان بیشتر مقیاسبندی شوند).
- مدت زمانی که طول میکشد تا یک تابع در شروع سرد مقداردهی اولیه شود.
- نرخ خطای تابع شما.
عوامل گذرا، مانند بار منطقهای و ظرفیت مرکز داده.
سهمیههای اضافی برای عملکردهای پسزمینهای
| سهمیه | شرح | حد | میتواند افزایش یابد | حوزه | نسخه محصول |
|---|---|---|---|---|---|
| حداکثر فراخوانیهای همزمان | حداکثر فراخوانی همزمان یک تابع مثال: اگر مدیریت هر رویداد ۱۰۰ ثانیه طول بکشد، نرخ فراخوانی بهطور میانگین به ۳۰ در ثانیه محدود میشود |
۳٬۰۰۰ | بله | برای هر تابع | فقط نسل اول |
| حداکثر نرخ فراخوانی | حداکثر نرخ رویدادهایی که توسط یک تابع مدیریت میشود مثال: اگر مدیریت یک رویداد ۱۰۰ میلیثانیه طول بکشد، نرخ فراخوانی به ۱۰۰۰ در ثانیه محدود میشود، حتی اگر بهطور میانگین فقط ۱۰۰ درخواست بهصورت موازی مدیریت شود |
۱۰۰۰ در ثانیه | نه | برای هر تابع | فقط نسل اول |
| حداکثر اندازه دادههای رویداد همزمان | حداکثر اندازه کل رویدادهای ورودی به فراخوانیهای همزمان
یک تابع مثال: اگر اندازه رویدادها ۱ مگابایت باشد و پردازش آنها ۱۰ ثانیه طول بکشد، نرخ میانگین ۱ رویداد در ثانیه خواهد بود، زیرا رویداد یازدهم تا زمانی که پردازش یکی از ۱۰ رویداد اول تمام نشود پردازش نخواهد شد |
۱۰ مگابایت | نه | برای هر تابع | نسل اول و نسل دوم |
| حداکثر توان عملیاتی رویدادهای ورودی | حداکثر توان عملیاتی رویدادهای ورودی به یک تابع مثال: اگر اندازه رویدادها ۱ مگابایت باشد، نرخ فراخوانی میتواند حداکثر ۱۰ در ثانیه باشد، حتی اگر توابع در ۱۰۰ میلیثانیه تمام شوند |
۱۰ مگابایت در ثانیه | نه | برای هر تابع | نسل اول و نسل دوم |
وقتی به حد مجاز سهمیه میرسید
وقتی تابعی همه منابع تخصیصیافته را مصرف میکند، منبع تا زمانی که سهمیه بازآوری یا افزایش یابد دردسترس نخواهد بود. این ممکن است به این معنی باشد که تابع شما و همه توابع دیگر در همان پروژه تا آن زمان کار نخواهند کرد. وقتی یکی از منابع از سهمیه فراتر رفته باشد و تابع نتواند اجرا شود، تابع کد خطای HTTP 500 برمیگرداند.
برای افزایش سهمیهها بالاتر از مقادیر پیشفرض فهرستشده در اینجا، به Cloud Functions صفحه سهمیهها بروید، سهمیههایی را که میخواهید تغییر دهید انتخاب کنید، روی ویرایش سهمیهها کلیک کنید، درصورت درخواست، اطلاعات کاربر خود را ارائه دهید، و حد سهمیه جدید را برای هر سهمیه انتخابی وارد کنید.
محدودیتهای سهمیه برای استقرار «واسط خط فرمان Firebase»
برای هر تابعی که Firebase CLI مستقر میکند، این نوع محدودیتهای نرخ و زمان تحت تأثیر قرار میگیرند:
- فراخوانهای میانای برنامهسازی کاربردی (خواندن) - ۱ فراخوان برای هر استقرار، مهم نیست چند تابع وجود دارد
- محدودیت: ۵۰۰۰ در هر ۱۰۰ ثانیه
- فراخوانیهای میانای برنامهسازی کاربردی (نوشتن) - ۱ فراخوانی برای هر تابع
- محدودیت: ۸۰ در هر ۱۰۰ ثانیه
همچنین مرجع «میانای خط فرمان Firebase» را ببینید.