دو نسخه از Cloud Functions for Firebase وجود دارد:
- Cloud Functions (نسل دوم) ، که توابع شما را به عنوان سرویس در Cloud Run مستقر میکند و به شما امکان میدهد آنها را با استفاده از Eventarc و Pub/Sub فعال کنید.
- Cloud Functions (نسل اول) ، نسخه اصلی توابع با محرکهای رویداد محدود و قابلیت پیکربندی.
توصیه میکنیم در صورت امکان، برای عملکردهای جدید، Cloud Functions (نسل دوم) را انتخاب کنید. با این حال، ما قصد داریم به پشتیبانی از Cloud Functions (نسل اول) ادامه دهیم.
این صفحه ویژگیهای معرفیشده در Cloud Functions را شرح میدهد و مقایسهای بین دو نسخه محصول ارائه میدهد.
Cloud Functions (نسل دوم)
Cloud Functions نسل بعدی سرویسهای Firebase به نام Functions-as-a-Service است. Cloud Functions که بر پایه Cloud Run و Eventarc ساخته شده است، زیرساختهای بهبود یافته و پوشش گستردهتری از رویدادها را برای Cloud Functions به ارمغان میآورد، از جمله:
- ساخته شده بر پایه Cloud Run : توابع با Cloud Build ساخته شده و به عنوان سرویسهای Cloud Run با استفاده از محیط اجرای پیشفرض Cloud Run مستقر میشوند. این به شما امکان میدهد تا تابع خود را مانند یک سرویس Cloud Run سفارشی کنید. برای بررسی گزینههای پیکربندی سرویس خود، مانند محدودیتهای حافظه ، متغیرهای محیطی و غیره، به مستندات Cloud Run مراجعه کنید.
- زمان پردازش درخواستهای طولانیتر : اجرای حجم کاری با درخواستهای طولانیتر مانند پردازش جریانهای بزرگ داده از Cloud Storage یا BigQuery .
- نمونههای بزرگتر: حجمهای کاری بزرگتر با حافظه داخلی بیشتر، محاسبات فشردهتر و موازی را اجرا میکنند.
- همزمانی بهبود یافته : چندین درخواست همزمان را با یک نمونه تابع واحد مدیریت کنید تا شروعهای سرد به حداقل برسد و تأخیر بهبود یابد.
- مدیریت ترافیک : ترافیک را بین نسخههای مختلف تابع تقسیم کنید یا یک تابع را به نسخه قبلی برگردانید.
- یکپارچهسازی Eventarc : پشتیبانی بومی از محرکهای Eventarc ، که تمام بیش از ۹۰ منبع رویداد پشتیبانیشده توسط Eventarc را به Cloud Functions میآورد.
- پشتیبانی گستردهتر از CloudEvents : پشتیبانی از CloudEvents استاندارد صنعتی در تمام زمانهای اجرای زبان، که یک تجربه توسعهدهنده سازگار را ارائه میدهد.
برای جزئیات بیشتر به جدول مقایسه مراجعه کنید.
از آنجا که Cloud Functions توابع را به عنوان سرویس در Cloud Run مستقر میکند، Cloud Functions سهمیهها و محدودیتهای منابع را با Cloud Run به اشتراک میگذارد. به Quotas مراجعه کنید.
جدول مقایسه
| ویژگی | Cloud Functions (نسل اول) | Cloud Functions |
|---|---|---|
| رجیستری تصویر | Container Registry یا Artifact Registry | فقط Artifact Registry |
| درخواست مهلت | تا ۹ دقیقه |
|
| حساب کاربری سرویس* | حساب سرویس موتور برنامه گوگل ( PROJECT_ID @ appspot.gserviceaccount.com ) | حساب کاربری پیشفرض سرویس محاسباتی گوگل کلود ( PROJECT_NUMBER -compute@developer.gserviceaccount.com ) |
| اندازه نمونه | تا ۸ گیگابایت رم با ۲ پردازنده مجازی | تا ۱۶ گیگابایت رم با ۴ پردازنده مجازی |
| همزمانی | ۱ درخواست همزمان به ازای هر نمونه تابع | حداکثر ۱۰۰۰ درخواست همزمان برای هر نمونه تابع |
* این حساب سرویس پیشفرض است که برای دسترسی به APIهای Firebase یا Cloud از یک تابع در حال اجرا استفاده میشود. این حساب توسط Firebase Admin SDK هنگام مقداردهی اولیه بدون آرگومان استفاده میشود.
قیمتگذاری
برای اطلاعات قیمتگذاری، به طرحهای قیمتگذاری Firebase مراجعه کنید.
شما میتوانید هزینههای مرتبط با Cloud Functions خود را به شرح زیر مشاهده کنید:
- به صفحه گزارشهای Cloud Billing در کنسول گوگل کلود بروید.
- در صورت درخواست، حساب پرداخت مرتبط با پروژه Google Cloud خود را انتخاب کنید.
- در پنل فیلترها ، در زیر Labels ، یک فیلتر برچسب با کلید
goog-managed-byو مقدارcloudfunctionsاضافه کنید.
محدودیتها
Cloud Functions for Firebase (نسل دوم) از رویدادهای Analytics پشتیبانی نمیکند.
اگرچه Cloud Functions for Firebase (نسل دوم) از رویدادهای مسدودکننده احراز هویت پشتیبانی میکنند، اما از همان مجموعه رویدادهای Authentication پایه مانند نسل اول پشتیبانی نمیکنند.
با این حال، از آنجا که توابع نسل اول و نسل دوم میتوانند در کنار هم در یک فایل منبع وجود داشته باشند، شما همچنان میتوانید تریگرهای Analytics و Authentication پایه را در نسل اول به همراه توابع نسل دوم توسعه داده و مستقر کنید.