Cloud Functions रीजनल है. इसका मतलब है कि वह इन्फ़्रास्ट्रक्चर जो आपके फ़ंक्शन कुछ खास क्षेत्रों में मौजूद हो और Google इसे इन दोनों में ग़ैर-ज़रूरी है उन इलाकों के सभी ज़ोन.
फ़ंक्शन को किन क्षेत्रों में चलाना है, यह चुनते समय आपके मुख्य फ़ंक्शन इंतज़ार का समय और उपलब्धता पर विचार किया जाना चाहिए. आप आम तौर पर, अपने उपयोगकर्ताओं के आस-पास के इलाकों को चुनते हैं, लेकिन को भी ध्यान में रखना चाहिए कि दूसरे प्रॉडक्ट और सेवाएं जो आपका ऐप्लिकेशन इस्तेमाल करता है. कई क्षेत्रों में सेवाएं इस्तेमाल करने से आपके ऐप्लिकेशन के इंतज़ार का समय, और कीमत.
डिफ़ॉल्ट रूप से, फ़ंक्शन us-central1
क्षेत्र में चलते हैं. ध्यान दें कि यह
इवेंट सोर्स के क्षेत्र से अलग होता है, जैसे कि Cloud Storage बकेट.
सीखें कि कैसे
उस क्षेत्र के बारे में बताएं जहां फ़ंक्शन चलता है
इस पेज पर बाद में.
इन देशों और इलाकों में मान्य है
इस अनुभाग की सूचियों में, ऊर्जा_बचत_पत्ती आइकॉन से पता चलता है कि इस इलाके में बिजली पैदा होती है कम कार्बन उत्सर्जन. ज़्यादा जानकारी के लिए, यह देखें Google Cloud के क्षेत्रों के लिए, कार्बन-फ़्री ऊर्जा.
Cloud Functions, इन देशों/इलाकों में उपलब्ध है टियर 1 की कीमत:
asia-east1
(ताइवान)- सिर्फ़
asia-east2
(हॉन्ग कॉन्ग) 1st gen asia-northeast1
(टोक्यो)asia-northeast2
(ओसाका)europe-north1
(फ़िनलैंड) ऊर्जा_बचत_पत्ती सिर्फ़ 2nd geneurope-west1
(बेल्जियम) ऊर्जा_बचत_पत्ती- सिर्फ़
europe-west2
(लंदन) 1st gen us-central1
(आयोवा) ऊर्जा_बचत_पत्तीus-east1
(दक्षिण कैरोलाइना)us-east4
(उत्तरी वर्जीनिया)us-west1
(ओरेगन) ऊर्जा_बचत_पत्ती
Cloud Functions, इन देशों/इलाकों में उपलब्ध है टियर 2 की कीमत:
- सिर्फ़
asia-east2
(हॉन्ग कॉन्ग) 2nd gen asia-northeast3
(सोल)asia-southeast1
(सिंगापुर)asia-southeast2
(जकार्ता)- सिर्फ़
asia-south1
(मुंबई) 2nd gen australia-southeast1
(सिडनी)- सिर्फ़
australia-southeast2
(मेलबर्न) 2nd gen europe-central2
(वारसॉ)- सिर्फ़
europe-west2
(लंदन) 2nd gen europe-west3
(फ़्रैंकफ़र्ट)europe-west6
(ज़्यूरिख) ऊर्जा_बचत_पत्तीnorthamerica-northeast1
(मॉन्ट्रियल) ऊर्जा_बचत_पत्तीnorthamerica-northeast2
(टोरंटो) ऊर्जा_बचत_पत्ती सिर्फ़ 2nd gensouthamerica-east1
(साओ पाओलो) ऊर्जा_बचत_पत्तीsouthamerica-west1
(सैंटियागो, चिली) सिर्फ़ 2nd genus-west2
(लॉस एंजेलिस)us-west3
(साल्ट लेक सिटी)us-west4
(लास वेगास)
किसी प्रोजेक्ट के दिए गए इलाके के फ़ंक्शन यूनीक होने चाहिए (केस असंवेदनशील) नाम, लेकिन अलग-अलग क्षेत्रों या अलग-अलग प्रोजेक्ट में मौजूद फ़ंक्शन एक-दूसरे के साथ शेयर किए जा सकते हैं एक ही नाम.
क्षेत्र तय करने के सबसे सही तरीके
डिफ़ॉल्ट रूप से, फ़ंक्शन 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
होगा. इसके बाद यह होता रहेगा.
यहां जाएं: फ़ंक्शन का क्षेत्र बदलना डेटा को हैंडल करने वाले फ़ंक्शन के लिए क्षेत्र बदलने के बारे में ज़्यादा जानें प्रोडक्शन ट्रैफ़िक.
एचटीटीपी और क्लाइंट-कॉल करने लायक फ़ंक्शन
एचटीटीपी और कॉल करने लायक फ़ंक्शन के लिए, हमारा सुझाव है कि आप पहले अपने फ़ंक्शन को डेस्टिनेशन क्षेत्र या उस जगह के सबसे नज़दीक जहां से सबसे ज़्यादा ग्राहक मिलते हैं और फिर अपने मूल फ़ंक्शन को बदल कर उसके HTTP अनुरोध को नए फ़ंक्शन (एक ही नाम हो सकता है). अगर आपके एचटीटीपी फ़ंक्शन के क्लाइंट रीडायरेक्ट करता है, तो आप एक HTTP रीडायरेक्ट स्थिति (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");
बैकग्राउंड के फ़ंक्शन
बैकग्राउंड फ़ंक्शन, कम से कम एक बार इवेंट डिलीवरी सिमैंटिक का इस्तेमाल करते हैं. इसका मतलब है कि कि कुछ परिस्थितियों में उन्हें डुप्लीकेट इवेंट मिल सकते हैं. इसलिए, आपको ऐसे फ़ंक्शन लागू करें idemutent भी नहीं है. अगर आपका फ़ंक्शन एक ही है, तो आप नए क्षेत्र में इस फ़ंक्शन को फिर से डिप्लॉय कर सकते हैं उसी इवेंट को ट्रिगर करके पुराने फ़ंक्शन को हटा दें. इसके बाद, यह पुष्टि करें कि नए फ़ंक्शन को सही ढंग से ट्रैफ़िक मिल रहा है. इस बदलाव के दौरान, दोनों फ़ंक्शन को इवेंट मिलेंगे. यहां जाएं: फ़ंक्शन का क्षेत्र बदलना का इस्तेमाल करें.
अगर मौजूदा समय में आपका फ़ंक्शन सही नहीं है या आइडिया में अंतर दिख रहा है, तो तो हमारा सुझाव है कि आप पहले फ़ंक्शन को मूव करने से पहले, कोई ज़रूरी जानकारी न दिख रही हो.
बेहतर क्षेत्र के सुझाव, इवेंट ट्रिगर के टाइप के हिसाब से अलग-अलग होते हैं:
ट्रिगर का प्रकार | इलाके का सुझाव |
---|---|
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 |