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