دو نسخه از Cloud Functions for Firebase وجود دارد:
- Cloud Functions (نسل دوم)، که توابع شما را بهعنوان سرویس در Cloud Run مستقر میکند و به شما امکان میدهد آنها را بااستفاده از Eventarc و Pub/Sub راهاندازی کنید.
- Cloud Functions (نسل اول)، نسخه اصلی توابع با راهاندازهای رویداد و پیکربندی محدود.
توصیه میکنیم برای توابع جدید، هرجا ممکن است Cloud Functions (نسل دوم) را انتخاب کنید. بااینحال، قصد داریم به پشتیبانی از Cloud Functions (نسل اول) ادامه دهیم.
این صفحه ویژگیهای معرفیشده در Cloud Functions را شرح میدهد و مقایسهای بین دو نسخه محصول ارائه میدهد.
Cloud Functions (نسل دوم)
Cloud Functions نسل بعدی پیشنهاد «توابع بهعنوان سرویس» Firebase است. 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 همرسانی میکند. سهمیهها را ببینید.
جدول مقایسه
| ویژگی | Cloud Functions (نسل اول) | Cloud Functions |
|---|---|---|
| ثبت تصویر | Container Registry یا Artifact Registry | فقط Artifact Registry |
| مهلت درخواست تمام شد | تا ۹ دقیقه |
|
| حساب سرویس* | حساب سرویس Google App Engine (PROJECT_ID@ |
حساب خدمات محاسباتی پیشفرض Google Cloud (PROJECT_NUMBER-compute@developer.gserviceaccount.com) |
| اندازه نمونه | تا ۸ گیگابایت حافظه دسترسی تصادفی با ۲ واحد پردازش مرکزی مجازی | تا ۱۶ گیبیبایت RAM با ۴ پردازنده مجازی |
| همزمانی | ۱ درخواست همزمان برای هر نمونه تابع | تا ۱۰۰۰ درخواست همزمان برای هر نمونه تابع |
* این حساب سرویس پیشفرضی است که برای دسترسی به Firebase یا Cloud APIs از تابع درحال اجرا استفاده میشود. وقتی بدون آرگومان مقداردهی اولیه میکنید، Firebase Admin SDK از آن استفاده میکند.
قیمتگذاری
برای اطلاع از قیمتها، طرحهای قیمتگذاری Firebase را ببینید.
میتوانید هزینههای مرتبط با Cloud Functions را بهصورت زیر مشاهده کنید:
- به Cloud Billing صفحه گزارشها در Google Cloud کنسول بروید.
- اگر درخواست شد، حساب صورتحساب مرتبط با پروژه Google Cloud خود را انتخاب کنید.
- در پانل فیلترها، در بخش برچسبها،
فیلتر برچسبی با کلید
goog-managed-byو مقدارcloudfunctionsاضافه کنید.
محدودیتها
Cloud Functions for Firebase (نسل دوم) از رویدادهای Analytics پشتیبانی نمیکند.
بااینحال، چون توابع نسل اول و نسل دوم میتوانند در یک فایل منبع درکنار هم وجود داشته باشند، همچنان میتوانید راهاندازهای Analytics را در نسل اول بههمراه توابع نسل دوم توسعه دهید و مستقر کنید.