دو نسخه از 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 با ۲ vCPU | تا ۱۶ گیبیبایت RAM با ۴ پردازنده مجازی |
| همرس | ۱ درخواست همزمان برای هر نمونه تابع | تا ۱۰۰۰ درخواست همزمان برای هر نمونه تابع |
* این حساب سرویس پیشفرضی است که برای دسترسی به Firebase یا Cloud API از تابع درحال اجرا استفاده میشود. وقتی بدون آرگومان مقداردهی اولیه میکنید، Firebase Admin SDK از آن استفاده میکند.
قیمتگذاری
برای اطلاعات قیمتگذاری، طرحهای قیمتگذاری Firebase را ببینید.
میتوانید هزینههای مرتبط با Cloud Functions را بهصورت زیر مشاهده کنید:
- به Cloud Billing صفحه «گزارشها» در Google Cloud کنسول بروید.
- اگر درخواست شد، حساب صورتحساب مرتبط با پروژه Google Cloud خود را انتخاب کنید.
- در پانل فیلترها، در بخش برچسبها،
فیلتر برچسبی با کلید
goog-managed-byو مقدارcloudfunctionsاضافه کنید.
محدودیتها
Cloud Functions for Firebase (نسل دوم) از رویدادهای Analytics پشتیبانی نمیکند.
بااینحال، چون توابع نسل اول و نسل دوم میتوانند در یک فایل منبع درکنار هم وجود داشته باشند، همچنان میتوانید راهاندازهای Analytics را در نسل اول همراه با توابع نسل دوم توسعه دهید و مستقر کنید.