Data Connect की सेवाएं और डेटाबेस मैनेज करें

आपके 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 सीएलआई का इस्तेमाल करके, प्रोजेक्ट को स्थानीय तौर पर शुरू करें. ये वर्कफ़्लो, एक नई Data Connect सेवा बनाते हैं.

इन फ़्लो की मदद से, आपको ये काम करने में भी मदद मिलती है:

  • नया Cloud SQL इंस्टेंस (बिना किसी शुल्क वाला टीयर) उपलब्ध कराना
  • किसी मौजूदा Cloud SQL इंस्टेंस को Data Connect (Blaze प्लान) से लिंक करना

उपयोगकर्ताओं को मैनेज करना

Data Connect, उपयोगकर्ता के ऐक्सेस को मैनेज करने के लिए टूल उपलब्ध कराता है. ये टूल, ज़रूरत से ज़्यादा विशेषाधिकार न देने के सिद्धांत (हर उपयोगकर्ता या सेवा खाते को ज़रूरी फ़ंक्शन के लिए कम से कम ज़रूरी अनुमतियां दें) और भूमिका के हिसाब से ऐक्सेस कंट्रोल (आरबीएसी) के सिद्धांत (डेटाबेस की अनुमतियों को मैनेज करने के लिए पहले से तय की गई भूमिकाओं के साथ, सुरक्षा मैनेजमेंट को आसान बनाना) का पालन करते हैं.

प्रोजेक्ट के सदस्यों को ऐसे उपयोगकर्ता के तौर पर जोड़ें जो आपके प्रोजेक्ट में Data Connect इंस्टेंस में बदलाव कर सकें. इसके लिए, Firebase कंसोल का इस्तेमाल करके, पहले से तय की गई उपयोगकर्ता भूमिकाओं में से सही भूमिकाएं चुनें.

ये भूमिकाएं, Identity and Access Management (IAM) का इस्तेमाल करके अनुमतियां देती हैं. भूमिका, अनुमतियों का एक कलेक्शन होती है. प्रोजेक्ट के किसी सदस्य को भूमिका असाइन करने पर, आपके पास उस सदस्य को भूमिका से जुड़ी सभी अनुमतियां देने का विकल्प होता है. ज़्यादा जानकारी के लिए, यहां जाएं:

खास वर्कफ़्लो चालू करने के लिए भूमिकाएं चुनना

IAM भूमिकाओं की मदद से, Firebase क्लाइंट-साइड इंटरफ़ेस (सीएलआई) वर्कफ़्लो चालू किए जा सकते हैं, ताकि आप अपने Data Connect प्रोजेक्ट मैनेज कर सकें.

सीएलआई कमांड, अन्य वर्कफ़्लो ज़रूरी भूमिकाएं
firebase init dataconnect
  • कोई अनुमति नहीं (जब Cloud SQL इंस्टेंस को लिंक नहीं किया जा रहा हो)
  • roles/cloudsql.admin (Cloud SQL इंस्टेंस बनाते समय)
firebase deploy -–only dataconnect
  • firebasedataconnect.connectors.*
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
  • roles/cloudsql.admin
firebase dataconnect:sql:diff
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
firebase dataconnect:sql:migrate
  • टारगेट किए गए Cloud SQL इंस्टेंस पर roles/cloudsql.admin
firebase dataconnect:sql:grant
  • टारगेट किए गए Cloud SQL इंस्टेंस पर roles/cloudsql.admin

Data Connect सेवा की परफ़ॉर्मेंस पर नज़र रखना

सेवा की परफ़ॉर्मेंस को समझना

Data Connect सेवा और Cloud SQL for PostgreSQL सेवा, दोनों की परफ़ॉर्मेंस से आपके अनुभव पर असर पड़ सकता है.

  • PostgreSQL के लिए Cloud SQL सेवा के लिए, कोटा और सीमाओं के दस्तावेज़ में सामान्य दिशा-निर्देश देखें.
  • Data Connect सेवा के लिए, GraphQL अनुरोधों का कोटा तय है. इससे, क्वेरी को कॉल और लागू करने की दर पर असर पड़ता है:

    • क्लाइंट ऐप्लिकेशन के कनेक्टर से, हर प्रोजेक्ट के लिए हर मिनट 6,000 अनुरोधों का कुल कोटा.
    • हर प्रोजेक्ट के लिए, Firebase Admin SDK और REST API से हर मिनट 6,000 अनुरोध भेजने का कुल कोटा.
    • हर उपयोगकर्ता के लिए, हर मिनट 1,200 अनुरोधों का कोटा. यहां, हर उपयोगकर्ता का मतलब है कि यह सीमा, एक आईपी पते से किए गए अनुरोधों पर लागू होती है. भले ही, वह अनुरोध किसी क्लाइंट ऐप्लिकेशन, Firebase Admin SDK या REST API से किया गया हो.

    अगर आपको कोटा से जुड़ी ये सीमाएं मिलती हैं, तो कोटा में बदलाव करने के लिए, कृपया Firebase सहायता टीम से संपर्क करें.

सेवा की परफ़ॉर्मेंस, इस्तेमाल, और बिलिंग पर नज़र रखना

Firebase कंसोल में, अनुरोधों, गड़बड़ियों, और ऑपरेशन की दरों को दुनिया भर में और हर ऑपरेशन के हिसाब से देखा जा सकता है.

Cloud SQL इंस्टेंस मैनेज करना

मुफ़्त में आज़माने की सुविधा से जुड़ी सीमाएं

PostgreSQL के लिए Cloud SQL की ये सुविधाएं, तीन महीने के बिना किसी शुल्क के ट्रायल में काम नहीं करतीं:

  • PostgreSQL के 15.x के अलावा अन्य वर्शन
  • PostgreSQL के लिए Cloud SQL के मौजूदा इंस्टेंस का इस्तेमाल करना
  • db-f1-micro से अलग मशीन टीयर
  • आपके इंस्टेंस के संसाधनों में बदलाव करना, जैसे कि स्टोरेज, मेमोरी, सीपीयू
  • डुप्लीकेट कॉपी पढ़ना
  • निजी इंस्टेंस का आईपी पता
  • ज़्यादा उपलब्धता (मल्टी-ज़ोन); सिर्फ़ सिंगल-ज़ोन इंस्टेंस काम करते हैं
  • Enterprise Plus वर्शन
  • अपने-आप बैकअप लेने की सुविधा
  • स्टोरेज अपने-आप बढ़ना.

Cloud SQL इंस्टेंस को मैनेज करना

आम तौर पर, Google Cloud कंसोल का इस्तेमाल करके, अपने Cloud SQL इंस्टेंस मैनेज किए जा सकते हैं. इससे, नीचे दिए गए वर्कफ़्लो पूरे किए जा सकते हैं.

  • Cloud SQL इंस्टेंस को रोकना और फिर से शुरू करना
  • इंस्टेंस में Cloud SQL डेटाबेस बनाना और मिटाना
  • फ़्लैग की मदद से PostgreSQL डेटाबेस इंस्टेंस शुरू करना और अलग-अलग एक्सटेंशन का इस्तेमाल करना
  • Google Cloud कंसोल में, Cloud SQL की निगरानी करने की सुविधाओं की मदद से परफ़ॉर्मेंस पर नज़र रखना
  • IAM, सीक्रेट मैनेजर, डेटा एन्क्रिप्शन, और पुष्टि करने वाली प्रॉक्सी जैसी सुविधाओं की मदद से, Cloud SQL का ऐक्सेस और सुरक्षा मैनेज करना
  • Cloud SQL के उपयोगकर्ताओं को जोड़ना, मिटाना, और उन्हें मैनेज करना.

इन और अन्य वर्कफ़्लो के लिए, PostgreSQL के लिए Cloud SQL से जुड़ा दस्तावेज़ देखें.

PostgreSQL उपयोगकर्ता को भूमिकाएं देना

Data Connect, उपयोगकर्ता के ऐक्सेस को मैनेज करने के लिए टूल उपलब्ध कराता है. ये टूल, ज़रूरत से ज़्यादा विशेषाधिकार न देने के सिद्धांत (हर उपयोगकर्ता या सेवा खाते को ज़रूरी फ़ंक्शन के लिए कम से कम ज़रूरी अनुमतियां दें) और भूमिका के हिसाब से ऐक्सेस कंट्रोल (आरबीएसी) के सिद्धांत (डेटाबेस की अनुमतियों को मैनेज करने के लिए पहले से तय की गई भूमिकाओं के साथ, सुरक्षा मैनेजमेंट को आसान बनाना) का पालन करते हैं.

कुछ मामलों में, हो सकता है कि आप अपनी पसंद के SQL क्लाइंट के ज़रिए, सीधे Data Connect के मैनेज किए जा रहे Cloud SQL डेटाबेस से कनेक्ट करना चाहें. उदाहरण के लिए, Cloud Run, Cloud Functions या GKE का इस्तेमाल करके.

ऐसे कनेक्शन चालू करने के लिए, आपको SQL अनुमतियां देनी होंगी. इसके लिए:

  • Google Cloud कंसोल या gcloud CLI का इस्तेमाल करके, उस उपयोगकर्ता या सेवा खाते को roles/cloudsql.client आईएएम भूमिका असाइन करना जिसे इंस्टेंस से कनेक्ट करना है
  • Firebase CLI का इस्तेमाल करके, PostgreSQL की ज़रूरी भूमिका देना

Cloud SQL IAM की भूमिका असाइन करना

आईएएम भूमिका roles/cloudsql.client असाइन करने के लिए, PostgreSQL के लिए Cloud SQL के साथ काम करने के बारे में जानने के लिए, भूमिकाएं और अनुमतियां देखें.

PostgreSQL की भूमिकाएं असाइन करना

Firebase CLI का इस्तेमाल करके, firebase dataconnect:sql:grant कमांड की मदद से अपने प्रोजेक्ट से जुड़े उपयोगकर्ताओं या सेवा खातों को पहले से तय PostgreSQL भूमिकाएं दी जा सकती हैं.

उदाहरण के लिए, लेखक की भूमिका देने के लिए, सीएलआई पर यह कमांड चलाएं:

firebase dataconnect:sql:grant --role writer

ज़्यादा जानकारी के लिए, सीएलआई की रेफ़रंस गाइड देखें.

PostgreSQL के लिए Cloud SQL के मौजूदा डेटाबेस को इंटिग्रेट करना

डेटाबेस की डिफ़ॉल्ट प्रोवाइज़निंग और मैनेजमेंट फ़्लो में यह माना जाता है कि आपका प्रोजेक्ट, नए (ग्रीनफ़ील्ड) डेटाबेस का इस्तेमाल करता है. firebase deploy को लागू करने पर, Data Connect डेटाबेस स्कीमा में किए जाने वाले बदलावों को दिखाएगा. साथ ही, आपके अनुमति देने के बाद, माइग्रेशन की प्रोसेस को पूरा करेगा.

मौजूदा (ब्राउनफ़ील्ड) डेटाबेस के लिए, आपके पास स्कीमा मैनेज करने के लिए अपना वर्कफ़्लो हो सकता है. साथ ही, माइग्रेशन के लिए Data Connect टूल का इस्तेमाल नहीं किया जा सकता. इसके बावजूद, आपको अपने डेटाबेस का इस्तेमाल Data Connect प्रोजेक्ट में करना है, ताकि मोबाइल और वेब के लिए SDK टूल जनरेशन, क्वेरी के आधार पर अनुमति, क्लाइंट कनेक्शन मैनेजमेंट वगैरह का फ़ायदा लिया जा सके.

इस सेक्शन में, दूसरे मामले के बारे में दिशा-निर्देश दिए गए हैं: Data Connect के साथ मौजूदा डेटाबेस को इंटिग्रेट करना.

का पालन करके, डेटाबेस माइग्रेशन सेवा का इस्तेमाल किया जा सकता है

किसी मौजूदा डेटाबेस को Data Connect प्रोजेक्ट में इंटिग्रेट करना

किसी मौजूदा डेटाबेस को इंटिग्रेट करने के लिए, आम तौर पर यह तरीका अपनाया जाता है:

  1. Firebase कंसोल में Data Connect प्रोजेक्ट सेटअप करने के दौरान, इंस्टेंस और डेटाबेस चुनें.
  2. Firebase सीएलआई का इस्तेमाल करके, firebase dataconnect:sql:setup कमांड चलाएं और Data Connect को SQL माइग्रेशन मैनेज करने की अनुमति देने का विकल्प अस्वीकार करें.

    अपने कस्टम टूल से मैनेज किए जा रहे डेटाबेस स्कीमा में, ऐसे बदलावों को रोकने के लिए जो आपके कस्टम टूल से नहीं किए जाते, setup कमांड सही रीडर और लेखक की भूमिकाएं असाइन करेगा. हालांकि, वह owner भूमिका नहीं असाइन करेगा. setup कमांड और PostgreSQL भूमिकाओं के बारे में ज़्यादा जानकारी, सीएलआई रेफ़रंस गाइड में उपलब्ध है.

  3. अपने डेटाबेस स्कीमा से मैच करने वाला Data Connect GraphQL स्कीमा लिखें.

    अपने GraphQL स्कीमा, क्वेरी, और म्यूटेशन को सिर्फ़ तब डिप्लॉय किया जा सकता है, जब आपका GraphQL स्कीमा आपके PostgreSQL स्कीमा के साथ काम करता हो.

    दोनों स्कीमा को अलाइन करने की प्रोसेस को आसान बनाने के लिए, हम firebase dataconnect:sql:diff कमांड उपलब्ध कराते हैं. इससे आपको अपने डेटाबेस को माइग्रेट करने के लिए, ज़रूरी SQL स्टेटमेंट मिलेंगे. इसका इस्तेमाल करके, अपने मौजूदा डेटाबेस स्कीमा से मैच करने के लिए, अपने GraphQL स्कीमा को बार-बार बेहतर बनाया जा सकता है.

  4. अब अपने लोकल डेवलपमेंट एनवायरमेंट में, GraphQL स्कीमा, क्वेरी, और बदलाव को तेज़ी से दोहराया जा सकता है. इसके बाद, जब आप संतुष्ट हो जाएं, तो firebase dataconnect:sql:diff का इस्तेमाल करके, SQL माइग्रेशन स्टेटमेंट पाएं. इन स्टेटमेंट को अपने कस्टम टूल और फ़्लो का इस्तेमाल करके, PostgreSQL पर लागू किया जा सकता है.

  5. इसके अलावा, पहले अपने PostgreSQL डेटाबेस में सीधे बदलाव किए जा सकते हैं. इसके बाद, उन्हें अपने GraphQL स्कीमा में वापस पोर्ट करने की कोशिश की जा सकती है. हमारा सुझाव है कि आप सबसे पहले GraphQL का इस्तेमाल करें. ऐसा इसलिए, क्योंकि हो सकता है कि कुछ मामलों में स्कीमा में किए गए बदलाव काम न करें. इसके अलावा, अगर आपने ऐसे बदलाव डिप्लॉय किए हैं जिनकी वजह से आपका PostgreSQL स्कीमा, डिप्लॉय किए गए कनेक्टर क्वेरी या म्यूटेशन के साथ काम नहीं करता है, तो हो सकता है कि वे कनेक्टर काम करना बंद कर दें या गलत तरीके से काम करें.