Cloud Functions के वर्शन की तुलना

Cloud Functions for Firebase के दो वर्शन हैं:

  • Cloud Functions (दूसरी जनरेशन), जो आपके फ़ंक्शन को Cloud Run पर सेवाओं के तौर पर डिप्लॉय करता है. इससे आपको Eventarc और Pub/Sub का इस्तेमाल करके, उन्हें ट्रिगर करने की सुविधा मिलती है.
  • Cloud Functions (पहली जनरेशन), फ़ंक्शन का ओरिजनल वर्शन है. इसमें इवेंट ट्रिगर और कॉन्फ़िगरेशन की सुविधा सीमित है.

हमारा सुझाव है कि जहां भी हो सके वहां नए फ़ंक्शन के लिए, Cloud Functions (दूसरी जनरेशन) को चुनें. हालांकि, हम Cloud Functions (पहली जनरेशन) के साथ काम करना जारी रखेंगे.

इस पेज पर, Cloud Functions में जोड़ी गई सुविधाओं के बारे में बताया गया है. साथ ही, दोनों प्रॉडक्ट वर्शन की तुलना की गई है.

Cloud Functions (2nd gen)

Cloud Functions, Firebase की अगली जनरेशन की Functions-as-a-Service सुविधा है. Cloud Run और Eventarc पर बनाया गया Cloud Functions (दूसरी जनरेशन) Cloud Functions के लिए बेहतर इन्फ़्रास्ट्रक्चर और इवेंट का ज़्यादा कवरेज उपलब्ध कराता है. इसमें ये शामिल हैं:

  • Cloud Run पर आधारित: फ़ंक्शन, Cloud Build की मदद से बनाए जाते हैं और Cloud Run के डिफ़ॉल्ट एक्ज़ीक्यूशन एनवायरमेंट का इस्तेमाल करके, Cloud Run सेवाओं के तौर पर डिप्लॉय किए जाते हैं. इससे आपको अपनी Cloud Run सेवा के हिसाब से फ़ंक्शन को पसंद के मुताबिक बनाने की सुविधा मिलती है. अपनी सेवा को कॉन्फ़िगर करने के विकल्पों के बारे में जानने के लिए, Cloud Run का दस्तावेज़ देखें. जैसे, मेमोरी की सीमाएं, एनवायरमेंट वैरिएबल वगैरह.
  • अनुरोध को प्रोसेस करने में ज़्यादा समय लगता है: ज़्यादा समय लेने वाले अनुरोधों को प्रोसेस करें. जैसे, Cloud Storage या BigQuery से डेटा की बड़ी स्ट्रीम को प्रोसेस करना.
  • बड़े इंस्टेंस साइज़: ज़्यादा मेमोरी वाले, कंप्यूटिंग के लिए ज़्यादा संसाधनों की ज़रूरत वाले, और पैरलल वर्कलोड चलाएं.
  • एक साथ ज़्यादा अनुरोधों को प्रोसेस करने की बेहतर सुविधा: एक साथ किए जाने वाले कई अनुरोधों को एक ही फ़ंक्शन इंस्टेंस से मैनेज करें, ताकि कोल्ड स्टार्ट को कम किया जा सके और लेटेन्सी को बेहतर बनाया जा सके.
  • ट्रैफ़िक मैनेजमेंट: अलग-अलग फ़ंक्शन के वर्शन के बीच ट्रैफ़िक को बांटें या किसी फ़ंक्शन को पिछले वर्शन पर वापस ले जाएं.
  • Eventarc इंटिग्रेशन: Eventarc ट्रिगर के लिए नेटिव सपोर्ट. इससे Eventarc के साथ काम करने वाले 90 से ज़्यादा इवेंट सोर्स, Cloud Functions के साथ काम करने लगते हैं.
  • CloudEvents के लिए बेहतर सपोर्ट: सभी भाषा के रनटाइम में, इंडस्ट्री स्टैंडर्ड वाले CloudEvents के लिए सपोर्ट. इससे डेवलपर को एक जैसा अनुभव मिलता है.

ज़्यादा जानकारी के लिए, तुलना के लिए दी गई टेबल देखें.

ऐसा इसलिए, क्योंकि Cloud Functions, Cloud Run पर फ़ंक्शन को सेवाओं के तौर पर डिप्लॉय करता है. साथ ही, Cloud Functions, Cloud Run के साथ संसाधन कोटा और सीमाएं शेयर करता है. कोटा देखें.

तुलना करने वाली टेबल

सुविधा Cloud Functions (पहली जनरेशन) Cloud Functions
इमेज रजिस्ट्री Container Registry या Artifact Registry सिर्फ़ Artifact Registry
अनुरोध का समय खत्म नौ मिनट तक
  • एचटीटीपी ट्रिगर किए गए फ़ंक्शन के लिए 60 मिनट तक
  • इवेंट ट्रिगर करने वाले फ़ंक्शन के लिए, ज़्यादा से ज़्यादा 9 मिनट
सेवा खाता* Google App Engine सेवा खाता (PROJECT_ID@appspot.gserviceaccount.com) Google Cloud का डिफ़ॉल्ट कंप्यूट सेवा खाता (PROJECT_NUMBER-compute@developer.gserviceaccount.com)
इंस्टेंस का साइज़ दो vCPU के साथ 8 जीबी तक रैम 4 vCPU के साथ 16 जीबी रैम तक
कॉनकरंसी हर फ़ंक्शन इंस्टेंस के लिए एक साथ किया जाने वाला एक अनुरोध हर फ़ंक्शन इंस्टेंस के लिए, एक साथ ज़्यादा से ज़्यादा 1,000 अनुरोध

* यह डिफ़ॉल्ट सेवा खाता है. इसका इस्तेमाल, चालू फ़ंक्शन से Firebase या Cloud API को ऐक्सेस करने के लिए किया जाता है. इसका इस्तेमाल Firebase Admin SDK तब करता है, जब आपने बिना किसी तर्क के शुरू किया हो.

कीमत

कीमत के बारे में जानकारी के लिए, Firebase की कीमतें देखें.

Cloud Functions से जुड़ी लागत देखने के लिए, यह तरीका अपनाएं:

  1. Google Cloud Console में, Cloud Billing रिपोर्ट पेज पर जाएं.
  2. अगर कहा जाए, तो अपने Google Cloud प्रोजेक्ट से जुड़ा बिलिंग खाता चुनें.
  3. फ़िल्टर पैनल में, लेबल में जाकर, लेबल फ़िल्टर जोड़ें. इसके लिए, कुंजी goog-managed-by और वैल्यू cloudfunctions का इस्तेमाल करें.

सीमाएं

Cloud Functions for Firebase (दूसरी जनरेशन) में Analytics इवेंट के लिए सहायता उपलब्ध नहीं है.

Cloud Functions for Firebase (2nd gen) में, पुष्टि करने की प्रोसेस को ब्लॉक करने वाले इवेंट इस्तेमाल किए जा सकते हैं. हालांकि, इसमें 1st gen के Authentication के इवेंट का वही सेट इस्तेमाल नहीं किया जा सकता.

हालांकि, 1st gen और 2nd gen फ़ंक्शन, एक ही सोर्स फ़ाइल में साथ-साथ काम कर सकते हैं. इसलिए, 1st gen फ़ंक्शन के साथ-साथ 2nd gen फ़ंक्शन में भी Analytics और बुनियादी Authentication ट्रिगर को डेवलप और डिप्लॉय किया जा सकता है.