इस पेज पर, Cloud Functions के लिए इस्तेमाल के हिसाब से तय की गई सीमाओं के बारे में बताया गया है. ये सीमाएं, इस्तेमाल के हिसाब से पैसे चुकाने वाले ब्लेज़ प्लान के हिसाब से तय की गई हैं. ये सीमाएं, Firebase के उन प्रोजेक्ट पर लागू होती हैं जिनमें Node.js 10 रनटाइम एनवायरमेंट में फ़ंक्शन डिप्लॉय किए जाते हैं.
ब्लेज़ प्लान में, कॉल, कंप्यूट टाइम, और इंटरनेट ट्रैफ़िक की ज़्यादा से ज़्यादा सीमाएं तय की गई हैं. इसके लिए कोई शुल्क नहीं लिया जाता. हालांकि, फ़ंक्शन डिप्लॉयमेंट के लिए, फ़ंक्शन के कंटेनर के लिए इस्तेमाल की गई स्टोरेज स्पेस के लिए, कम शुल्क लिया जाता है. ज़्यादा जानकारी के लिए, अक्सर पूछे जाने वाले सवाल देखें .
Cloud Functions के कोटे में चार तरह की सीमाएं शामिल हैं:
संसाधन की सीमाएं
इनसे यह तय होता है कि आपके फ़ंक्शन, कुल कितने संसाधन इस्तेमाल कर सकते हैं.
समयसीमाएं
इनसे यह तय होता है कि कोई चीज़ कितने समय तक चल सकती है.
दर की सीमाएं
इनसे यह तय होता है कि अपने फ़ंक्शन मैनेज करने के लिए, Cloud Functions API को कितनी बार कॉल किया जा सकता है.
नेटवर्किंग की सीमाएं
इनसे आउटबाउंड कनेक्शन और इंस्टेंस की सीमाएं तय होती हैं.
अलग-अलग तरह की सीमाओं के बारे में ज़्यादा जानकारी नीचे दी गई है. Cloud Functions (1st gen) और Cloud Functions (2nd gen) की सीमाओं के बीच के अंतर को, जहां लागू हो वहां नोट किया गया है.
संसाधन की सीमाएं
संसाधन की सीमाओं से यह तय होता है कि आपके फ़ंक्शन, कुल कितने संसाधन इस्तेमाल कर सकते हैं. क्षेत्र के हिसाब से सीमाएं, हर प्रोजेक्ट के लिए अलग-अलग होती हैं. साथ ही, हर प्रोजेक्ट की अपनी सीमाएं होती हैं.
| कोटा | ब्यौरा | सीमा (पहली जनरेशन) | सीमा (दूसरी जनरेशन) | बढ़ाया जा सकता है | दायरा |
|---|---|---|---|---|---|
| फ़ंक्शन की संख्या | हर इलाके में डिप्लॉय किए जा सकने वाले फ़ंक्शन की कुल संख्या | 1,000 | 1,000. इसमें से, डिप्लॉय की गई Cloud Run सेवाओं की संख्या घटा दी जाती है | नहीं | हर इलाके के लिए |
| डिप्लॉयमेंट का ज़्यादा से ज़्यादा साइज़ | किसी एक फ़ंक्शन के डिप्लॉयमेंट का ज़्यादा से ज़्यादा साइज़ | सोर्स के लिए 100 एमबी (कंप्रेस किया गया). सोर्स और मॉड्यूल के लिए 500 एमबी (कंप्रेस नहीं किया गया). |
लागू नहीं | नहीं | हर फ़ंक्शन के लिए |
| एचटीटीपी अनुरोध का ज़्यादा से ज़्यादा साइज़ (कंप्रेस नहीं किया गया) | एचटीटीपी अनुरोध में, एचटीटीपी फ़ंक्शन को भेजा गया डेटा | 10 एमबी | 32 एमबी | नहीं | हर कॉल के लिए |
| एचटीटीपी रिस्पॉन्स का ज़्यादा से ज़्यादा साइज़ (कंप्रेस नहीं किया गया) | एचटीटीपी रिस्पॉन्स में, एचटीटीपी फ़ंक्शन से भेजा गया डेटा | 10 एमबी | स्ट्रीमिंग रिस्पॉन्स के लिए 10 एमबी. नॉन-स्ट्रीमिंग रिस्पॉन्स के लिए 32 एमबी. |
नहीं | हर कॉल के लिए |
| इवेंट-ड्रिवन फ़ंक्शन के लिए, इवेंट का ज़्यादा से ज़्यादा साइज़ | बैकग्राउंड फ़ंक्शन को इवेंट में भेजा गया डेटा | 10 एमबी | Eventarc इवेंट के लिए 512 केबी. लेगसी इवेंट के लिए 10 एमबी. |
नहीं | हर इवेंट के लिए |
| फ़ंक्शन की ज़्यादा से ज़्यादा मेमोरी | हर फ़ंक्शन इंस्टेंस, कितनी मेमोरी इस्तेमाल कर सकता है | 8 जीबी | 32 जीबी | नहीं | हर फ़ंक्शन के लिए |
| प्रोजेक्ट की ज़्यादा से ज़्यादा मेमोरी | बाइट में, कोई प्रोजेक्ट कितनी मेमोरी इस्तेमाल कर सकता है. इसे, एक मिनट की अवधि में, फ़ंक्शन इंस्टेंस के लिए उपयोगकर्ता की ओर से अनुरोध की गई मेमोरी के कुल योग से मापा जाता है. | यह चुने गए इलाके पर निर्भर करता है. ज़्यादा क्षमता वाले इलाकों में यह सीमा ज़्यादा हो सकती है या हाल ही में खुले इलाकों में कम हो सकती है. | लागू नहीं | हां | हर प्रोजेक्ट और इलाके के लिए |
| प्रोजेक्ट के लिए ज़्यादा से ज़्यादा सीपीयू | मिली वीसीपीयू में, कोई प्रोजेक्ट कितने सीपीयू इस्तेमाल कर सकता है. इसे, एक मिनट की अवधि में, फ़ंक्शन इंस्टेंस के लिए उपयोगकर्ता की ओर से अनुरोध किए गए सीपीयू के कुल योग से मापा जाता है. | यह चुने गए इलाके पर निर्भर करता है. ज़्यादा क्षमता वाले इलाकों में यह सीमा ज़्यादा हो सकती है या हाल ही में खुले इलाकों में कम हो सकती है. | लागू नहीं | हां | हर प्रोजेक्ट और इलाके के लिए |
समयसीमाएं
| कोटा | ब्यौरा | सीमा (पहली जनरेशन) | सीमा (दूसरी जनरेशन) | बढ़ाया जा सकता है | दायरा |
|---|---|---|---|---|---|
| फ़ंक्शन की ज़्यादा से ज़्यादा अवधि | कोई फ़ंक्शन, ज़बरदस्ती बंद किए जाने से पहले ज़्यादा से ज़्यादा कितने समय तक चल सकता है | 540 सेकंड |
|
नहीं | हर कॉल के लिए |
दर की सीमाएं
| कोटा | ब्यौरा | सीमा (पहली जनरेशन) | सीमा (दूसरी जनरेशन) | बढ़ाया जा सकता है | दायरा |
|---|---|---|---|---|---|
| एपीआई कॉल (पढ़ें) | Cloud Functions API की मदद से, फ़ंक्शन की जानकारी पाने या उन्हें सूची में शामिल करने के लिए किए गए कॉल | हर 100 सेकंड में 5,000 | हर 60 सेकंड में 1,200 | सिर्फ़ पहली जनरेशन के लिए | हर प्रोजेक्ट के लिए (1st gen) हर इलाके के लिए (2nd gen) |
| एपीआई कॉल (लिखें) | Cloud Functions API की मदद से, फ़ंक्शन डिप्लॉय करने या मिटाने के लिए किए गए कॉल | हर 100 सेकंड में 80 | हर 60 सेकंड में 60 | नहीं 1 | हर प्रोजेक्ट के लिए (1st gen) हर इलाके के लिए (2nd gen) |
| एपीआई कॉल (कॉल करें) | "कॉल" एपीआई के लिए किए गए कॉल | हर 100 सेकंड में 16 | लागू नहीं | नहीं 2 | हर प्रोजेक्ट के लिए |
नेटवर्किंग की सीमाएं
Cloud Functions (दूसरी जनरेशन) के नेटवर्किंग अनुरोध और बैंडविथ की सीमाओं के बारे में जानने के लिए, नेटवर्किंग की सीमाएं देखें.
Cloud Functions (1st gen) पर, नेटवर्किंग की ये सीमाएं लागू होती हैं:
- हर इंस्टेंस के लिए, हर सेकंड में आउटबाउंड कनेक्शन: 500 (इसे बढ़ाया नहीं जा सकता)
- हर इंस्टेंस के लिए, हर सेकंड में आउटबाउंड डीएनएस रिज़ॉल्यूशन: 100 (इसे बढ़ाया नहीं जा सकता)
- हर इंस्टेंस के लिए, हर सेकंड में ज़्यादा से ज़्यादा पैकेट: 80,000
- हर इंस्टेंस के लिए, हर सेकंड में ज़्यादा से ज़्यादा बिट: 10,00,00,000
बढ़ाए जा सकने की योग्यता
Cloud Functions एचटीटीपी की मदद से कॉल किए गए, आने वाले ट्रैफ़िक को हैंडल करने के लिए तेज़ी से स्केल अप होते हैं, वहीं, बैकग्राउंड फ़ंक्शन धीरे-धीरे स्केल अप होते हैं. किसी फ़ंक्शन के स्केल अप होने की क्षमता, कुछ चीज़ों पर निर्भर करती है. जैसे:
- किसी फ़ंक्शन के एक्ज़ीक्यूशन को पूरा होने में लगने वाला समय. आम तौर पर, कम समय में पूरे होने वाले फ़ंक्शन, एक साथ कई अनुरोधों को हैंडल करने के लिए स्केल अप हो सकते हैं.
- कोल्ड स्टार्ट पर, किसी फ़ंक्शन को शुरू होने में लगने वाला समय.
- आपके फ़ंक्शन की गड़बड़ी की दर.
अस्थायी चीज़ें, जैसे कि इलाके के हिसाब से लोड और डेटा सेंटर की क्षमता.
बैकग्राउंड फ़ंक्शन के लिए अतिरिक्त कोटे
| कोटा | ब्यौरा | सीमा | बढ़ाया जा सकता है | दायरा | प्रॉडक्ट का वर्शन |
|---|---|---|---|---|---|
| एक साथ कॉल की ज़्यादा से ज़्यादा संख्या | किसी एक फ़ंक्शन को एक साथ कॉल करने की ज़्यादा से ज़्यादा संख्या उदाहरण: अगर हर इवेंट को हैंडल करने में 100 सेकंड लगते हैं, तो कॉल की दर औसतन हर सेकंड में 30 तक सीमित रहेगी |
3,000 | हां | हर फ़ंक्शन के लिए | सिर्फ़ पहली जनरेशन के लिए |
| कॉल की ज़्यादा से ज़्यादा दर | किसी एक फ़ंक्शन से हैंडल किए जा रहे इवेंट की ज़्यादा से ज़्यादा दर उदाहरण: अगर किसी इवेंट को हैंडल करने में 100 मिलीसेकंड लगते हैं, तो कॉल की दर हर सेकंड में 1,000 तक सीमित रहेगी. भले ही, औसतन सिर्फ़ 100 अनुरोध एक साथ हैंडल किए जा रहे हों |
हर सेकंड में 1,000 | नहीं | हर फ़ंक्शन के लिए | सिर्फ़ पहली जनरेशन के लिए |
| एक साथ इवेंट डेटा का ज़्यादा से ज़्यादा साइज़ | किसी एक फ़ंक्शन को एक साथ कॉल करने पर, आने वाले इवेंट का कुल ज़्यादा से ज़्यादा साइज़ उदाहरण: अगर इवेंट का साइज़ 1 एमबी है और उन्हें प्रोसेस करने में 10 सेकंड लगते हैं, तो औसत दर हर सेकंड में एक इवेंट होगी. ऐसा इसलिए, क्योंकि पहले 10 इवेंट में से किसी एक को प्रोसेस करने की प्रोसेस पूरी होने तक, 11वें इवेंट को प्रोसेस नहीं किया जाएगा |
10 एमबी | नहीं | हर फ़ंक्शन के लिए | पहली और दूसरी, दोनों जनरेशन के लिए |
| आने वाले इवेंट का ज़्यादा से ज़्यादा थ्रूपुट | किसी एक फ़ंक्शन को आने वाले इवेंट का ज़्यादा से ज़्यादा थ्रूपुट उदाहरण: अगर इवेंट का साइज़ 1 एमबी है, तो कॉल की दर ज़्यादा से ज़्यादा हर सेकंड में 10 हो सकती है. भले ही, फ़ंक्शन 100 मिलीसेकंड में पूरे हो जाएं |
हर सेकंड में 10 एमबी | नहीं | हर फ़ंक्शन के लिए | पहली और दूसरी, दोनों जनरेशन के लिए |
कोटे की सीमा पूरी होने पर क्या होता है
जब कोई फ़ंक्शन, आवंटित किए गए सभी संसाधनों का इस्तेमाल कर लेता है, तो कोटा रीफ़्रेश होने या बढ़ने तक, संसाधन उपलब्ध नहीं होता. इसका मतलब है कि तब तक आपका फ़ंक्शन और उसी प्रोजेक्ट में मौजूद अन्य सभी फ़ंक्शन काम नहीं करेंगे. जब कोई संसाधन, कोटे से ज़्यादा इस्तेमाल हो जाता है और फ़ंक्शन को एक्ज़ीक्यूट नहीं किया जा सकता, तो फ़ंक्शन, एचटीटीपी 500 गड़बड़ी कोड दिखाता है.
यहां बताई गई डिफ़ॉल्ट सीमाओं से ज़्यादा कोटे पाने के लिए, Cloud Functions कोटे वाला पेज पर जाएं. इसके बाद, वे कोटे चुनें जिनमें आपको बदलाव करना है. इसके बाद, कोटे में बदलाव करें पर क्लिक करें. अगर आपसे उपयोगकर्ता की जानकारी मांगी जाती है, तो वह जानकारी दें. इसके बाद, चुने गए हर कोटे के लिए, कोटे की नई सीमा डालें.
Firebase CLI से डिप्लॉयमेंट के लिए कोटे की सीमाएं
Firebase CLI से डिप्लॉय किए गए हर फ़ंक्शन के लिए, दर और समय की इन सीमाओं पर असर पड़ता है:
- एपीआई कॉल (पढ़ें) - हर डिप्लॉयमेंट के लिए एक कॉल. भले ही, कितने भी फ़ंक्शन डिप्लॉय किए जाएं
- सीमा: हर 100 सेकंड में 5,000
- एपीआई कॉल (लिखें) - हर फ़ंक्शन के लिए एक कॉल
- सीमा: हर 100 सेकंड में 80
Firebase CLI का रेफ़रंस भी देखें.