Cloud Functions रीजनल है. इसका मतलब है कि आपका फ़ंक्शन चलाने वाला इन्फ़्रास्ट्रक्चर, कुछ खास इलाकों में मौजूद है. साथ ही, Google इसे मैनेज करता है, ताकि यह उन इलाकों के सभी ज़ोन में उपलब्ध हो.
यह चुनते समय कि आपके फ़ंक्शन किन इलाकों में चलेंगे, आपको मुख्य रूप से इंतज़ार का समय और उपलब्धता पर ध्यान देना चाहिए. आम तौर पर, अपने उपयोगकर्ताओं के आस-पास के इलाके चुने जा सकते हैं. हालांकि, आपको उन अन्य प्रॉडक्ट और सेवाओं की जगह भी ध्यान में रखनी चाहिए जिनका इस्तेमाल आपका ऐप्लिकेशन करता है. एक से ज़्यादा इलाकों में सेवाओं का इस्तेमाल करने से, आपके ऐप्लिकेशन के इंतज़ार का समय और कीमत पर असर पड़ सकता है.
डिफ़ॉल्ट रूप से, फ़ंक्शन us-central1
क्षेत्र में चलते हैं. ध्यान दें कि यह Cloud Storage बकेट जैसे किसी इवेंट सोर्स के क्षेत्र से अलग हो सकता है.
इस पेज पर आगे, जिस इलाके में फ़ंक्शन काम करता है उसे तय करने का तरीका जानें.
यह सुविधा इन देशों और इलाकों में उपलब्ध है
इस सेक्शन में मौजूद सूचियों में, energy_savings_leaf आइकॉन से पता चलता है कि इस इलाके के लिए बिजली, कम कार्बन उत्सर्जन वाले स्रोत से बनाई जाती है. ज़्यादा जानकारी के लिए, Google Cloud के क्षेत्रों के लिए कार्बन उत्सर्जन न करने वाली ऊर्जा देखें.
टियर 1 की कीमत
Cloud Functions, यहां दिए गए देशों/इलाकों में टीयर 1 की कीमत पर उपलब्ध है:
क्षेत्र | जगह | प्रॉडक्ट के ऐसे वर्शन जिन पर यह सुविधा काम करती है | CO2 उत्सर्जन |
---|---|---|---|
asia-east1 |
ताइवान | 1st gen, 2nd gen | |
asia-east2 |
हॉन्ग कॉन्ग | सिर्फ़ पहली पीढ़ी के लिए | |
asia-northeast1 |
टोक्यो | 1st gen, 2nd gen | |
asia-northeast2 |
ओसाका | 1st gen, 2nd gen | |
europe-north1 |
फ़िनलैंड | सिर्फ़ 2nd gen | energy_savings_leaf |
europe-southwest1 |
मैड्रिड | सिर्फ़ 2nd gen | |
europe-west1 |
बेल्जियम | 1st gen, 2nd gen | energy_savings_leaf |
europe-west4 |
नीदरलैंड्स | सिर्फ़ 2nd gen | |
europe-west8 |
मिलान | सिर्फ़ 2nd gen | |
europe-west9 |
पैरिस | सिर्फ़ 2nd gen | energy_savings_leaf |
me-west1 |
तेल अवीव | सिर्फ़ 2nd gen | |
europe-west2 |
लंदन | सिर्फ़ पहली पीढ़ी के लिए | |
us-central1 |
आयोवा | 1st gen, 2nd gen | energy_savings_leaf |
us-east1 |
दक्षिणी कैरोलीना | 1st gen, 2nd gen | |
us-east4 |
उत्तरी वर्जीनिया | 1st gen, 2nd gen | |
us-east5 |
कोलंबस | सिर्फ़ 2nd gen | |
us-south1 |
डलास | सिर्फ़ 2nd gen | |
us-west1 |
ऑरेगॉन | 1st gen, 2nd gen | energy_savings_leaf |
टियर 2 की कीमत
Cloud Functions, यहां दिए गए इलाकों में टीयर 2 की कीमत के साथ उपलब्ध है:
क्षेत्र | जगह | प्रॉडक्ट के ऐसे वर्शन जिन पर यह सुविधा काम करती है | CO2 उत्सर्जन |
---|---|---|---|
asia-east2 |
हॉन्ग कॉन्ग | सिर्फ़ 2nd gen | |
asia-northeast3 |
सियोल | 1st gen, 2nd gen | |
asia-southeast1 |
सिंगापुर | 1st gen, 2nd gen | |
asia-southeast2 |
जकार्ता | 1st gen, 2nd gen | |
asia-south1 |
मुंबई | सिर्फ़ 2nd gen | |
asia-south2 |
दिल्ली, भारत | सिर्फ़ 2nd gen | |
australia-southeast1 |
सिडनी | 1st gen, 2nd gen | |
australia-southeast2 |
मेलबोर्न | सिर्फ़ 2nd gen | |
europe-central2 |
वार्सा | 1st gen, 2nd gen | |
europe-west2 |
लंदन | सिर्फ़ 2nd gen | |
europe-west3 |
फ़्रैंकफ़र्ट | 1st gen, 2nd gen | energy_savings_leaf |
europe-west6 |
ज़ूरिख़ | 1st gen, 2nd gen | energy_savings_leaf |
europe-west10 |
बर्लिन | सिर्फ़ 2nd gen | |
europe-west12 |
टूरीन | सिर्फ़ 2nd gen | |
me-central1 |
दोहा | सिर्फ़ 2nd gen | |
me-central2 |
दम्मम | सिर्फ़ 2nd gen | |
northamerica-northeast1 |
मॉन्ट्रियल | 1st gen, 2nd gen | energy_savings_leaf |
northamerica-northeast2 |
टोरंटो | सिर्फ़ 2nd gen | energy_savings_leaf |
southamerica-east1 |
साओ पौलो | 1st gen, 2nd gen | energy_savings_leaf |
southamerica-west1 |
सैंटियागो, चिली | सिर्फ़ 2nd gen | |
us-west2 |
लॉस एंजिलीस | 1st gen, 2nd gen | |
us-west3 |
सॉल्ट लेक सिटी | 1st gen, 2nd gen | |
us-west4 |
लास वेगस | 1st gen, 2nd gen |
किसी प्रोजेक्ट के किसी क्षेत्र में मौजूद फ़ंक्शन के नाम यूनीक होने चाहिए. हालांकि, सभी क्षेत्रों या सभी प्रोजेक्ट में मौजूद फ़ंक्शन के नाम एक जैसे हो सकते हैं.
किसी इलाके की जानकारी देने के सबसे सही तरीके
डिफ़ॉल्ट रूप से, फ़ंक्शन us-central1
क्षेत्र में चलते हैं. ध्यान दें कि यह Cloud Storage बकेट जैसे किसी इवेंट सोर्स के क्षेत्र से अलग हो सकता है. अगर आपको यह बताना है कि कोई फ़ंक्शन किस इलाके में चलेगा, तो हर फ़ंक्शन ट्रिगर टाइप के लिए, इस सेक्शन में दिए गए सुझावों का पालन करें.
फ़ंक्शन के चलने की जगह सेट करने के लिए, फ़ंक्शन की परिभाषा में region
पैरामीटर को इस तरह सेट करें:
Node.js
exports.firestoreAsia = onDocumentCreated(
{
document: "my-collection/{docId}",
region: "asia-northeast1",
},
(event) => {},
);
Python
# Before
@firestore_fn.on_document_created("my-collection/{docId}")
def firestore_trigger(event):
pass
# After
@firestore_fn.on_document_created("my-collection/{docId}",
region="asia-northeast1")
def firestore_trigger_asia(event):
pass
region
में कॉमा लगाकर अलग की गई कई क्षेत्र वाली स्ट्रिंग डालकर, एक से ज़्यादा क्षेत्र तय किए जा सकते हैं. यह भी ध्यान रखें कि बैकग्राउंड ट्रिगर के कई टाइप के लिए इलाके की जानकारी देते समय, आपको इलाके के साथ-साथ सही इवेंट फ़िल्टर भी बताना होगा. ऊपर दिए गए उदाहरण में, यह Cloud Firestore document
है जो इवेंट को उत्सर्जित करता है. Cloud Storage ट्रिगर के लिए, इवेंट फ़िल्टर bucket
हो सकता है; Pub/Sub ट्रिगर के लिए यह topic
होगा वगैरह.
प्रोडक्शन ट्रैफ़िक को मैनेज करने वाले फ़ंक्शन के लिए क्षेत्र बदलने के बारे में ज़्यादा जानने के लिए, किसी फ़ंक्शन का क्षेत्र बदलना लेख पढ़ें.
एचटीटीपी और क्लाइंट-कॉल किए जा सकने वाले फ़ंक्शन
एचटीटीपी और कॉल किए जा सकने वाले फ़ंक्शन के लिए, हमारा सुझाव है कि आप पहले अपने फ़ंक्शन को डेस्टिनेशन क्षेत्र या सबसे ज़्यादा संभावित ग्राहकों के आस-पास सेट करें. इसके बाद, अपने मूल फ़ंक्शन में बदलाव करके, उसके एचटीटीपी अनुरोध को नए फ़ंक्शन पर रीडायरेक्ट करें. इन दोनों फ़ंक्शन का नाम एक ही हो सकता है. अगर आपके एचटीटीपी फ़ंक्शन के क्लाइंट, रीडायरेक्ट की सुविधा के साथ काम करते हैं, तो अपने नए फ़ंक्शन के यूआरएल के साथ एचटीटीपी रीडायरेक्ट स्टेटस (301) दिखाने के लिए, अपने मूल फ़ंक्शन को आसानी से बदला जा सकता है. अगर आपके क्लाइंट, रीडायरेक्ट को ठीक से मैनेज नहीं करते हैं, तो ओरिजनल फ़ंक्शन से नए फ़ंक्शन के लिए अनुरोध को प्रॉक्सी किया जा सकता है. इसके लिए, ओरिजनल फ़ंक्शन से नए फ़ंक्शन के लिए नया अनुरोध शुरू करें. आखिरी चरण में यह पक्का करना होता है कि सभी क्लाइंट, नए फ़ंक्शन को कॉल कर रहे हों.
कॉल किए जा सकने वाले फ़ंक्शन के लिए, क्लाइंट-साइड पर जगह चुनना
कॉल किए जा सकने वाले फ़ंक्शन के लिए, क्लाइंट कॉल किए जा सकने वाले सेटअप को एचटीटीपी फ़ंक्शन के लिए तय किए गए दिशा-निर्देशों का पालन करना चाहिए. क्लाइंट भी कोई क्षेत्र तय कर सकता है. अगर फ़ंक्शन us-central1
के अलावा किसी दूसरे क्षेत्र में चलता है, तो क्लाइंट को ऐसा करना ज़रूरी है.
क्लाइंट पर क्षेत्र सेट करने के लिए, शुरू करने के समय अपनी पसंद का क्षेत्र बताएं:
Swift
lazy var functions = Functions.functions(region:"europe-west1")
Objective-C
@property(strong, nonatomic) FIRFunctions *functions;
// ...
self.functions = [FIRFunctions functionsWithRegion:@"europe-west1"];
वेब
var functions = firebase.app().functions('europe-west1');
Android
private FirebaseFunctions mFunctions;
// ...
mFunctions = FirebaseFunctions.getInstance("europe-west1");
C++
firebase::functions::Functions* functions;
// ...
functions = firebase::functions::Functions::GetInstance("europe-west1");
Unity
firebase.Functions.FirebaseFunctions functions;
functions = Firebase.Functions.FirebaseFunctions.GetInstance("europe-west1");
बैकग्राउंड फ़ंक्शन
बैकग्राउंड फ़ंक्शन, कम से कम एक बार इवेंट डिलीवरी से जुड़े सेमेंटिक का इस्तेमाल करते हैं. इसका मतलब है कि कुछ मामलों में, उन्हें डुप्लीकेट इवेंट मिल सकते हैं. इसलिए, आपको एक जैसे नतीजे देने वाले फ़ंक्शन लागू करने चाहिए. अगर आपका फ़ंक्शन पहले से ही एक जैसा है, तो उसी इवेंट ट्रिगर के साथ नए क्षेत्र में फ़ंक्शन को फिर से डिप्लॉय किया जा सकता है. साथ ही, यह पुष्टि करने के बाद कि नया फ़ंक्शन सही तरीके से ट्रैफ़िक पा रहा है, पुराने फ़ंक्शन को हटाया जा सकता है. इस ट्रांज़िशन के दौरान, दोनों फ़ंक्शन को इवेंट मिलेंगे. फ़ंक्शन के लिए क्षेत्र बदलने के लिए, निर्देशों के सुझाए गए क्रम के बारे में जानने के लिए, किसी फ़ंक्शन का क्षेत्र बदलना देखें.
अगर आपका फ़ंक्शन फ़िलहाल एक बार काम करने वाला नहीं है या एक बार काम करने की सुविधा, किसी इलाके से बाहर नहीं है, तो हमारा सुझाव है कि फ़ंक्शन को किसी दूसरे इलाके में ले जाने से पहले, एक बार काम करने की सुविधा लागू करें.
इवेंट ट्रिगर के टाइप के हिसाब से, सबसे सही इलाके के सुझाव अलग-अलग होते हैं:
ट्रिगर का प्रकार | क्षेत्र के हिसाब से सुझाव |
---|---|
Cloud Firestore | Cloud Firestore इंस्टेंस की जगह के सबसे नज़दीक का इलाका (अगला सेक्शन देखें) |
Realtime Database | हमेशा us-central1 |
Cloud Storage | Cloud Storageबकेट की जगह के सबसे नज़दीक का क्षेत्र (अगला सेक्शन देखें) |
अन्य | अगर फ़ंक्शन में Realtime Database इंस्टेंस, Cloud Firestore
इंस्टेंस या Cloud Storage बकेट के साथ इंटरैक्ट किया जा रहा है, तो सुझाया गया क्षेत्र वही होगा जो उनमें से किसी एक संसाधन से ट्रिगर किए गए फ़ंक्शन के लिए होता है. इसके अलावा, us-central1 के डिफ़ॉल्ट क्षेत्र का इस्तेमाल करें.
Firebase Hosting से कनेक्ट किए गए फ़ंक्शन किसी भी इलाके में हो सकते हैं. हालांकि, सुझावों के लिए,
होस्टिंग सर्वरलेस की खास जानकारी देखें. |
Cloud Firestore और Cloud Storage जगहों के आधार पर इलाके चुनना
फ़ंक्शन के लिए उपलब्ध क्षेत्र, हमेशा आपके Cloud Firestore डेटाबेस और Cloud Storage बकेट के लिए उपलब्ध क्षेत्रों से पूरी तरह मेल नहीं खाते.
ध्यान दें कि अगर आपका फ़ंक्शन और आपका रिसॉर्स (डेटाबेस इंस्टेंस या Cloud Storage बकेट) अलग-अलग जगहों पर हैं, तो आपको इंतज़ार का समय बढ़ सकता है और बिलिंग की लागत भी बढ़ सकती है.
यहां Cloud Firestore और Cloud Storage के लिए, उन देशों/इलाकों की सूची दी गई है जहां ये सुविधाएं काम करती हैं. यह सूची उन मामलों के लिए है जहां एक ही देश/इलाके में ये सुविधाएं काम नहीं करती:
Cloud Firestore और Cloud Storage के लिए इलाका/एक से ज़्यादा इलाका | फ़ंक्शन के लिए सबसे नज़दीकी क्षेत्र |
---|---|
nam5 या us-central (मल्टी-रीजन) |
us-central1 |
eur3 या europe-west (मल्टी-रीजन) |
europe-west1 |
europe-west4 (नीदरलैंड्स) |
europe-west1 |
asia-south1 (मुंबई) |
asia-east2 |
asia-south2 (दिल्ली) |
asia-east2 |
australia-southeast2 (मेलबर्न) |
australia-southeast1 |