سهمیه ها و محدودیت ها

این صفحه محدودیت‌های مقیاس‌پذیر و مبتنی بر استفاده را برای توابع Cloud مطابق با طرح قیمت‌گذاری پرداختی 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 گیگابایت 32 گیگابایت خیر در هر تابع

محدودیت های زمانی

سهمیه، سهم شرح حد (نسل اول) حد (نسل دوم) قابل افزایش است محدوده
حداکثر مدت زمان عملکرد حداکثر مدت زمانی که یک تابع می تواند قبل از خاتمه اجباری اجرا شود 540 ثانیه 60 دقیقه برای توابع HTTP.
9 دقیقه برای عملکردهای رویداد محور.
خیر در هر فراخوانی

محدودیت های نرخ

سهمیه، سهم شرح حد (نسل اول) حد (نسل دوم) قابل افزایش است محدوده
تماس های 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 احضار می شوند، برای مدیریت ترافیک ورودی به سرعت افزایش می یابند، در حالی که عملکردهای پس زمینه به تدریج مقیاس می شوند. توانایی یک تابع برای افزایش مقیاس توسط چند عامل دیکته می شود، از جمله:

  • مدت زمانی که طول می کشد تا اجرای یک تابع کامل شود (توابع کوتاه مدت معمولاً می توانند برای رسیدگی به درخواست های همزمان بیشتر مقیاس شوند).
  • مقدار زمانی که طول می کشد تا یک تابع در شروع سرد مقداردهی اولیه شود.
  • میزان خطای تابع شما
  • عوامل گذرا، مانند بار منطقه ای و ظرفیت مرکز داده.

همانطور که در زیر توضیح داده شده است، توابع پس زمینه دارای محدودیت های اضافی هستند. این محدودیت ها برای توابع 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 مراجعه کنید.