आपके Data Connect प्रोजेक्ट में दो मुख्य इन्फ़्रास्ट्रक्चर एलिमेंट होते हैं:
- Data Connect सेवा के एक या इससे ज़्यादा इंस्टेंस
- PostgreSQL के लिए Cloud SQL के एक या उससे ज़्यादा इंस्टेंस
इस गाइड में, Data Connect सेवा के इंस्टेंस सेट अप और मैनेज करने का तरीका बताया गया है. साथ ही, इससे जुड़े Cloud SQL इंस्टेंस को मैनेज करने का तरीका भी बताया गया है.
Firebase Data Connect के लिए क्षेत्र कॉन्फ़िगर करना
Data Connect का इस्तेमाल करने वाले प्रोजेक्ट के लिए, जगह की जानकारी की सेटिंग ज़रूरी है.
नया Data Connect सेवा इंस्टेंस बनाते समय, आपको सेवा की जगह चुनने के लिए कहा जाता है.
वे जगहें जहां यह सुविधा उपलब्ध है
Data Connect की सेवाएं इन क्षेत्रों में बनाई जा सकती हैं.
- asia-east1
- asia-east2
- asia-northeast1
- asia-northeast2
- asia-northeast3
- asia-south1
- asia-southeast1
- asia-southeast2
- australia-southeast1
- australia-southeast2
- europe-central2
- europe-north1
- europe-southwest1
- europe-west1
- europe-west2
- europe-west3
- europe-west4
- europe-west6
- europe-west8
- europe-west9
- me-west1
- northamerica-northeast1
- northamerica-northeast2
- southamerica-east1
- southamerica-west1
- us-central1
- us-east1
- us-east4
- us-south1
- us-west1
- us-west2
- us-west3
- us-west4
Data Connect सेवा के इंस्टेंस मैनेज करना
सेवाएं बनाना
नई सेवा बनाने के लिए, Firebase कंसोल का इस्तेमाल करें या Firebase CLI का इस्तेमाल करके, लोकल प्रोजेक्ट को शुरू करें. इन वर्कफ़्लो से एक नई Data Connect सेवा बनती है.
इन फ़्लो में आपको यह जानकारी भी मिलती है:
- Cloud SQL का नया इंस्टेंस (बिना शुल्क वाली टीयर) प्रोविज़न करना
- किसी मौजूदा Cloud SQL इंस्टेंस को Data Connect (ब्लेज़ प्लान) से लिंक करना
उपयोगकर्ताओं को मैनेज करना
Data Connect, उपयोगकर्ता के ऐक्सेस को मैनेज करने के लिए टूल उपलब्ध कराता है. ये टूल, कम से कम ज़रूरी अनुमतियों के सिद्धांत का पालन करते हैं. इस सिद्धांत के तहत, हर उपयोगकर्ता या सेवा खाते को ज़रूरी फ़ंक्शन के लिए कम से कम ज़रूरी अनुमतियां दी जाती हैं. साथ ही, ये टूल भूमिका के आधार पर ऐक्सेस कंट्रोल (आरबीएसी) के सिद्धांत का भी पालन करते हैं. इस सिद्धांत के तहत, डेटाबेस की अनुमतियों को मैनेज करने के लिए पहले से तय की गई भूमिकाएं होती हैं, जिससे सुरक्षा को मैनेज करना आसान हो जाता है.
प्रोजेक्ट के सदस्यों को ऐसे उपयोगकर्ताओं के तौर पर जोड़ने के लिए जिनके पास आपके प्रोजेक्ट में Data Connect इंस्टेंस में बदलाव करने का अधिकार हो, Firebase कंसोल का इस्तेमाल करें. इससे, पहले से तय की गई उपयोगकर्ता की सही भूमिकाएं चुनी जा सकेंगी.
ये भूमिकाएं, Identity and Access Management (IAM) का इस्तेमाल करके अनुमतियां देती हैं. भूमिका, अनुमतियों का एक कलेक्शन होती है. किसी प्रोजेक्ट सदस्य को कोई भूमिका असाइन करने पर, उसे उस भूमिका से जुड़ी सभी अनुमतियां मिल जाती हैं. ज़्यादा जानकारी के लिए, इन्हें देखें:
खास वर्कफ़्लो चालू करने के लिए भूमिकाएं चुनें
आईएएम की भूमिकाओं की मदद से, Firebase सीएलआई वर्कफ़्लो को चालू किया जा सकता है. इससे आपको अपने Data Connect प्रोजेक्ट मैनेज करने में मदद मिलती है.
सीएलआई कमांड, अन्य वर्कफ़्लो | भूमिकाएं ज़रूरी हैं |
---|---|
firebase init dataconnect
|
|
firebase deploy -–only dataconnect
|
|
firebase dataconnect:sql:diff
|
|
firebase dataconnect:sql:migrate
|
|
firebase dataconnect:sql:grant
|
|
Data Connect सेवा की परफ़ॉर्मेंस को मॉनिटर करना
सेवा की परफ़ॉर्मेंस को समझना
Data Connect सेवा और Cloud SQL for PostgreSQL सेवा की परफ़ॉर्मेंस से, आपके अनुभव पर असर पड़ सकता है.
- Cloud SQL for PostgreSQL सेवा के लिए, कोटा और सीमाएं से जुड़े दस्तावेज़ में दिए गए सामान्य दिशा-निर्देश देखें.
Data Connect सेवा के लिए, GraphQL अनुरोधों का कोटा होता है. इससे क्वेरी को कॉल और एक्ज़ीक्यूट करने की दर पर असर पड़ता है:
- क्लाइंट ऐप्लिकेशन कनेक्टर से, हर प्रोजेक्ट के लिए हर मिनट में 6,000 अनुरोधों का कुल कोटा.
- हर प्रोजेक्ट के लिए, Firebase Admin SDK और REST API से एक मिनट में 6,000 अनुरोध भेजे जा सकते हैं.
- हर उपयोगकर्ता के लिए, हर मिनट में 1,200 अनुरोधों का कोटा. यहां, हर उपयोगकर्ता का मतलब है कि सीमा, एक आईपी पते से शुरू किए गए अनुरोधों पर लागू होती है. भले ही, वे अनुरोध किसी क्लाइंट ऐप्लिकेशन से किए गए हों, Firebase Admin SDK से किए गए हों या REST API से किए गए हों.
अगर आपको कोटे की इन सीमाओं से जुड़ी कोई समस्या आती है, तो कृपया Firebase की सहायता टीम से संपर्क करें, ताकि वह आपके लिए ज़रूरी कोटे को एडजस्ट कर सके.
सेवा की परफ़ॉर्मेंस, इस्तेमाल, और बिलिंग को मॉनिटर करना
Firebase कंसोल में, अनुरोधों, गड़बड़ियों, और ऑपरेशन की दरों को मॉनिटर किया जा सकता है. ऐसा ग्लोबल लेवल पर और हर ऑपरेशन के हिसाब से किया जा सकता है.
Cloud SQL इंस्टेंस मैनेज करना
मुफ़्त में आज़माने से जुड़ी सीमाएं
Cloud SQL for PostgreSQL की ये सुविधाएं, तीन महीने के लिए बिना किसी शुल्क के आज़माने के दौरान उपलब्ध नहीं हैं:
- PostgreSQL के 15.x के अलावा अन्य वर्शन
- Cloud SQL for PostgreSQL के मौजूदा इंस्टेंस का इस्तेमाल करना
- db-f1-micro से अलग मशीन टियर
- अपने इंस्टेंस के संसाधनों में बदलाव करना. जैसे, स्टोरेज, मेमोरी, सीपीयू
- रेप्लिका को पढ़ने की अनुमति
- निजी इंस्टेंस का आईपी पता
- ज़्यादा उपलब्धता (एक से ज़्यादा ज़ोन); सिर्फ़ एक ज़ोन वाले इंस्टेंस काम करते हैं
- Enterprise Plus वर्शन
- अपने-आप बैकअप लेने की सुविधा
- स्टोरेज अपने-आप बढ़ जाता है.
Cloud SQL इंस्टेंस मैनेज करना
आम तौर पर, Google Cloud कंसोल का इस्तेमाल करके, अपने Cloud SQL इंस्टेंस मैनेज किए जा सकते हैं. इससे ये वर्कफ़्लो पूरे किए जा सकते हैं.
- Cloud SQL इंस्टेंस को रोकना और फिर से शुरू करना
- Cloud SQL डेटाबेस (इंस्टेंस में) बनाना और मिटाना
- फ़्लैग के साथ PostgreSQL डेटाबेस इंस्टेंस शुरू करें और कई तरह के एक्सटेंशन का इस्तेमाल करें
- Google Cloud कंसोल में, Cloud SQL की निगरानी से जुड़ी सुविधाओं की मदद से परफ़ॉर्मेंस को मॉनिटर करना
- IAM, सीक्रेट मैनेजर, डेटा एन्क्रिप्शन, और Auth प्रॉक्सी जैसी सुविधाओं की मदद से, Cloud SQL के ऐक्सेस और सुरक्षा को मैनेज करें
- Cloud SQL उपयोगकर्ताओं को जोड़ना, मिटाना, और मैनेज करना.
इन और अन्य वर्कफ़्लो के लिए, Cloud SQL for PostgreSQL से जुड़े दस्तावेज़ देखें.
PostgreSQL उपयोगकर्ता को भूमिकाएं असाइन करना
Data Connect, उपयोगकर्ता के ऐक्सेस को मैनेज करने के लिए टूल उपलब्ध कराता है. ये टूल, कम से कम ज़रूरी अनुमतियों के सिद्धांत का पालन करते हैं. इस सिद्धांत के तहत, हर उपयोगकर्ता या सेवा खाते को ज़रूरी फ़ंक्शन के लिए कम से कम ज़रूरी अनुमतियां दी जाती हैं. साथ ही, ये टूल भूमिका के आधार पर ऐक्सेस कंट्रोल (आरबीएसी) के सिद्धांत का भी पालन करते हैं. इस सिद्धांत के तहत, डेटाबेस की अनुमतियों को मैनेज करने के लिए पहले से तय की गई भूमिकाएं होती हैं, जिससे सुरक्षा को मैनेज करना आसान हो जाता है.
कुछ मामलों में, आपको Data Connect की ओर से मैनेज किए जा रहे Cloud SQL डेटाबेस से सीधे कनेक्ट करना पड़ सकता है. इसके लिए, अपनी पसंद का SQL क्लाइंट इस्तेमाल करें. उदाहरण के लिए, Cloud Run, Cloud Functions या GKE.
ऐसे कनेक्शन चालू करने के लिए, आपको SQL अनुमतियां देनी होंगी. इसके लिए:
- उस उपयोगकर्ता या सेवा खाते को
roles/cloudsql.client
आईएएम की भूमिका असाइन करें जिसे इंस्टेंस से कनेक्ट करना है. इसके लिए, Google Cloud कंसोल का इस्तेमाल करें या gcloud CLI का इस्तेमाल करें - Firebase CLI का इस्तेमाल करके, PostgreSQL की ज़रूरी भूमिका असाइन करना
Cloud SQL के लिए आईएएम की भूमिका असाइन करना
आईएएम की भूमिका roles/cloudsql.client
असाइन करने के लिए, Cloud SQL for PostgreSQL का इस्तेमाल करने के बारे में जानकारी पाने के लिए, भूमिकाएं और अनुमतियां लेख पढ़ें.
PostgreSQL की भूमिकाएं असाइन करना
Firebase CLI का इस्तेमाल करके, अपने प्रोजेक्ट से जुड़े उपयोगकर्ताओं या सेवा खातों को पहले से तय की गई PostgreSQL भूमिकाएं असाइन की जा सकती हैं. इसके लिए, firebase dataconnect:sql:grant
कमांड का इस्तेमाल करें.
उदाहरण के लिए, लेखक की भूमिका देने के लिए, सीएलआई पर यह कमांड चलाएं:
firebase dataconnect:sql:grant --role writer
ज़्यादा जानकारी के लिए, सीएलआई रेफ़रंस गाइड देखें.
Cloud SQL for PostgreSQL के मौजूदा डेटाबेस इंटिग्रेट करना
डेटाबेस को डिफ़ॉल्ट रूप से उपलब्ध कराने और मैनेज करने की प्रोसेस में यह माना जाता है कि आपका प्रोजेक्ट, नए (ग्रीनफ़ील्ड) डेटाबेस का इस्तेमाल करता है. साथ ही, firebase deploy
को शुरू करने पर, Data Connect डेटाबेस स्कीमा में किए जाने वाले बदलावों को दिखाएगा. इसके अलावा, आपके अनुमति देने के बाद माइग्रेशन करेगा.
मौजूदा (ब्राउनफ़ील्ड) डेटाबेस के लिए, आपके पास स्कीमा मैनेज करने का अपना वर्कफ़्लो हो सकता है. साथ ही, माइग्रेशन के लिए Data Connect टूलिंग का इस्तेमाल नहीं किया जा सकता. हालांकि, आपको अपने डेटाबेस का इस्तेमाल Data Connect प्रोजेक्ट में करना है, ताकि मोबाइल और वेब के लिए इसके एसडीके जनरेशन, क्वेरी पर आधारित अनुमति, क्लाइंट कनेक्शन मैनेजमेंट वगैरह का फ़ायदा लिया जा सके.
इस सेक्शन में, दूसरे मामले के बारे में जानकारी दी गई है. यानी, मौजूदा डेटाबेस को Data Connect के साथ इंटिग्रेट करना.
किसी मौजूदा डेटाबेस को Data Connect प्रोजेक्ट में इंटिग्रेट करना
किसी मौजूदा डेटाबेस को इंटिग्रेट करने के लिए, आम तौर पर यह तरीका अपनाया जाता है:
- Firebase कंसोल में Data Connect प्रोजेक्ट सेट अप करते समय, इंस्टेंस और डेटाबेस चुनें.
Firebase सीएलआई का इस्तेमाल करके,
firebase dataconnect:sql:setup
कमांड चलाएं. साथ ही, Data Connect को एसक्यूएल माइग्रेशन मैनेज करने की अनुमति देने वाले विकल्प को अस्वीकार करें.अगर आपको अपने डेटाबेस स्कीमा में ऐसे बदलावों को रोकना है जो आपकी कस्टम टूलिंग की वजह से नहीं हुए हैं, तो
setup
कमांड, रीडर और राइटर की सही भूमिकाएं असाइन करेगी. हालांकि, यहowner
भूमिका असाइन नहीं करेगी.setup
कमांड और PostgreSQL की भूमिकाओं के बारे में ज़्यादा जानकारी, सीएलआई रेफ़रंस गाइड में दी गई है.अपने डेटाबेस के स्कीमा से मेल खाने वाला Data Connect GraphQL स्कीमा लिखें.
GraphQL स्कीमा, क्वेरी, और म्यूटेशन को सिर्फ़ तब डिप्लॉय किया जा सकता है, जब आपका GraphQL स्कीमा, PostgreSQL स्कीमा के साथ काम करता हो.
दोनों स्कीमा को अलाइन करना आसान बनाने के लिए, हम
firebase dataconnect:sql:diff
कमांड उपलब्ध कराते हैं. इससे आपको अपना डेटाबेस माइग्रेट करने के लिए ज़रूरी SQL स्टेटमेंट मिलेंगे. इसका इस्तेमाल करके, अपने GraphQL स्कीमा को बार-बार बेहतर बनाया जा सकता है, ताकि वह आपके मौजूदा डेटाबेस स्कीमा से मेल खाए.आगे चलकर, लोकल डेवलपमेंट एनवायरमेंट में GraphQL स्कीमा, क्वेरी, और म्यूटेशन में तेज़ी से बदलाव किए जा सकते हैं. इसके बाद, जब आपको लगे कि माइग्रेशन सही तरीके से हो गया है, तब
firebase dataconnect:sql:diff
का इस्तेमाल करके SQL माइग्रेशन स्टेटमेंट पाएं. इन स्टेटमेंट को PostgreSQL पर लागू किया जा सकता है. इसके लिए, आपको कस्टम टूलिंग और फ़्लो का इस्तेमाल करना होगा.इसके अलावा, सीधे अपने PostgreSQL डेटाबेस में बदलाव किए जा सकते हैं. इसके बाद, उन्हें वापस अपने GraphQL स्कीमा में पोर्ट करने की कोशिश करें. हमारा सुझाव है कि आप GraphQL-first approach का इस्तेमाल करें. ऐसा इसलिए, क्योंकि कुछ मामलों में स्कीमा में किए गए बदलाव काम नहीं करते. इसके अलावा, अगर आपने ऐसे बदलाव लागू किए हैं जिनकी वजह से आपका PostgreSQL स्कीमा, डिप्लॉय किए गए कनेक्टर क्वेरी या म्यूटेशन के साथ काम नहीं करता है, तो हो सकता है कि वे कनेक्टर काम करना बंद कर दें या ठीक से काम न करें.