लोकल से क्लाउड पर: Gemini CLI और Cloud SQL MCP की मदद से, फ़ुल-स्टैक ऐप्लिकेशन माइग्रेट करना

1. परिचय

पेश है AllStrides. यह फ़िटनेस कम्यूनिटी के लिए, इवेंट मैनेजमेंट का फ़ुल-स्टैक प्लैटफ़ॉर्म है. इसमें कई सुविधाएं उपलब्ध हैं, लेकिन फ़िलहाल यह "सिर्फ़ स्थानीय" है. यह लोकल SQLite डेटाबेस और मैन्युअल Node.js एक्ज़ीक्यूशन पर निर्भर करता है. कम्यूनिटी को बढ़ाने के लिए, AllStrides को Google Cloud की स्केलिंग, भरोसेमंद, और सुरक्षा से जुड़ी सुविधाओं की ज़रूरत है.

इस कोडलैब में, आपको पारंपरिक माइग्रेशन नहीं करना है. इसके बजाय, आपको एक प्रॉडक्ट आर्किटेक्ट के तौर पर काम करना होगा. इसके लिए, Gemini CLI को अपने एजेंटिक पार्टनर के तौर पर इस्तेमाल करें. Gemini को तीन Google Cloud Model Context Protocol (MCP) सर्वर से कनेक्ट करके, एआई को Google Cloud सेवाओं के साथ सीधे तौर पर इंटरैक्ट करने की अनुमति दी जा सकती है. सबसे पहले, डेवलपर नॉलेज एमसीपी का इस्तेमाल करके, यह पता लगाएं कि allstrides ऐप्लिकेशन के लिए सबसे अच्छा Google Cloud डेटाबेस कौन-सा है. इसके बाद, Cloud SQL एमसीपी का इस्तेमाल करके, डेटाबेस इंस्टेंस उपलब्ध कराएं. साथ ही, एक ही प्रॉम्प्ट की मदद से, अपनी स्थानीय कम्यूनिटी के डेटा को क्लाउड पर ले जाएं. आखिर में, Cloud Run MCP का इस्तेमाल करके ऐप्लिकेशन को कंटेनर में रखा जाएगा. इससे AllStrides लाइव हो जाएगा और दुनिया भर में ऐक्सेस किया जा सकेगा.

e031fbb4ae5d2afc.png

ज़रूरी शर्तें

  • Google Cloud Console की बुनियादी जानकारी
  • कमांड लाइन इंटरफ़ेस और Cloud Shell में बुनियादी कौशल

आपको क्या सीखने को मिलेगा

  • रिमोट एमसीपी के साथ काम करने के लिए, Gemini CLI को कैसे कॉन्फ़िगर करें
  • डेवलपमेंट नॉलेज एमसीपी सर्वर का इस्तेमाल कैसे करें
  • क्लाउड पर डेटा माइग्रेट करने के लिए, Cloud SQL के रिमोट MCP सर्वर का इस्तेमाल कैसे करें
  • क्लाउड में ऐप्लिकेशन डिप्लॉय करने के लिए, Cloud Run के रिमोट एमसीपी सर्वर का इस्तेमाल कैसे करें
  • Google Cloud Shell में Gemini CLI का इस्तेमाल करने का तरीका

आपको इन चीज़ों की ज़रूरत होगी

  • Google Cloud खाता और Google Cloud प्रोजेक्ट
  • Google Cloud Console और Cloud Shell के साथ काम करने वाला वेब ब्राउज़र, जैसे कि Chrome

2. सेटअप और ज़रूरी शर्तें

प्रोजेक्ट सेटअप करना

  1. Google Cloud Console में साइन इन करें. अगर आपके पास पहले से कोई Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.

ऑफ़िस या स्कूल वाले खाते के बजाय, निजी खाते का इस्तेमाल करें.

  1. कोई नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. Google Cloud Console में नया प्रोजेक्ट बनाने के लिए, हेडर में मौजूद 'कोई प्रोजेक्ट चुनें' बटन पर क्लिक करें. इससे एक पॉप-अप विंडो खुलेगी.

295004821bab6a87.png

'कोई प्रोजेक्ट चुनें' विंडो में, 'नया प्रोजेक्ट' बटन दबाएं. इससे नए प्रोजेक्ट के लिए एक डायलॉग बॉक्स खुलेगा.

37d264871000675d.png

डायलॉग बॉक्स में, अपने हिसाब से प्रोजेक्ट का नाम डालें और जगह चुनें.

96d86d3d5655cdbe.png

  • प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. प्रोजेक्ट के नाम का इस्तेमाल Google API नहीं करते हैं. इसे कभी भी बदला जा सकता है.
  • प्रोजेक्ट आईडी, सभी Google Cloud प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे बदला नहीं जा सकता. Google Cloud Console, यूनीक आईडी अपने-आप जनरेट करता है. हालांकि, इसे अपनी पसंद के मुताबिक बनाया जा सकता है. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो कोई दूसरा आईडी जनरेट करें. इसके अलावा, अपनी पसंद का आईडी डालकर भी देखा जा सकता है कि वह उपलब्ध है या नहीं. ज़्यादातर कोडलैब में, आपको अपने प्रोजेक्ट आईडी का रेफ़रंस देना होगा. इसे आम तौर पर, PROJECT_ID प्लेसहोल्डर से पहचाना जाता है.
  • आपकी जानकारी के लिए बता दें कि एक तीसरी वैल्यू भी होती है, जिसे प्रोजेक्ट नंबर कहते हैं. इसका इस्तेमाल कुछ एपीआई करते हैं. इन तीनों वैल्यू के बारे में ज़्यादा जानने के लिए, दस्तावेज़ देखें.

बिलिंग चालू करना

निजी बिलिंग खाता सेट अप करना

अगर आपने Google Cloud क्रेडिट का इस्तेमाल करके बिलिंग सेट अप की है, तो इस चरण को छोड़ दें.

  1. इस लिंक पर क्लिक करें और किसी निजी Google खाते से साइन इन करें.
  2. आपको कुछ ऐसा दिखेगा:

f54628965f465486.png

  1. अपने क्रेडिट ऐक्सेस करने के लिए यहां क्लिक करें बटन पर क्लिक करें. इससे आपको बिलिंग प्रोफ़ाइल सेट अप करने वाले पेज पर ले जाया जाएगा. अगर आपको बिना किसी शुल्क के आज़माने के लिए साइन अप करने वाली स्क्रीन दिखती है, तो 'रद्द करें' पर क्लिक करें और बिलिंग को लिंक करना जारी रखें.

20e88842cf2a732e.png

  1. 'पुष्टि करें' पर क्लिक करें. अब आप Google Cloud Platform के ट्रायल बिलिंग खाते से कनेक्ट हो गए हैं.

cdc87f1c57777951.png

निजी बिलिंग खाता सेट अप करना

अगर आपने Google Cloud क्रेडिट का इस्तेमाल करके बिलिंग सेट अप की है, तो इस चरण को छोड़ दें.

निजी बिलिंग खाता सेट अप करने के लिए, Cloud Console में बिलिंग की सुविधा चालू करने के लिए यहां जाएं.

ध्यान दें:

  • इस लैब को पूरा करने में, क्लाउड संसाधनों पर 3 डॉलर से कम खर्च आना चाहिए.
  • ज़्यादा शुल्क से बचने के लिए, इस लैब के आखिर में दिए गए निर्देशों का पालन करके संसाधनों को मिटाया जा सकता है.
  • नए उपयोगकर्ता, 300 डॉलर के मुफ़्त क्रेडिट का इस्तेमाल कर सकते हैं.

Cloud Shell शुरू करें

Google Cloud को अपने लैपटॉप से रिमोटली ऐक्सेस किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जाएगा. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.

Google Cloud Console में, सबसे ऊपर दाएं कोने में मौजूद टूलबार पर, Cloud Shell आइकॉन पर क्लिक करें:

Cloud Shell चालू करें

इसके अलावा, G और फिर S दबाकर भी यह सुविधा ऐक्सेस की जा सकती है. अगर Google Cloud Console में हैं, तो इस क्रम को दबाने पर Cloud Shell चालू हो जाएगा. इसके अलावा, इस लिंक का इस्तेमाल करके भी Cloud Shell चालू किया जा सकता है.

इसे चालू करने और एनवायरमेंट से कनेक्ट करने में सिर्फ़ कुछ सेकंड लगेंगे. यह प्रोसेस पूरी होने के बाद, आपको कुछ ऐसा दिखेगा:

Google Cloud Shell टर्मिनल का स्क्रीनशॉट. इसमें दिखाया गया है कि एनवायरमेंट कनेक्ट हो गया है

इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल पहले से मौजूद हैं. यह 5 जीबी की होम डायरेक्ट्री उपलब्ध कराता है. साथ ही, यह Google Cloud पर काम करता है. इससे नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस बेहतर होती है. इस कोडलैब में मौजूद सभी टास्क, ब्राउज़र में किए जा सकते हैं. आपको कुछ भी इंस्टॉल करने की ज़रूरत नहीं है.

3. शुरू करने से पहले

Basic API चालू करना

Cloud SQL जैसी मैनेज की गई डेटाबेस सेवाओं और अन्य सेवाओं का इस्तेमाल करके, अपने ऐप्लिकेशन को Cloud Run पर बनाने और डिप्लॉय करने के लिए, आपको अपने Google Cloud प्रोजेक्ट में उनसे जुड़े एपीआई चालू करने होंगे.

आपके पास इस चरण को छोड़ने का विकल्प होता है. ऐसा करने पर, Gemini CLI बाद में सभी ज़रूरी एपीआई चालू कर देगा. हालांकि, इस मामले में आपको कुछ देरी हो सकती है और कार्रवाई के दौरान चरणों को दोहराना पड़ सकता है.

Cloud Shell टर्मिनल में, पक्का करें कि आपका प्रोजेक्ट आईडी सेट अप हो:

gcloud config set project [YOUR-PROJECT-ID]

PROJECT_ID एनवायरमेंट वैरिएबल सेट करें:

PROJECT_ID=$(gcloud config get-value project)

सभी ज़रूरी सेवाएं चालू करें:

gcloud services enable sqladmin.googleapis.com \
                       aiplatform.googleapis.com \
                       secretmanager.googleapis.com \
                       artifactregistry.googleapis.com \
                       cloudbuild.googleapis.com \
                       run.googleapis.com \
                       containerregistry.googleapis.com

अनुमानित आउटपुट:

student@cloudshell:~ (test-project-001-402417)$ PROJECT_ID=$(gcloud config get-value project)
Your active configuration is: [cloudshell-14650]
student@cloudshell:~ (test-project-001-402417)$ 
student@cloudshell:~ (test-project-001-402417)$ gcloud services enable sqladmin.googleapis.com \
                       aiplatform.googleapis.com \
                       secretmanager.googleapis.com \
                       artifactregistry.googleapis.com \
                       cloudbuild.googleapis.com \
                       run.googleapis.com \
                       containerregistry.googleapis.com
Operation "operations/acat.p2-812263612774-c2dbeef3-c4c1-4a7d-a4b2-b5380be65044" finished successfully.

सेवा खाते को अनुमतियां देना

ऐप्लिकेशन इमेज बनाने और उन्हें सेव करने के लिए, आपको Compute के डिफ़ॉल्ट सेवा खाते को स्टोरेज एडमिन की अनुमतियां देनी होंगी. पिछले चरण में, आपके पास इसे बाद में Gemini CLI को सौंपने का विकल्प होता है.

PROJECT_ID=$(gcloud config get-value project)
 gcloud projects add-iam-policy-binding $PROJECT_ID --member=serviceAccount:$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")-compute@developer.gserviceaccount.com --role=roles/storage.admin

रिमोट एमसीपी की सुविधा चालू करना

किसी प्रोजेक्ट में हर सेवा के लिए, रिमोट एमसीपी सेवाओं को साफ़ तौर पर चालू किया जाना चाहिए. ये डिफ़ॉल्ट रूप से बंद होते हैं. इनकी मदद से, प्रोजेक्ट और सेवा के लेवल पर एपीआई के ऐक्सेस को कंट्रोल किया जा सकता है.

आइए, डेवलपर नॉलेज एमसीपी सेवा से शुरुआत करते हैं. Developer Knowledge API और रिमोट एमसीपी सेवा को चालू करने के लिए, आपको यहां दिए गए gcloud कमांड चलाने होंगे.

PROJECT_ID=$(gcloud config get-value project)
gcloud beta services mcp enable developerknowledge.googleapis.com --project=$PROJECT_ID

एपीआई और डेवलपर नॉलेज के लिए रिमोट एमसीपी चालू होने पर, Cloud SQL रिमोट एमसीपी सेवा के लिए भी ऐसा किया जा सकता है.

gcloud beta services mcp enable sqladmin.googleapis.com --project=$PROJECT_ID

डेटाबेस के लिए सभी रिमोट एमसीपी की तरह, एमसीपी के ऐक्सेस और अनुमतियों को चरणबद्ध तरीके से लागू किया जाता है. इससे एपीआई को प्रोजेक्ट लेवल पर ज़्यादा कंट्रोल के साथ ऐक्सेस किया जा सकता है. साथ ही, सिर्फ़ Service Usage Admin (roles/serviceusage.serviceUsageAdmin) भूमिका वाले प्रिंसिपल (उपयोगकर्ता या सेवा खाता) को ऐसा करने की अनुमति होती है.

साथ ही, सिर्फ़ MCP टूल के उपयोगकर्ता (roles/mcp.toolUser) की भूमिका वाले प्रिंसिपल, रिमोट MCP एपीआई को कॉल कर सकते हैं.

उदाहरण के लिए, अगर आपके पास Cloud SQL एडमिन (roles/cloudsql.admin) की भूमिका नहीं है, तो प्रोजेक्ट में कोई भी इंस्टेंस न तो बनाया जा सकेगा, न ही क्लोन किया जा सकेगा, और न ही अपडेट किया जा सकेगा.

दस्तावेज़ में जाकर, ज़रूरी भूमिकाओं और अनुमतियों के बारे में ज़्यादा जानकारी पाएं.

जैसा कि हम देख सकते हैं, स्टेज के हिसाब से और बारीकी से अनुमति देने की सुविधा, हमें बिना अनुमति के होने वाले हमले से बचाती है. भले ही, रिमोट एमसीपी एंडपॉइंट चालू हो. इससे हमारा प्रोडक्शन काफ़ी सुरक्षित रहता है.

हम Cloud Run सेवा के लिए, अगला रिमोट एमसीपी चालू करने जा रहे हैं. Cloud Run के रिमोट एमसीपी को चालू करने और ऐक्सेस करने का तरीका, Cloud SQL के रिमोट एमसीपी के तरीके जैसा ही होता है.

यहां दिए गए कमांड का इस्तेमाल करके, Cloud Run MCP सेवा चालू करें.

gcloud beta services mcp enable run.googleapis.com --project=$PROJECT_ID

आखिर में, हम इस कमांड का इस्तेमाल करके, अपने प्रोजेक्ट में चालू किए गए सभी रिमोट एमसीपी की पुष्टि कर सकते हैं.

gcloud beta services mcp list --project=$PROJECT_ID

अनुमानित आउटपुट:

student@cloudshell:~ (test-project-001-402417)$ gcloud beta services mcp list --project=$PROJECT_ID
NAME: services/developerknowledge.googleapis.com
MCP_ENDPOINT: developerknowledge.googleapis.com

NAME: services/run.googleapis.com
MCP_ENDPOINT: run.googleapis.com/mcp

NAME: services/sqladmin.googleapis.com
MCP_ENDPOINT: sqladmin.googleapis.com/mcp

अब जब हमारे सभी एपीआई और सेवाएं चालू हो गई हैं, तो हमें Gemini CLI को कॉन्फ़िगर करना होगा.

4. Gemini CLI को कॉन्फ़िगर करना

इस लैब को Gemini CLI को मुख्य एजेंट के तौर पर इस्तेमाल करने के लिए डिज़ाइन किया गया है, ताकि ज़्यादातर कार्रवाइयां की जा सकें. पहला चरण, इसे रिमोट एमसीपी सर्वर के साथ काम करने के लिए कॉन्फ़िगर करना है. हमारा सुझाव है कि आप Gemini CLI और Gemini के नए वर्शन का इस्तेमाल करें. जैसे, Gemini-3-pro या Gemini-3-flash (फ़िलहाल, यह वर्शन पूर्वावलोकन के लिए उपलब्ध है).

अगर आपके पास Gemini CLI का नया वर्शन पहले से है और आपने इसे Gemini के नए मॉडल का इस्तेमाल करने के लिए कॉन्फ़िगर किया है, तो अगले दो चरणों को छोड़कर सीधे तीसरे चरण पर जाएं.

1. Gemini API पासकोड पाना

Gemini CLI में Gemini के नए मॉडल इस्तेमाल करने के लिए, इसे एपीआई पासकोड की पुष्टि करने की सुविधा के साथ कॉन्फ़िगर करना होगा. हमें एपीआई पासकोड, Google AI Studio में मिल सकता है

  1. अपने ब्राउज़र में, Google AI Studio -> एपीआई पासकोड पाएं पर जाएं.
  2. स्क्रीन की दाईं ओर मौजूद, Create API key बटन पर क्लिक करें
  3. पॉप-अप विंडो में अपना प्रोजेक्ट चुनें या अगर वह वहां नहीं दिख रहा है, तो उसे इंपोर्ट करें

683940deabde2975.jpeg

  1. एपीआई पासकोड बनाएं.
  2. दाईं ओर मौजूद 'कॉपी करें' बटन का इस्तेमाल करके, कुंजी को कॉपी किया जा सकता है.

3d97805534c50bf.jpeg

कुंजी तैयार हो गई है. अब इसका इस्तेमाल Gemini CLI के लिए किया जा सकता है

2. Gemini CLI को कॉन्फ़िगर करना

Gemini CLI को सेटिंग कॉन्फ़िगरेशन फ़ाइल के ज़रिए कॉन्फ़िगर किया जा सकता है. इसके अलावा, /settings कमांड का इस्तेमाल करके इंटरैक्टिव तरीके से भी कॉन्फ़िगर किया जा सकता है. हम चाहते हैं कि हमारी सेटिंग, सेटिंग फ़ाइल में सेव रहें.

सबसे पहले, हम अपने प्रोजेक्ट के लिए एक डायरेक्ट्री बनाएंगे. आइए, डायरेक्ट्री को projectmcp कहते हैं और इन निर्देशों का इस्तेमाल करके उस डायरेक्ट्री पर स्विच करते हैं.

mkdir ~/projectmcp
cd ~/projectmcp

इस डायरेक्ट्री में, हम Gemini कॉन्फ़िगरेशन फ़ाइलों के लिए एक डायरेक्ट्री बनाएंगे और सभी कमांड चलाएंगे. Gemini सीएलआई, डिफ़ॉल्ट रूप से उपयोगकर्ता के स्कोप वाली कॉन्फ़िगरेशन फ़ाइल और ~/.gemini डायरेक्ट्री में इंस्टॉल किए गए एक्सटेंशन का इस्तेमाल करता है. हालांकि, हम ~/projectmcp डायरेक्ट्री में, अपने प्रोजेक्ट के स्कोप का कॉन्फ़िगरेशन बनाएंगे. आइए, कॉन्फ़िगरेशन डायरेक्ट्री और फ़ाइलें बनाने से शुरुआत करें.

mkdir ~/projectmcp/.gemini
touch ~/projectmcp/.gemini/settings.json

इसके बाद, हम क्लाउड शेल एडिटर का इस्तेमाल करके ~/projectmcp/.gemini/settings.json फ़ाइल खोलते हैं.

edit ~/projectmcp/.gemini/settings.json

खुली हुई एडिटर विंडो में, यह कॉन्फ़िगरेशन जोड़ें.

{
  "general": {
    "preferredEditor": "vscode",
    "previewFeatures": true,
    "sessionRetention": {
      "enabled": true
    }
  },
  "ide": {
    "enabled": true,
    "hasSeenNudge": true
  },
  "security": {
    "auth": {
      "selectedType": "gemini-api-key"
    }
  },
  "ui": {
    "theme": "Default"
  },
  "tools": {
    "shell": {
      "enableInteractiveShell": false
    }
  }
}

फ़ाइल में बदलाव करने के बाद, ctrl+s का इस्तेमाल करके बदलाव सेव किए जा सकते हैं. इसके बाद, Open Terminal बटन पर क्लिक करके वापस टर्मिनल पर स्विच किया जा सकता है

e152c73931dac892.jpeg

ऊपर दी गई settings.json फ़ाइल, Gemini CLI के लिए पुष्टि करने के टाइप को gemini-api-key के तौर पर सेट करती है. आपको मॉडल को कुंजी देनी होगी. इसके लिए, उस डायरेक्ट्री में .env फ़ाइल बनाएं जिसमें आपको Gemini CLI का इस्तेमाल करना है. साथ ही, Gemini CLI के लिए पुष्टि करने वाले एपीआई पासकोड को एनवायरमेंट वैरिएबल के तौर पर सेव करें. जब आईडीई शुरू होगा, तब यह वैरिएबल अपने-आप पिक हो जाएगा.

Cloud Shell एडिटर का इस्तेमाल करके फ़ाइल में बदलाव करना

edit ~/projectmcp/.env

साथ ही, पहले चरण में बनाया गया एपीआई पासकोड सेव करें.

GEMINI_API_KEY= <YOUR_API_KEY>

अब टर्मिनल पर वापस जाकर, जारी रखें. अगला चरण, Gemini CLI को नए वर्शन पर अपडेट करना है. Google Cloud Shell या आपके एनवायरमेंट में मौजूद वर्शन पुराना हो सकता है. साथ ही, हो सकता है कि यह नए कॉन्फ़िगरेशन और MCP सेवाओं के साथ ठीक से काम न करे. इसलिए, यह ज़रूरी है कि आप Gemini CLI को नए वर्शन पर अपडेट करें और इसे शुरू करें. टर्मिनल में यह कमांड चलाएं.

cd ~/projectmcp/
npm install -g @google/gemini-cli@latest

अब वर्शन की पुष्टि की जा सकती है. कृपया ध्यान रखें कि Google Cloud Shell में काम करते समय, शेल को हर बार रीस्टार्ट करने पर, यह पिछले वर्शन पर वापस आ सकता है. Gemini CLI में किए गए बदलाव, Cloud Shell में हमेशा के लिए सेव नहीं होते.

gemini --version

इसमें Gemini CLI का नया वर्शन दिखना चाहिए. इस लैब को लिखते समय, यह वर्शन 0.27 था. Gemini CLI के नए वर्शन की पुष्टि यहां की जा सकती है. अब हम इसे शुरू कर सकते हैं. साथ ही, यह पक्का कर सकते हैं कि यह Gemini के नए मॉडल का इस्तेमाल कर रहा हो. Gemini CLI शुरू करने के लिए, अपने प्रोजेक्ट फ़ोल्डर में यह कमांड चलाएं.

gemini

Gemini CLI शुरू होने पर, इंटरफ़ेस में /about कमांड चलाकर वर्शन और मॉडल की जांच की जा सकती है. आपको नीचे दी गई इमेज जैसा कुछ दिखेगा.

dea82957ace33156.jpeg

इसमें देखा जा सकता है कि यह Gemini 3 मॉडल का इस्तेमाल कर रहा है.

2. Gemini CLI में एमसीपी सर्वर कॉन्फ़िगर करना

अब हमें चालू किए गए सभी एमसीपी सर्वर जोड़ने हैं. Gemini CLI में इन्हें चालू करने के दो तरीके हैं. एक्सटेंशन के ज़रिए या सीधे सेटिंग में जाकर. इस लैब में, आपको अपने प्रोजेक्ट की scope setting.json फ़ाइल का इस्तेमाल करना होगा. साथ ही, इसमें एमसीपी सर्वर की पुष्टि करने की जानकारी जोड़नी होगी.

  1. Developer Knowledge MCP सर्वर के लिए, आपको एक एपीआई पासकोड बनाना होगा, ताकि आपको एंडपॉइंट पर अनुमति मिल सके.

इसका तरीका यहां बताया गया है:

  • जिस प्रोजेक्ट के लिए आपने एपीआई चालू किया है उसके Google Cloud Console में, क्रेडेंशियल पेज पर जाएं.
  • क्रेडेंशियल बनाएं पर क्लिक करें. इसके बाद, मेन्यू से एपीआई पासकोड चुनें. 'एपीआई कुंजी बनाई गई' डायलॉग बॉक्स में, नई कुंजी के लिए स्ट्रिंग दिखती है.
  • डायलॉग बॉक्स में मौजूद Edit API key लिंक पर क्लिक करें.
  • Name फ़ील्ड में, कुंजी के लिए कोई नाम डालें. उदाहरण के लिए DK API Key .
  • एपीआई पर पाबंदियां में जाकर, Restrict key को चुनें.
  • 'एपीआई चुनें' सूची में जाकर, Developer Knowledge API को चालू करें और ठीक है पर क्लिक करें.
  • 'सेव करें' पर क्लिक करें.

d0e7c7081e43788e.jpeg

अगर आपको कुंजी का इस्तेमाल करना है, तो पेज पर जाएं और दाईं ओर मौजूद, कुंजी दिखाएं पर क्लिक करें.

caf35e95bba68c2.jpeg

अब आपको उस कुंजी को कॉन्फ़िगरेशन में सेव करना होगा. हमारी settings.json फ़ाइल का MCP सेक्शन ऐसा दिखेगा. आपको वहां अपनी DK API कुंजी की वैल्यू डालनी होगी. अगर सिर्फ़ DK API जोड़ा जाता है, तो settings.json फ़ाइल का MCP सेक्शन कैसा दिखता है, इसका एक उदाहरण यहां दिया गया है. लैब में आगे, आपको यह भी दिखेगा कि सभी एमसीपी सर्वर के साथ settings.json फ़ाइल कैसी दिखनी चाहिए.

    "mcpServers": {
    "DeveloperKnowledge": {
      "httpUrl": "https://developerknowledge.googleapis.com/mcp",
      "headers": {
        "X-Goog-Api-Key": "<Your DK API Key>"
      }
    }
  },
  1. इसके बाद, हमारे Cloud SQL MCP सर्वर के लिए कॉन्फ़िगरेशन जोड़ा जा सकता है. Cloud SQL MCP के लिए, एपीआई के बजाय अपने Google क्रेडेंशियल का इस्तेमाल किया जाएगा. यह ज़्यादा सुरक्षित है. साथ ही, इससे हमें किसी उपयोगकर्ता के लिए भूमिकाएं और कार्रवाइयों का दायरा तय करने की सुविधा मिलती है. यहां एमसीपी सर्वर का कॉन्फ़िगरेशन दिया गया है. कृपया "<YOUR_GCP_PROJECT>" की जगह अपना प्रोजेक्ट आईडी डालें.
    "Cloud SQL MCP Server": {
      "httpUrl": "https://sqladmin.googleapis.com/mcp",
      "authProviderType": "google_credentials",
      "oauth": {
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      },
      "timeout": 500000,
      "trust": false,
      "headers": {
        "X-Goog-User-Project": "<YOUR_GCP_PROJECT>"
      }
    },
  1. json के इस अगले हिस्से में, Cloud Run MCP सर्वर के लिए कॉन्फ़िगरेशन शामिल है. यह ऊपर दिए गए उदाहरण के पैटर्न के मुताबिक है. साथ ही, पुष्टि करने और अनुमति देने के लिए Google क्रेडेंशियल का इस्तेमाल कर रहा है. यहां कॉन्फ़िगरेशन का सैंपल दिया गया है.
    "CloudRun": {
      "httpUrl": "https://run.googleapis.com/mcp",
      "authProviderType": "google_credentials",
      "oauth": {
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    }

इन सभी को ~/projectmcp/.gemini/settings.json फ़ाइल में जोड़ना होगा.

Cloud Shell Editor का इस्तेमाल करके, ~/projectmcp/.gemini/settings.json फ़ाइल खोलें.

edit ~/projectmcp/.gemini/settings.json

इसके बाद, कॉन्टेंट को इस कॉन्फ़िगरेशन से बदलें. कृपया अपने एनवायरमेंट के हिसाब से, "X-Goog-Api-Key" और "X-Goog-User-Project" फ़ील्ड में अपनी एपीआई कुंजी और प्रोजेक्ट आईडी डालें.

{
  "general": {
    "preferredEditor": "vscode",
    "previewFeatures": true,
    "sessionRetention": {
      "enabled": true
    }
  },
  "ide": {
    "enabled": true,
    "hasSeenNudge": true
  },
  "security": {
    "auth": {
      "selectedType": "gemini-api-key"
    }
  },
  "mcpServers": {
    "DeveloperKnowledge": {
      "httpUrl": "https://developerknowledge.googleapis.com/mcp",
      "headers": {
        "X-Goog-Api-Key": "<Your DK API Key>"
      }
    },
    "Cloud SQL MCP Server": {
      "httpUrl": "https://sqladmin.googleapis.com/mcp",
      "authProviderType": "google_credentials",
      "oauth": {
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      },
      "timeout": 500000,
      "trust": false,
      "headers": {
        "X-Goog-User-Project": "<YOUR_GCP_PROJECT>"
      }
    },
    "CloudRun": {
      "httpUrl": "https://run.googleapis.com/mcp",
      "authProviderType": "google_credentials",
      "oauth": {
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    }
  },
  "ui": {
    "theme": "Default"
  },
  "tools": {
    "shell": {
      "enableInteractiveShell": false
    }
  }
}

अब हम Gemini CLI शुरू कर सकते हैं और देख सकते हैं कि हमारे सभी MCP सर्वर वहां चालू हैं.

cd ~/projectmcp/
gemini

Gemini CLI शुरू होने पर, /mcp कमांड का इस्तेमाल करके, सभी एमसीपी सर्वर चालू और काम करते हुए देखे जा सकते हैं.

352638b053783696.png

5. ऐप्लिकेशन तैयार करना

यहां दिए गए उदाहरण में, आपको अपने सैंपल लोकल ऐप्लिकेशन को Google Cloud पर माइग्रेट करने की कोशिश करनी होगी. सबसे पहले, हम ऐप्लिकेशन को स्थानीय तौर पर इंस्टॉल करते हैं और उसकी जांच करते हैं.

1. सोर्स कोड का क्लोन बनाएं

हमें GitHub रिपॉज़िटरी से अपने ऐप्लिकेशन को क्लोन करना होगा. प्रोजेक्ट फ़ोल्डर में, Cloud Shell या अपने लोकल टर्मिनल में यह कमांड चलाएं.

git clone https://github.com/google/mcp.git

2. Start The Application Locally

आइए, ऐप्लिकेशन की जांच करें और कुछ सैंपल डेटा लोड करें

उसी शेल में, ऐप्लिकेशन फ़ोल्डर पर जाएं और ऐप्लिकेशन को

cd mcp/examples/allstrides
./start_allstrides.sh

3. ऐप्लिकेशन की जांच करना

अगर Cloud Shell में काम किया जा रहा है, तो Cloud Shell विंडो में सबसे ऊपर मौजूद Web preview बटन दबाएं और Preview on port 8080 चुनें

db0d9210014ade3d.jpeg

इससे ऐप्लिकेशन इंटरफ़ेस के साथ एक नया ब्राउज़र टैब खुलेगा. यहां, उदाहरण के लिए Events बटन पर क्लिक किया जा सकता है.

67423438eef0c999.jpeg

फ़िलहाल, आपके पास कोई इवेंट नहीं है.

4. सैंपल डेटा लोड करें

आपके पास ऐप्लिकेशन में रजिस्टर करने और अपने इवेंट, चैट मैसेज, और उपयोगकर्ता बनाने का विकल्प होता है. इसके अलावा, ऐप्लिकेशन के साथ दिए गए सैंपल डेटा का इस्तेमाल किया जा सकता है.

सबसे ऊपर मौजूद "+" साइन का इस्तेमाल करके, Cloud Shell का कोई दूसरा टैब खोलें.

abc505ac4d41f24e.png

नए Cloud Shell टैब में, ऐप्लिकेशन डायरेक्ट्री पर स्विच करें. इसके बाद, sqllite3 यूटिलिटी का इस्तेमाल करके इंपोर्ट करें:

cd ~/projectmcp/mcp/examples/allstrides
sqlite3 allstrides.db < seed_data.sql

अगर ऐप्लिकेशन पेज पर वापस जाकर, इवेंट बटन पर फिर से क्लिक किया जाता है, तो आपको कई इवेंट दिखेंगे.

5adc772a1d2261f4.jpeg

चैट पेज को टेस्ट करके, वहां कुछ मैसेज भी देखे जा सकते हैं.

अब exit टाइप करके, दूसरे टैब को बंद किया जा सकता है

exit

इसके बाद, पहले टैब में ऐप्लिकेशन को ctrl+c कॉम्बिनेशन का इस्तेमाल करके बंद करें.

6. Testing Developer Knowledge MCP

डेवलपर नॉलेज एमसीपी की मदद से, हम Google के दस्तावेज़ों को सीधे तौर पर अपने टूल से इस्तेमाल कर सकते हैं. इससे हमें निर्देशों की पुष्टि करने, ट्यूटोरियल बनाने, और अन्य कामों में मदद मिलती है. इन कामों को Google के नए दस्तावेज़ों की मदद से बेहतर बनाया जा सकता है.

Gemini CLI शुरू करें और Developer Knowledge MCP सर्वर में उपलब्ध एमसीपी टूल की सूची बनाएं.

/mcp

डेवलपर नॉलेज एमसीपी के लिए, आपको तीन टूल दिखेंगे:

अनुमानित आउटपुट:

🟢 DeveloperKnowledge - Ready (3 tools)
  Tools:
  - batch_get_documents
  - get_document
  - search_documents

हमें अपने ऐप्लिकेशन को Google Cloud पर माइग्रेट करना है. इसका मतलब है कि हमें लोकल Sqlite डेटाबेस से ज़्यादा बेहतर और क्लाउड नेटिव सलूशन पर स्विच करना होगा. Gemini से हमारे ऐप्लिकेशन कोड का विश्लेषण करने और डेटाबेस के समाधान के बारे में सलाह देने के लिए कहें.

Gemini CLI के प्रॉम्प्ट में यह टाइप करें:

Hello, I need to choose a database platform for my allstrides application in Google Cloud. Can you analyze documentation and prepare a tutorial to choose the correct database engine?

Gemini CLI, आपके कोड का विश्लेषण करके शुरू करेगा. इसके बाद, वह

अनुमानित आउटपुट

 ?  search_documents (DeveloperKnowledge MCP Server) {"query":"choose google cloud database"}                                                                                                               ← │
│                                                                                                                                                                                                              │
│ MCP Server: DeveloperKnowledge                                                                                                                                                                               │
│ Tool: search_documents                                                                                                                                                                                       │
│                                                                                                                                                                                                              │
│ Allow execution of MCP tool "search_documents" from server "DeveloperKnowledge"?                                                                                                                             │
│                                                                                                                                                                                                              │
│ ● 1. Allow once                                                                                                                                                                                              │
│   2. Allow tool for this session                                                                                                                                                                             │
│   3. Allow all server tools for this session                                                                                                                                                                 │
│   4. No, suggest changes (esc)   

हम देख सकते हैं कि यह टूल, Google के दस्तावेज़ों से जवाब पाने के लिए एमसीपी का इस्तेमाल कर रहा है. यह कुकी, डेवलपर नॉलेज एमसीपी अनुरोध को पूरा करने की अनुमति देती है. जवाब देने से पहले, यह आपसे एक या दो बार और जानकारी मांग सकता है. फ़िलहाल, अपने आवेदन में कोई बदलाव न करें.

आखिर में, इसमें खास जानकारी के साथ एक ट्यूटोरियल बनाया गया है. इसमें Cloud SQL for Postgres को डेटाबेस बैकएंड के लिए सबसे अच्छा विकल्प बताया गया है. जनरेटिव एआई मॉडल के नॉन-डिटरमिनिस्टिक नेचर की वजह से, आपको थोड़ा अलग जवाब मिल सकता है.

अनुमानित आउटपुट:

By switching to Cloud SQL for PostgreSQL, AllStrides gains a robust, scalable foundation suitable for production deployment on Google Cloud. The transition is straightforward due to the use of Sequelize ORM.  

हम डेटा माइग्रेट करने के तरीके के बारे में सिलसिलेवार गाइड तैयार करने के लिए भी कह सकते हैं. Gemini CLI में नया प्रॉम्प्ट डालें:

I agree with the recommendation to use Cloud SQL for PostgreSQL as the new database for my application. Can you prepare a detailed migration tutorial based on Google documentation on how to move data from my local database to Cloud SQL in the cloud?

यहां भी हम उम्मीद करते हैं कि ट्यूटोरियल तैयार करते समय, Gemini CLI, डेवलपर नॉलेज एमसीपी को जानकारी के सोर्स के तौर पर इस्तेमाल करेगा. Gemini CLI, मॉडल और अन्य फ़ैक्टर के आधार पर कार्रवाइयों को अलग-अलग क्रम में कर सकता है. उदाहरण के लिए, यह पहले माइग्रेशन स्क्रिप्ट तैयार करने के लिए कह सकता है. इसके बाद ही, फ़ाइनल ट्यूटोरियल के दस्तावेज़ पर काम करने के लिए कह सकता है.

यहां एक उदाहरण दिया गया है, जिसमें डेवलपर नॉलेज एमसीपी को लागू करने की अनुमति मांगी गई है:

 ?  search_documents (DeveloperKnowledge MCP Server) {"query":"migrate local database to Cloud SQL for PostgreSQL"}                                                                                         ← │
│                                                                                                                                                                                                              │
│ MCP Server: DeveloperKnowledge                                                                                                                                                                               │
│ Tool: search_documents                                                                                                                                                                                       │
│                                                                                                                                                                                                              │
│ Allow execution of MCP tool "search_documents" from server "DeveloperKnowledge"?                                                                                                                             │
│                                                                                                                                                                                                              │
│ ● 1. Allow once                                                                                                                                                                                              │
│   2. Allow tool for this session                                                                                                                                                                             │
│   3. Allow all server tools for this session                                                                                                                                                                 │
│   4. No, suggest changes (esc)                                                                                                                                                                               │
│                                                                                                                                                                                                              │
│                                                                                                                                                                                                              │
│ ⊷  search_documents (DeveloperKnowledge MCP Server) {"query":"import data into Cloud SQL PostgreSQL"}
 

कार्रवाई के दौरान, Gemini CLI आपसे कुछ कमांड चलाने के लिए कह सकता है. उदाहरण के लिए, डेटा माइग्रेशन के लिए सही निर्देश तैयार करने के लिए, डेटा स्कीमा को बेहतर तरीके से समझना.

साथ ही, आखिर में डेटा माइग्रेशन के लिए चरण-दर-चरण निर्देश तैयार करने चाहिए.

इसके बाद, Gemini CLI से ट्यूटोरियल लिखने के लिए कहा जा सकता है

Please write the tutorial down

साथ ही, यह ट्यूटोरियल दस्तावेज़ के साथ एक नई मार्कडाउन फ़ाइल बनाएगा.

अनुमानित आउटपुट:

✦ I have created a detailed migration guide for you.

  You can find the tutorial in the new file: MIGRATION_GUIDE.md.

  This guide covers:
   1. Exporting your local SQLite data to CSV format.
   2. Creating the PostgreSQL schema with compatible data types.
   3. Uploading data to Google Cloud Storage.
   4. Importing data into Cloud SQL in the correct order to respect relationships.
   5. Resetting ID sequences to ensure new data can be added without errors.

अगले चरण में, हम Cloud SQL MCP के साथ काम करेंगे. इसमें हम अपना डेटाबेस तैयार करेंगे और डेटा माइग्रेट करेंगे.

7. Cloud SQL Remote MCP की जांच की जा रही है

1. Cloud SQL इंस्टेंस बनाएं

Gemini CLI में /mcp टाइप करके, Cloud SQL MCP सर्वर में उपलब्ध टूल देखे जा सकते हैं

/mcp

फ़िलहाल, हमारे पास ये टूल उपलब्ध हैं.

अनुमानित आउटपुट:

🟢 Cloud SQL MCP Server - Ready (11 tools)
  Tools:
  - clone_instance
  - create_instance
  - create_user
  - execute_sql
  - get_instance
  - get_operation
  - import_data
  - list_instances
  - list_users
  - update_instance
  - update_user

हमने पहले ही Google Cloud में अपने ऐप्लिकेशन के बैकएंड के तौर पर, Cloud SQL for Postgres का इस्तेमाल करने का फ़ैसला कर लिया है. अब हम Gemini से, हमारे लिए Cloud SQL इंस्टेंस बनाने के लिए कह सकते हैं.

Gemini CLI में, इस तरह का अनुरोध टाइप करें:

Please create a Cloud SQL for Postgres instance with appropriate edition and version in the us-central1 region to be a backend for our application with a public IPs in the current project with 2 CPU and 8 GB memory.

अपने मौजूदा प्रोजेक्ट की पहचान करने के लिए, आपको ज़्यादा कॉल करने की ज़रूरत नहीं है. प्रॉम्प्ट डालते समय, प्रोजेक्ट आईडी साफ़ तौर पर बताया जा सकता है. अगर मॉडल से पहले प्रोजेक्ट के नाम का इस्तेमाल नहीं किया गया है, तो मॉडल आपसे प्रोजेक्ट आईडी मांगेगा या प्रोजेक्ट की पहचान करने के लिए gcloud कमांड को लागू करने के लिए कहेगा.

इसके बाद, यह मौजूदा टूल का विश्लेषण करेगा और Cloud SQL MCP टूल को लागू करने के लिए कहेगा. आपको अनुमति के लिए यह अनुरोध दिखेगा.

?  create_instance (Cloud SQL MCP Server MCP Server) {"tier":"db-custom-2-8192","region":"us-central1","project":"gleb-test-short-001-486416","databaseVersion":"POSTGRES_17","edition":"ENTERPRISE","nam... ← │
│                                                                                                                                                                                                              │
│ MCP Server: Cloud SQL MCP Server                                                                                                                                                                             │
│ Tool: create_instance                                                                                                                                                                                        │
│                                                                                                                                                                                                              │
│ Allow execution of MCP tool "create_instance" from server "Cloud SQL MCP Server"?                                                                                                                            │
│                                                                                                                                                                                                              │
│ ● 1. Allow once                                                                                                                                                                                              │
│   2. Allow tool for this session                                                                                                                                                                             │
│   3. Allow all server tools for this session                                                                                                                                                                 │
│   4. No, suggest changes (esc)
 

इसे शुरू करने के बाद, यह ऑपरेशन के स्टेटस की निगरानी करने और जांचों के बीच स्लीप मोड के अनुरोधों की जानकारी देने के लिए कहेगा. कुछ इस तरह.

✦ I will wait for 30 seconds before checking the status of the instance creation.
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ⊶  Shell sleep 30 [current working directory /home/gleb/demo]                                                                                                                                                │
│                                                                                                                                                                                                              │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
⠋ Refining Instance Configuration (esc to cancel, 11s)

इसके बाद, Cloud SQL Server MCP के लिए get_operation टूल का इस्तेमाल किया जाएगा.

╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ?  get_operation (Cloud SQL MCP Server MCP Server) {"project":"gleb-test-short-001-486416","operation":"73c39ca7-65fe-46d1-bdb8-0dfa00000032"}                                                             ← │
│                                                                                                                                                                                                              │
│ MCP Server: Cloud SQL MCP Server                                                                                                                                                                             │
│ Tool: get_operation                                                                                                                                                                                          │
│                                                                                                                                                                                                              │
│ Allow execution of MCP tool "get_operation" from server "Cloud SQL MCP Server"?                                                                                                                              │
│                                                                                                                                                                                                              │
│ ● 1. Allow once

get_instance के आखिरी अनुरोध के बाद, आपको बनाए गए इंस्टेंस के बारे में जानकारी मिलनी चाहिए. कुछ इस तरह.

अनुमानित आउटपुट:

✦ I will wait for 30 seconds before checking the status of the instance creation.
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ⊶  Shell sleep 30 [current working directory /home/gleb/demo]                                                                                                                                                │
│                                                                                                                                                                                                              │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
⠋ Refining Instance Configuration (esc to cancel, 11s)

इसके बाद, Cloud SQL Server MCP के लिए get_operation टूल और get_insance MCP टूल कॉल का इस्तेमाल किया जाएगा. टास्क के पूरा होने की पुष्टि करने के लिए, Gemini CLI कुछ और जांच कर सकता है और कॉल कर सकता है.

The Cloud SQL for Postgres instance allstrides-db has been successfully created in the us-central1 region with 2 vCPUs and 8 GB of RAM.

  Instance Details:
   - Project ID: gleb-test-short-001-486416
   - Instance Name: allstrides-db
   - Public IP Address: 35.226.187.246
   - Database Version: POSTGRES_17
   - Machine Type: db-custom-2-8192 (2 vCPU, 8 GB RAM)
   - Region: us-central1
   - Connection Name: gleb-test-short-001-486416:us-central1:allstrides-db

  The instance is configured with public IP enabled, IAM authentication turned on, and Data API access allowed.

2. डेटा माइग्रेट करें

इंस्टेंस तैयार है. अब हम अपने सभी डेटा को मौजूदा SQLite डेटाबेस से क्लाउड में मौजूद नए डेटाबेस में माइग्रेट करना जारी रख सकते हैं.

Gemini CLI के प्रॉम्प्ट में, यह अनुरोध टाइप करें

Now when we have our Cloud SQL instance ready it is time to move the data from our local database. Please migrate all the  data to a new database in our Cloud SQL instance where the new user for application would be the database owner? Let's call the new database allstrides-db and the user allstrides. Please use our MCP tools whenever it is possible.

Gemini CLI, डेटा मॉडल का विश्लेषण करेगा. इसके लिए, वह कुछ कमांड चलाने की अनुमतियाँ माँगेगा. यह वर्कफ़्लो, 100% तय नहीं होता. साथ ही, कुछ चरण अलग-अलग हो सकते हैं.

यहां एक उदाहरण दिया गया है कि यह कैसे शुरू हो सकता है.

अनुमानित आउटपुट:

✦ I will read the allstrides/README.md and allstrides/seed_data.sql files to understand the local database structure and data.
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓  ReadFile allstrides/README.md                                                                                                                                                                             │
│                                                                                                                                                                                                              │
│                                                                                                                                                                                                              │
│ ✓  ReadFile allstrides/seed_data.sql                                                                                                                                                                         │
│                                                                                                                                                                                                              │
╰─────────────────────────────────────────────────────────────────────────

इसके बाद, कई चरणों के बाद यह डेटाबेस, उपयोगकर्ता, और डेटा को माइग्रेट करने के लिए Cloud SQL MCP का इस्तेमाल करेगा. डेटाबेस पर की जाने वाली शुरुआती कार्रवाइयों में से एक यह है कि यह आपको IAM उपयोगकर्ता के तौर पर जोड़ता है. साथ ही, आपको डेटाबेस और उपयोगकर्ता बनाने की अनुमतियां देता है. आपके पास Google Cloud में IAM के तौर पर ज़रूरी अनुमतियां होनी चाहिए

यहां वर्कफ़्लो के दौरान किए जाने वाले कुछ चरणों का उदाहरण दिया गया है

अनुमानित आउटपुट:

 ✓  execute_sql (Cloud SQL MCP Server MCP Server) {"project":"gleb-test-short-001-486416","instance":"allstrides-db","sqlStatement":"CREATE DATABASE \"allstrides-db\";","database":"postgres"}               │
│                                                                                                                                                                                                              │
│ {                                                                                                                                                                                                            │
│   "messages": [                                                                                                                                                                                              │
│     {                                                                                                                                                                                                        │
│       "message": "Execution complete. 1 result set(s) returned.",                                                                                                                                            │
│       "severity": "INFO"                                                                                                                                                                                     │
│     }                                                                                                                                                                                                        │
│   ],                                                                                                                                                                                                         │
│   "metadata": {                                                                                                                                                                                              │
│     "sqlStatementExecutionTime": "0.075591388s"                                                                                                                                                              │
│   },                                                                                                                                                                                                         │
│   "results": [                                                                                                                                                                                               │
│     {}                                                                                                                                                                                                       │
│   ]                                                                                                                                                                                                          │
│ }                                                                                                                                                                                                            │
│       

3. Cloud Run पर ऐप्लिकेशन डिप्लॉय करना

अब डेटाबेस बना दिया गया है और स्थानीय ऐप्लिकेशन के डेटा को आपके CloudSQL डेटाबेस में माइग्रेट कर दिया गया है. अब आपके पास अपने ऐप्लिकेशन को Cloud Run पर डिप्लॉय करने का विकल्प है. डिप्लॉयमेंट के दौरान, Google Cloud SDK का इस्तेमाल करके Google Cloud में इमेज बनाई जाएगी. इसके बाद, Cloud Run MCP का इस्तेमाल करके इसे डिप्लॉय किया जाएगा.

Gemini CLI में, यह प्रॉम्प्ट चलाएं.

Now, when all the data is successfully migrated to our Cloud SQL instance allstrides-db we can migrate our allstrides application to Cloud Run and deploy using my Cloud SQL database. Please put the username and the password for my database user user to Secret Manager to not show openly in Cloud Run.
Let's build the image first and then use MCP to create the Cloud Run service.

इसे लागू करने के दौरान, यह एपीआई की जांच करेगा, सीक्रेट मैनेजर के लिए डेटा तैयार करेगा, और ज़रूरी सीक्रेट बनाएगा. साथ ही, यह ऐप्लिकेशन को PostgreSQL डेटाबेस के साथ काम करने के लिए अपडेट करेगा और ज़रूरी npm मॉड्यूल जोड़ेगा.

इसके बाद, इमेज बनाने और उसे Artifact Registry में रखने के बाद, यह MCP सेवा का इस्तेमाल करके ऐप्लिकेशन को Cloud Run पर डिप्लॉय करता है.

Cloud Run MCP को कॉल करने का उदाहरण यहां दिया गया है

अनुमानित आउटपुट:

✦ I will deploy the 'allstrides' service to Cloud Run using the deploy_service_from_image tool. I will configure the environment variables and map the
  database credentials from Secret Manager. Note that the MCP tool's schema does not explicitly expose the Cloud SQL instance attachment parameter, which is
  typically required for the Unix socket connection (/cloudsql/...) to work. I will proceed with the deployment as requested, but if the database connection
  fails due to the missing instance attachment, we may need to use gcloud to update that specific configuration.


╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Action Required                                                                                                                                    1 of 1 │
│                                                                                                                                                           │
│ ?  deploy_service_from_image (CloudRun MCP Server) {"service":{"invokerIamDisabled":true,"name":"projects/gleb-test-short-001-486416/locations/us-centra... │
│                                                                                                                                                           │
│ MCP Server: CloudRun                                                                                                                                      │
│ Tool: deploy_service_from_image                                                                                                                           │
│ Allow execution of MCP tool "deploy_service_from_image" from server "CloudRun"?                                                                           │
│                                                                                                                                                           │
│ ● 1. Allow once                                                                                                                                           │
│   2. Allow tool for this session                                                                                                                          │
│   3. Allow all server tools for this session                                                                                                              │
│   4. No, suggest changes (esc)                                                                                                                            │
│                                                                                                                                                           │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

सभी कार्रवाइयों को पूरा करने का सटीक पाथ, एक से दूसरी कार्रवाई के हिसाब से अलग-अलग हो सकता है. एआई एजेंट, कॉन्टेक्स्ट, कमांड के आउटपुट, और कई अन्य वैरिएबल के आधार पर पाथ चुनते हैं. एआई एजेंटिक सॉफ़्टवेयर की यही सबसे बड़ी ताकत है. यह किसी भी स्थिति में प्रतिक्रिया दे सकता है, अपने तरीके में बदलाव कर सकता है, और टास्क पूरे करने और बेहतर नतीजे देने के लिए, चरणों को फिर से आज़मा सकता है.

अब आपके पास Cloud Run में डिप्लॉय किया गया और चल रहा allstrides ऐप्लिकेशन होना चाहिए. साथ ही, यह आपके Cloud SQL डेटाबेस से कनेक्ट होना चाहिए.

यहां बताया गया है कि आपको आखिर में क्या दिख सकता है.

अनुमानित आउटपुट:

✦ The application allstrides has been successfully migrated to Cloud Run and is connected to the Cloud SQL database allstrides-db.

  Deployment Details:


   * Service URL: https://allstrides-812263612774.us-central1.run.app
   * Database: allstrides-db (PostgreSQL)
   * Database User: allstrides (Password updated and stored in Secret Manager)
   * Secrets: db-user and db-pass are mounted as environment variables.
   * Region: us-central1

  Steps Taken:


   1. Database Configuration:
       * Updated the allstrides database user password.
       * Created db-user and db-pass secrets in Google Cloud Secret Manager.
       * Updated database.ts to support PostgreSQL connections via Cloud SQL socket.
   2. Build:
       * Built the container image gcr.io/gleb-test-short-001-486416/allstrides using Cloud Build.
   3. Deployment:
       * Initiated deployment using the MCP deploy_service_from_image tool.
       * Granted the Secret Manager Secret Accessor role to the Cloud Run service account.
       * Attached the Cloud SQL instance connection using gcloud (as the MCP tool currently lacks this specific configuration parameter).


  The application is now serving traffic and successfully connected to the database.

इसके बाद, दिए गए यूआरएल को ब्राउज़र में खोलने पर, आपको ऐप्लिकेशन पेज दिखेगा.

d710de5dbee99720.png

साथ ही, हमारे सभी इवेंट वहां दिखने चाहिए

4ae98d3607718794.png

बधाई हो! आपने अपने लोकल ऐप्लिकेशन को क्लाउड पर ले जाने के लिए, Gemini CLI और Google Cloud की रिमोट एमसीपी सेवाओं का इस्तेमाल किया. इससे डिप्लॉयमेंट पूरा हो जाता है और सभी संसाधनों को हटाया जा सकता है.

8. एनवायरमेंट को साफ़ करना

एनवायरमेंट को क्लीन करने का सबसे आसान तरीका यह है कि Gemini CLI से, आपके बनाए गए सभी कॉम्पोनेंट हटाने के लिए कहा जाए. इसमें सभी ऐसेट के बारे में जानकारी होनी चाहिए. हालांकि, अगर आपको किसी वजह से लॉग आउट कर दिया गया है और आपके पास सेव किया गया कोई इतिहास नहीं है, तो ज़्यादा सटीक जानकारी दें. साथ ही, Cloud Run सेवा, इमेज, और Cloud SQL इंस्टेंस को मिटाने का अनुरोध करें. सेवा को हटाने के लिए, उस उपयोगकर्ता से पुष्टि करानी होगी जिसके पास ज़रूरी अनुमतियां हैं और जो gcloud कमांड का इस्तेमाल करेगा.

यहां प्रॉम्प्ट का एक उदाहरण दिया गया है

Now, when we've tested the application can you please delete the created Cloud Run service, the image we've built and the Cloud SQL instance we've created in the project. 

हटाने के बाद, Cloud Run सेवा या Cloud SQL इंस्टेंस को हटाने की पुष्टि करने के लिए, रिमोट एमसीपी सेवाओं का इस्तेमाल किया जा सकता है.

Can you please list all Cloud SQL instances in the project and Cloud Run services in the project.

आपको आखिर में इस तरह का मैसेज दिखेगा:

अनुमानित आउटपुट:

✦ There are currently no Cloud SQL instances or Cloud Run services (in us-central1) in the project gleb-test-short-001-486416.

लैब के चरण यहीं खत्म होते हैं.

9. बधाई हो

कोडलैब पूरा करने के लिए बधाई.

Google Cloud लर्निंग पाथ

हमने क्या-क्या बताया

  • Google Cloud के रिमोट एमसीपी के साथ काम करने के लिए, Gemini CLI को कैसे डिप्लॉय और कॉन्फ़िगर करें
  • Development KnowledgeMCP का इस्तेमाल कैसे करें
  • क्लाउड पर डेटा माइग्रेट करने के लिए, Cloud SQL MCP का इस्तेमाल कैसे करें
  • क्लाउड में ऐप्लिकेशन डिप्लॉय करने के लिए, Cloud Run MCP का इस्तेमाल कैसे करें
  • Google Cloud Shell में Gemini CLI का इस्तेमाल करने का तरीका

10. सर्वे

आउटपुट:

इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?

सिर्फ़ इसे पढ़ें इसे पढ़ें और एक्सरसाइज़ पूरी करें