Cloud Functions की जगहें

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 gen
  • europe-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 gen
  • southamerica-east1 (साओ पाओलो) ऊर्जा_बचत_पत्ती
  • southamerica-west1 (सैंटियागो, चिली) सिर्फ़ 2nd gen
  • us-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 इंस्टेंस जगह के लिए सबसे नज़दीकी क्षेत्र (अगला सेक्शन देखें)
रीयल टाइम डेटाबेस हमेशा us-central1
Cloud Storage Cloud Storage बकेट लोकेशन का सबसे नज़दीकी क्षेत्र (अगला सेक्शन देखें)
अन्य अगर किसी रीयलटाइम डेटाबेस इंस्टेंस के साथ इंटरैक्ट किया जा रहा है, तो Cloud Firestore उदाहरण के लिए, या फ़ंक्शन के अंदर Cloud Storage बकेट, तो क्षेत्र उसी तरह होता है जैसे अगर आपके पास इनमें से किसी एक से ट्रिगर हुआ फ़ंक्शन था संसाधन. अगर ऐसा नहीं है, तो us-central1 के डिफ़ॉल्ट क्षेत्र का इस्तेमाल करें. Firebase होस्टिंग से कनेक्ट किए गए फ़ंक्शन किसी भी इलाके में हो सकते हैं. हालांकि, यहां देखें: बिना सर्वर वाले सर्वर की खास जानकारी देखें.

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