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