লোকাল টু ক্লাউড: জেমিনি সিএলআই এবং ক্লাউড এসকিউএল এমসিপি সহ ফুল-স্ট্যাক অ্যাপ মাইগ্রেশন

1. ভূমিকা

ফিটনেস কমিউনিটির জন্য একটি পূর্ণ-স্ট্যাক ইভেন্ট ম্যানেজমেন্ট প্ল্যাটফর্ম, AllStrides-এর সাথে দেখা করুন। বৈশিষ্ট্য সমৃদ্ধ হওয়া সত্ত্বেও, এর বর্তমান অবস্থা "স্থানীয়-কেবল"। এটি একটি স্থানীয় SQLite ডাটাবেস এবং ম্যানুয়াল Node.js এক্সিকিউশনের উপর নির্ভর করে। কমিউনিটির বিকাশের জন্য, AllStrides-এর Google ক্লাউডের স্কেল, নির্ভরযোগ্যতা এবং নিরাপত্তা প্রয়োজন।

এই কোডল্যাবে, আপনি কোনও ঐতিহ্যবাহী মাইগ্রেশন করবেন না। পরিবর্তে, আপনি একজন প্রোডাক্ট আর্কিটেক্ট হিসেবে কাজ করবেন, জেমিনি সিএলআইকে আপনার এজেন্টিক পার্টনার হিসেবে ব্যবহার করবেন। জেমিনিকে তিনটি গুগল ক্লাউড মডেল কনটেক্সট প্রোটোকল (এমসিপি) সার্ভার দিয়ে সজ্জিত করে, আপনি এআইকে "পৌঁছানোর" এবং সরাসরি গুগল ক্লাউড পরিষেবার সাথে ইন্টারঅ্যাক্ট করার অনুমতি দেবেন। আপনি অলস্ট্রাইডস অ্যাপের জন্য সেরা গুগল ক্লাউড ডাটাবেস সনাক্ত করতে ডেভেলপার নলেজ এমসিপি ব্যবহার করে শুরু করবেন। তারপর আপনি ক্লাউড এসকিউএল এমসিপি ব্যবহার করে একটি ডাটাবেস ইনস্ট্যান্স সরবরাহ করবেন এবং একটি একক প্রম্পটের মাধ্যমে আপনার স্থানীয় কমিউনিটি ডেটা ক্লাউডে স্থানান্তর করবেন। অবশেষে, আপনি অ্যাপ্লিকেশনটিকে কন্টেইনারাইজ করতে ক্লাউড রান এমসিপি ব্যবহার করবেন, যা অলস্ট্রাইডসকে লাইভ এবং বিশ্বব্যাপী অ্যাক্সেসযোগ্য করে তুলবে।

অনুসরণ

পূর্বশর্ত

  • গুগল ক্লাউড কনসোল সম্পর্কে প্রাথমিক ধারণা
  • কমান্ড লাইন ইন্টারফেস এবং ক্লাউড শেলের মৌলিক দক্ষতা।

তুমি কি শিখবে

  • রিমোট MCP এর সাথে কাজ করার জন্য জেমিনি CLI কনফিগার করার পদ্ধতি কীভাবে স্থাপন করবেন
  • ডেভেলপমেন্ট নলেজ এমসিপি সার্ভার কীভাবে ব্যবহার করবেন
  • ক্লাউডে ডেটা মাইগ্রেট করার জন্য ক্লাউড এসকিউএল রিমোট এমসিপি সার্ভার কীভাবে ব্যবহার করবেন
  • ক্লাউডে অ্যাপ্লিকেশন স্থাপনের জন্য ক্লাউড রান রিমোট এমসিপি সার্ভার কীভাবে ব্যবহার করবেন
  • গুগল ক্লাউড শেলে জেমিনি সিএলআই কীভাবে ব্যবহার করবেন

তোমার যা লাগবে

  • একটি গুগল ক্লাউড অ্যাকাউন্ট এবং গুগল ক্লাউড প্রকল্প
  • ক্রোমের মতো একটি ওয়েব ব্রাউজার যা গুগল ক্লাউড কনসোল এবং ক্লাউড শেল সমর্থন করে

2. সেটআপ এবং প্রয়োজনীয়তা

প্রকল্প সেটআপ

  1. গুগল ক্লাউড কনসোলে সাইন-ইন করুন। যদি আপনার ইতিমধ্যেই একটি জিমেইল বা গুগল ওয়ার্কস্পেস অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

কর্মক্ষেত্র বা স্কুল অ্যাকাউন্টের পরিবর্তে ব্যক্তিগত অ্যাকাউন্ট ব্যবহার করুন।

  1. একটি নতুন প্রকল্প তৈরি করুন অথবা বিদ্যমান একটি পুনরায় ব্যবহার করুন। গুগল ক্লাউড কনসোলে একটি নতুন প্রকল্প তৈরি করতে, হেডারে, একটি প্রকল্প নির্বাচন করুন বোতামে ক্লিক করুন যা একটি পপআপ উইন্ডো খুলবে।

295004821bab6a87.png সম্পর্কে

"একটি প্রকল্প নির্বাচন করুন" উইন্ডোতে "নতুন প্রকল্প" বোতামটি টিপুন যা নতুন প্রকল্পের জন্য একটি ডায়ালগ বক্স খুলবে।

37d264871000675d.png সম্পর্কে

ডায়ালগ বক্সে আপনার পছন্দের প্রকল্পের নাম লিখুন এবং অবস্থানটি নির্বাচন করুন।

96d86d3d5655cdbe.png সম্পর্কে

  • এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রজেক্টের নামটি প্রদর্শন করা হবে। প্রোজেক্টের নামটি গুগল এপিআই দ্বারা ব্যবহৃত হয় না এবং এটি যেকোনো সময় পরিবর্তন করা যেতে পারে।
  • সমস্ত Google ক্লাউড প্রোজেক্টে প্রোজেক্ট আইডি অনন্য এবং অপরিবর্তনীয় (সেট করার পরে এটি পরিবর্তন করা যাবে না)। Google ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য আইডি তৈরি করে, তবে আপনি এটি কাস্টমাইজ করতে পারেন। যদি আপনি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য একটি র‍্যান্ডম আইডি তৈরি করতে পারেন অথবা এর উপলব্ধতা পরীক্ষা করার জন্য আপনার নিজস্ব আইডি প্রদান করতে পারেন। বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রোজেক্ট আইডি উল্লেখ করতে হবে, যা সাধারণত PROJECT_ID প্লেসহোল্ডার দিয়ে চিহ্নিত করা হয়।
  • আপনার তথ্যের জন্য, তৃতীয় একটি মান আছে, একটি Project Number , যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।

বিলিং সক্ষম করুন

একটি ব্যক্তিগত বিলিং অ্যাকাউন্ট সেট আপ করুন

আপনি যদি গুগল ক্লাউড ক্রেডিট ব্যবহার করে বিলিং সেট আপ করেন, তাহলে আপনি এই ধাপটি এড়িয়ে যেতে পারেন।

  1. এই লিঙ্কে ক্লিক করুন এবং একটি ব্যক্তিগত গুগল অ্যাকাউন্ট দিয়ে সাইন ইন করুন।
  2. তুমি এরকম কিছু দেখতে পাবে:

f54628965f465486.png সম্পর্কে

  1. আপনার ক্রেডিট অ্যাক্সেস করতে এখানে ক্লিক করুন বোতামটি ক্লিক করুন। এটি আপনাকে আপনার বিলিং প্রোফাইল সেট আপ করার জন্য একটি পৃষ্ঠায় নিয়ে যাবে। যদি আপনাকে একটি বিনামূল্যে ট্রায়াল সাইন আপ স্ক্রিন দেখানো হয়, তাহলে বাতিল করুন ক্লিক করুন এবং বিলিং লিঙ্ক করতে থাকুন।

20e88842cf2a732e.png সম্পর্কে

  1. আপনি এখন একটি Google Cloud Platform ট্রায়াল বিলিং অ্যাকাউন্টের সাথে সংযুক্ত আছেন কিনা তা নিশ্চিত করুন-এ ক্লিক করুন।

cdc87f1c57777951.png সম্পর্কে

একটি ব্যক্তিগত বিলিং অ্যাকাউন্ট সেট আপ করুন

আপনি যদি গুগল ক্লাউড ক্রেডিট ব্যবহার করে বিলিং সেট আপ করেন, তাহলে আপনি এই ধাপটি এড়িয়ে যেতে পারেন।

একটি ব্যক্তিগত বিলিং অ্যাকাউন্ট সেট আপ করতে, ক্লাউড কনসোলে বিলিং সক্ষম করতে এখানে যান

কিছু নোট:

  • এই ল্যাবটি সম্পূর্ণ করতে ক্লাউড রিসোর্সে $3 USD এর কম খরচ হবে।
  • আরও চার্জ এড়াতে আপনি এই ল্যাবের শেষে রিসোর্স মুছে ফেলার ধাপগুলি অনুসরণ করতে পারেন।
  • নতুন ব্যবহারকারীরা $300 USD বিনামূল্যে ট্রায়ালের জন্য যোগ্য।

ক্লাউড শেল শুরু করুন

যদিও গুগল ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি গুগল ক্লাউড শেল ব্যবহার করবেন, যা ক্লাউডে চলমান একটি কমান্ড লাইন পরিবেশ।

গুগল ক্লাউড কনসোল থেকে, উপরের ডানদিকের টুলবারে ক্লাউড শেল আইকনে ক্লিক করুন:

ক্লাউড শেল সক্রিয় করুন

অথবা আপনি G তারপর S টিপতে পারেন। আপনি যদি Google Cloud Console-এর মধ্যে থাকেন অথবা এই লিঙ্কটি ব্যবহার করেন তবে এই ক্রমটি Cloud Shell সক্রিয় করবে।

পরিবেশের সাথে সংযোগ স্থাপন এবং সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে। এটি সম্পন্ন হলে, আপনি এরকম কিছু দেখতে পাবেন:

গুগল ক্লাউড শেল টার্মিনালের স্ক্রিনশট যা দেখায় যে পরিবেশটি সংযুক্ত হয়েছে

এই ভার্চুয়াল মেশিনটিতে আপনার প্রয়োজনীয় সকল ডেভেলপমেন্ট টুল রয়েছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি অফার করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার সমস্ত কাজ একটি ব্রাউজারেই করা যেতে পারে। আপনাকে কিছু ইনস্টল করার প্রয়োজন নেই।

৩. শুরু করার আগে

বেসিক API সক্ষম করুন

ক্লাউড রানে আপনার অ্যাপ্লিকেশন তৈরি এবং স্থাপনের জন্য ক্লাউড এসকিউএল এবং অন্যান্য পরিষেবার মতো পরিচালিত ডেটাবেস পরিষেবাগুলি ব্যবহার করতে, আপনাকে আপনার গুগল ক্লাউড প্রকল্পে তাদের সংশ্লিষ্ট API গুলি সক্ষম করতে হবে।

আপনার পদ্ধতির উপর নির্ভর করে আপনি ঐচ্ছিকভাবে ধাপটি এড়িয়ে যেতে পারেন এবং পরে Gemini CLI-কে সমস্ত প্রয়োজনীয় API সক্রিয় করতে দিতে পারেন, তবে এই ক্ষেত্রে কার্যকর করার সময় আপনার কিছু বিলম্ব এবং পুনরাবৃত্তিমূলক পদক্ষেপের সম্মুখীন হতে পারে।

ক্লাউড শেল টার্মিনালের ভিতরে, নিশ্চিত করুন যে আপনার প্রকল্প আইডি সেটআপ করা আছে:

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.

পরিষেবা অ্যাকাউন্টের অনুমতি প্রদান করুন

অ্যাপ্লিকেশন ইমেজ তৈরি এবং সংরক্ষণ করতে সক্ষম হওয়ার জন্য আপনাকে ডিফল্ট কম্পিউট সার্ভিস অ্যাকাউন্টে স্টোরেজ অ্যাডমিন অনুমতি প্রদান করতে হবে। আগের ধাপের মতো, আপনার কাছে কার্যকর করার সময় পরে এটি জেমিনি সিএলআই-তে অর্পণ করার বিকল্প রয়েছে।

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

রিমোট MCP সক্ষম করুন

একটি প্রকল্পের প্রতিটি পরিষেবার জন্য দূরবর্তী MCP পরিষেবাগুলি স্পষ্টভাবে সক্ষম করা উচিত। এগুলি ডিফল্টরূপে অক্ষম থাকে এবং এটি প্রকল্প এবং পরিষেবা স্তরে API অ্যাক্সেস নিয়ন্ত্রণ করতে সহায়তা করে।

ডেভেলপার নলেজ MCP পরিষেবা দিয়ে শুরু করা যাক। ডেভেলপার নলেজ API এবং রিমোট MCP পরিষেবা সক্রিয় করতে, আপনাকে নিম্নলিখিত gcloud কমান্ডগুলি চালাতে হবে।

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

যখন ডেভেলপার নলেজের জন্য API এবং রিমোট MCP সক্রিয় করা হয়, তখন আপনি এগিয়ে যেতে পারেন এবং ক্লাউড SQL রিমোট MCP পরিষেবার জন্য একই কাজ করতে পারেন।

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

ডাটাবেসের জন্য সমস্ত দূরবর্তী MCP-এর মতো, MCP অ্যাক্সেস এবং অনুমতিগুলি প্রকল্প স্তরে API-তে গ্রানুলার অ্যাক্সেস প্রদান করে এবং কেবলমাত্র পরিষেবা ব্যবহার প্রশাসক (roles/serviceusage.serviceUsageAdmin) ভূমিকা সহ একটি প্রধান (ব্যবহারকারী বা পরিষেবা অ্যাকাউন্ট) এটি করতে পারে।

এবং শুধুমাত্র MCP Tool User (roles/mcp.toolUser) ভূমিকা সম্পন্ন প্রিন্সিপালরাই দূরবর্তী MCP api তে কল করতে পারবেন।

উদাহরণস্বরূপ, যদি আপনার ক্লাউড এসকিউএল অ্যাডমিন (roles/cloudsql.admin) ভূমিকা না থাকে, তাহলে আপনি প্রকল্পে কোনও উদাহরণ তৈরি, ক্লোন বা আপডেট করতে পারবেন না।

প্রয়োজনীয় ভূমিকা এবং অনুমতি সম্পর্কে আপনি ডকুমেন্টেশনে আরও পড়তে পারেন।

আমরা দেখতে পাচ্ছি, স্টেজড এবং গ্রানুলার অথোরাইজেশন আমাদের অননুমোদিত আক্রমণ থেকে রক্ষা করে, এমনকি যখন রিমোট MCP এন্ডপয়েন্ট সক্রিয় থাকে, যা আমাদের উৎপাদনের জন্য যথেষ্ট নিরাপদ করে তোলে।

আমরা পরবর্তী যে রিমোট MCP টি সক্ষম করতে যাচ্ছি তা হল ক্লাউড রান পরিষেবা। ক্লাউড রান রিমোট MCP সক্ষমকরণ এবং অ্যাক্সেসের পদ্ধতিটি ক্লাউড SQL রিমোট MCP এর অনুরূপ।

নিম্নলিখিত কমান্ডটি ব্যবহার করে ক্লাউড রান এমসিপি পরিষেবা সক্ষম করুন।

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

অবশেষে আমরা নিম্নলিখিত কমান্ড ব্যবহার করে আমাদের প্রকল্পে সক্রিয় সমস্ত দূরবর্তী MCP যাচাই করতে পারি।

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

এখন যখন আমাদের সমস্ত API এবং পরিষেবা সক্রিয় করা হবে তখন আমাদের Gemini CLI কনফিগার করতে হবে।

৪. জেমিনি সিএলআই কনফিগার করুন

ল্যাবটি বেশিরভাগ ক্রিয়া সম্পাদনের জন্য প্রধান এজেন্ট হিসেবে জেমিনি সিএলআই ব্যবহার করার জন্য ডিজাইন করা হয়েছে এবং প্রথম ধাপ হল এটিকে দূরবর্তী এমসিপি সার্ভারের সাথে কাজ করার জন্য কনফিগার করা। এছাড়াও জেমিনি সিএলআই-এর সর্বশেষ সংস্করণ এবং জেমিনি-৩-প্রো বা জেমিনি-৩-ফ্ল্যাশ (বর্তমানে প্রিভিউতে) এর মতো জেমিনি-এর সর্বশেষ সংস্করণ ব্যবহার করার জন্য এটি অত্যন্ত সুপারিশ করা হয়।

যদি আপনার কাছে ইতিমধ্যেই Gemini CLI এর সর্বশেষ সংস্করণ থাকে এবং আপনি এটিকে সর্বশেষ Gemini মডেলগুলি ব্যবহারের জন্য কনফিগার করে থাকেন তাহলে আপনি পরবর্তী 2টি ধাপ এড়িয়ে সরাসরি ধাপ 3-এ যেতে পারেন।

১. একটি জেমিনি এপিআই কী পান

আপনার জেমিনি সিএলআই-তে সর্বশেষ জেমিনি মডেলগুলি ব্যবহার করার জন্য এটি একটি API কী প্রমাণীকরণের সাথে কনফিগার করা প্রয়োজন। আমরা গুগল এআই স্টুডিওতেও API কী পেতে পারি।

  1. আপনার ব্রাউজারে গুগল এআই স্টুডিও -> এপিআই কী পান - এ যান।
  2. স্ক্রিনের ডান দিকে Create API key বোতামে ক্লিক করুন।
  3. পপ-আপ উইন্ডোতে আপনার প্রকল্পটি নির্বাচন করুন অথবা যদি এটি দৃশ্যমান না হয় তবে আমদানি করুন।

683940deabde2975.jpeg সম্পর্কে

  1. API কী তৈরি করুন।
  2. ডান পাশের কপি বোতামটি ব্যবহার করে আপনি কীটি কপি করতে পারেন।

3d97805534c50bf.jpeg সম্পর্কে

চাবিটি প্রস্তুত এবং এখন আমরা এটি জেমিনি সিএলআই-এর জন্য ব্যবহার করতে পারি।

২. জেমিনি সিএলআই কনফিগার করুন

জেমিনি সিএলআই সেটিংস কনফিগারেশন ফাইলের মাধ্যমে অথবা /settings কমান্ড ব্যবহার করে ইন্টারেক্টিভভাবে কনফিগার করা যেতে পারে। আমরা চাই আমাদের সেটিংস আমাদের সেটিংস ফাইলে সংরক্ষিত থাকুক।

প্রথমে আমরা আমাদের প্রজেক্টের জন্য একটি ডিরেক্টরি তৈরি করব। আসুন projectmcp ডিরেক্টরিটি কল করি এবং নিম্নলিখিত কমান্ডগুলি ব্যবহার করে সেই ডিরেক্টরিতে স্যুইচ করি।

mkdir ~/projectmcp
cd ~/projectmcp

ডিরেক্টরিতে আমরা জেমিনি কনফিগারেশন ফাইলের জন্য একটি ডিরেক্টরি তৈরি করব এবং আমাদের সমস্ত কমান্ড রান করাবো। জেমিনি CLI ডিফল্টরূপে ~/.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 হিসাবে সেট করে এবং আপনাকে মডেলের কী প্রদান করতে হবে। আপনি যে ডিরেক্টরিতে Gemini CLI এর সাথে কাজ করতে চান সেখানে একটি .env ফাইল তৈরি করে এবং Gemini CLI প্রমাণীকরণের জন্য আপনার API কীটি একটি পরিবেশ ভেরিয়েবল হিসাবে সংরক্ষণ করে এটি করতে পারেন যা আপনি IDE শুরু করার সময় সংগ্রহ করা হবে।

ক্লাউড শেল এডিটর ব্যবহার করে ফাইলটি সম্পাদনা করা যাক।

edit ~/projectmcp/.env

এবং ধাপ ১ এ তৈরি আপনার API কী সংরক্ষণ করুন।

GEMINI_API_KEY= <YOUR_API_KEY>

এখন আপনি টার্মিনালে ফিরে যেতে পারেন এবং চালিয়ে যেতে পারেন। পরবর্তী ধাপ হল আপনার জেমিনি সিএলআই সর্বশেষ সংস্করণে আপডেট করা। গুগল ক্লাউড শেল বা আপনার পরিবেশে থাকা সংস্করণটি পুরানো হতে পারে এবং সর্বশেষ কনফিগারেশন এবং এমসিপি পরিষেবাগুলির সাথে সঠিকভাবে কাজ নাও করতে পারে। তাই জেমিনি সিএলআই সর্বশেষ সংস্করণে আপডেট করা এবং এটি চালু করা গুরুত্বপূর্ণ। টার্মিনালে নিম্নলিখিতগুলি সম্পাদন করুন।

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

এখন আপনি ভার্সনটি যাচাই করতে পারেন। অনুগ্রহ করে মনে রাখবেন যে আপনি যদি গুগল ক্লাউড শেলে কাজ করেন, তাহলে প্রতিবার শেলটি পুনরায় চালু করার সময় এটি পূর্ববর্তী ভার্সনে ফিরে যেতে পারে। জেমিনি সিএলআইতে আপনি যে পরিবর্তনগুলি করেন তা ক্লাউড শেলে স্থায়ী হয় না।

gemini --version

এটিতে সর্বশেষ Gemini CLI সংস্করণটি দেখানো উচিত (ল্যাব লেখার সময় সংস্করণ 0.27)। আপনি এখানে সর্বশেষ Gemini CLI সংস্করণটি যাচাই করতে পারেন। এবং এখন আমরা এটি শুরু করতে পারি এবং নিশ্চিত করতে পারি যে এটি সর্বশেষ Gemini মডেল ব্যবহার করছে। Gemini CLI শুরু করতে আপনার প্রকল্প ফোল্ডারে নিম্নলিখিত কমান্ডটি চালান।

gemini

এবং যখন Gemini CLI শুরু হবে, তখন আপনি ইন্টারফেসে /about কমান্ডটি চালিয়ে সংস্করণ এবং মডেলটি পরীক্ষা করতে পারবেন। আপনি নীচের ছবির মতো কিছু পাবেন।

অনুসরণ

আপনি দেখতে পাচ্ছেন এটি সর্বশেষ জেমিনি-৩ মডেল ব্যবহার করছে।

২. জেমিনি সিএলআই-তে এমসিপি সার্ভার কনফিগার করুন

এখন আমাদের সকল সক্রিয় MCP সার্ভার যোগ করার সময় এসেছে। আপনার কাছে Gemini CLI তে এগুলি সক্ষম করার দুটি উপায় আছে - এক্সটেনশনের মাধ্যমে অথবা সরাসরি সেটিংসে। এই ল্যাবে, আপনি আপনার প্রজেক্ট স্কোপ setting.json ফাইলটি ব্যবহার করবেন এবং সেখানে আপনি MCP সার্ভারের প্রমাণীকরণের বিবরণ যোগ করবেন।

  1. ডেভেলপার নলেজ এমসিপি সার্ভারের জন্য, আপনাকে এন্ডপয়েন্টে অনুমোদিত হওয়ার জন্য একটি API কী তৈরি করতে হবে।

এখানে পদক্ষেপগুলি দেওয়া হল:

  • যে প্রোজেক্টে আপনি API সক্ষম করেছেন তার Google ক্লাউড কনসোলে, ক্রেডেনশিয়াল পৃষ্ঠায় যান।
  • "ক্রিয়েন্ডেল তৈরি করুন" এ ক্লিক করুন, এবং তারপর মেনু থেকে API কী নির্বাচন করুন। API কী তৈরি করা ডায়ালগটি আপনার নতুন তৈরি করা কীটির স্ট্রিং প্রদর্শন করে।
  • ডায়ালগে থাকা Edit API key লিঙ্কে ক্লিক করুন।
  • Name ক্ষেত্রে, কীটির জন্য একটি নাম দিন। উদাহরণস্বরূপ DK API Key
  • API সীমাবদ্ধতার অধীনে, Restrict key নির্বাচন করুন।
  • Select APIs তালিকা থেকে, Developer Knowledge API সক্ষম করুন এবং OK ক্লিক করুন।
  • সংরক্ষণ করুন ক্লিক করুন।

d0e7c7081e43788e.jpeg সম্পর্কে

এখন যদি আপনার কীটি ব্যবহার করার প্রয়োজন হয়, তাহলে আপনি পৃষ্ঠায় গিয়ে ডানদিকে Show কী-তে ক্লিক করতে পারেন।

অনুসরণ

এখন আপনাকে সেই কীটি কনফিগারেশনে সংরক্ষণ করতে হবে। আমাদের settings.json ফাইলের MCP অংশটি দেখতে এরকম হবে (আপনাকে সেখানে আপনার DK API কী-এর জন্য একটি মান রাখতে হবে)। এখানে settings.json ফাইলের MCP অংশটি কেমন দেখাবে তার একটি উদাহরণ দেওয়া হল যদি শুধুমাত্র DK API যোগ করা হয়। পরবর্তীতে ল্যাবে, আপনি দেখতে পাবেন যে settings.json ফাইলটি সমস্ত MCP সার্ভার একসাথে কেমন দেখাবে।

    "mcpServers": {
    "DeveloperKnowledge": {
      "httpUrl": "https://developerknowledge.googleapis.com/mcp",
      "headers": {
        "X-Goog-Api-Key": "<Your DK API Key>"
      }
    }
  },
  1. এরপর, আপনি আমাদের ক্লাউড SQL MCP সার্ভারের জন্য কনফিগারেশন যোগ করতে পারেন। ক্লাউড SQL MCP এর জন্য, আপনি API এর পরিবর্তে আপনার Google শংসাপত্র ব্যবহার করবেন। এটি আরও নিরাপদ এবং আমাদের ব্যবহারকারীর জন্য অনুমোদিত ভূমিকা এবং কর্মের সুযোগ নির্ধারণ করার ক্ষমতা দেয়। এখানে MCP সার্ভারের কনফিগারেশন রয়েছে। অনুগ্রহ করে "<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-এর পরবর্তী অংশটিতে ক্লাউড রান 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 ফাইলে যোগ করতে হবে।

ক্লাউড শেল এডিটর ব্যবহার করে ~/projectmcp/.gemini/settings.json ফাইলটি খুলুন।

edit ~/projectmcp/.gemini/settings.json

এবং কন্টেন্টগুলো নিম্নলিখিত কনফিগারেশন দিয়ে প্রতিস্থাপন করুন। অনুগ্রহ করে আপনার পরিবেশ অনুযায়ী "X-Goog-Api-Key" এবং "X-Goog-User-Project" ফিল্ডে আপনার API কী এবং প্রজেক্ট আইডি রাখুন

{
  "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
    }
  }
}

এখন আমরা জেমিনি সিএলআই শুরু করতে পারি এবং সেখানে আমাদের সমস্ত এমসিপি সার্ভার সক্রিয় দেখতে পারি।

cd ~/projectmcp/
gemini

যখন জেমিনি সিএলআই শুরু হয়, তখন আপনি /mcp কমান্ডটি কার্যকর করে সমস্ত এমসিপি সার্ভার চালু এবং চলমান দেখতে পারেন।

352638b053783696.png সম্পর্কে

৫. আবেদনপত্র প্রস্তুত করা

নিম্নলিখিত উদাহরণে, আপনি আপনার নমুনা স্থানীয় অ্যাপ্লিকেশনটি Google ক্লাউডে স্থানান্তর করার চেষ্টা করবেন। প্রথমে আমরা স্থানীয়ভাবে অ্যাপ্লিকেশনটি ইনস্টল করব এবং এটি পরীক্ষা করব।

১. ক্লোন সোর্স কোড

আমাদের অ্যাপ্লিকেশনটি GitHub রিপোজিটরি থেকে ক্লোন করতে হবে। ক্লাউড শেল অথবা আপনার স্থানীয় টার্মিনালে প্রজেক্ট ফোল্ডারে এক্সিকিউট করুন।

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

2. স্থানীয়ভাবে আবেদন শুরু করুন

আসুন অ্যাপ্লিকেশনটি পরীক্ষা করি এবং কিছু নমুনা ডেটা লোড করি।

একই শেল থেকে অ্যাপ্লিকেশন ফোল্ডারে স্যুইচ করুন এবং ব্যবহার করে অ্যাপ্লিকেশনটি শুরু করুন

cd mcp/examples/allstrides
./start_allstrides.sh

৩. আবেদনপত্র পরীক্ষা করুন

যদি আপনি ক্লাউড শেলে কাজ করেন তাহলে ক্লাউড শেল উইন্ডোর উপরে Web preview বোতামটি টিপুন এবং Preview on port 8080 নির্বাচন করুন।

db0d9210014ade3d.jpeg সম্পর্কে

এটি অ্যাপ্লিকেশন ইন্টারফেস সহ একটি নতুন ব্রাউজার ট্যাব খুলবে যেখানে আপনি উদাহরণস্বরূপ Events বোতামে ক্লিক করতে পারেন।

67423438eef0c999.jpeg সম্পর্কে

এখন পর্যন্ত তোমার কোন অনুষ্ঠান নেই।

৪. নমুনা ডেটা লোড করুন

আপনি ঐচ্ছিকভাবে অ্যাপ্লিকেশনটিতে নিবন্ধন করতে পারেন এবং আপনার নিজস্ব ইভেন্ট, চ্যাট বার্তা এবং ব্যবহারকারী তৈরি করতে পারেন অথবা আপনি অ্যাপ্লিকেশনের সাথে সরবরাহিত নমুনা ডেটা ব্যবহার করতে পারেন।

উপরে "+" চিহ্ন ব্যবহার করে আরেকটি ক্লাউড শেল ট্যাব খুলুন।

abc505ac4d41f24e.png সম্পর্কে

নতুন ক্লাউড শেল ট্যাবে, অ্যাপ্লিকেশন ডিরেক্টরিতে স্যুইচ করে sqllite3 ইউটিলিটি ব্যবহার করে আমদানি চালান:

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

আপনি যদি অ্যাপ্লিকেশন পৃষ্ঠায় ফিরে যান, তাহলে আবার ইভেন্ট বোতামে ক্লিক করার পরে আপনি একাধিক ইভেন্ট দেখতে পাবেন।

5adc772a1d2261f4.jpeg সম্পর্কে

আপনি চ্যাট পৃষ্ঠাটি পরীক্ষা করে দেখতে পারেন এবং সেখানে কিছু বার্তা দেখতে পারেন।

এখন আপনি দ্বিতীয় ট্যাবটি বন্ধ করতে পারেন টাইপিং exit

exit

এবং ctrl+c কম্বিনেশন ব্যবহার করে প্রথম ট্যাবে অ্যাপ্লিকেশনটি বন্ধ করুন।

৬. ডেভেলপার জ্ঞান MCP পরীক্ষা করা

ডেভেলপার নলেজ এমসিপি আমাদের অজ্ঞেয়বাদী সরঞ্জামগুলি থেকে সরাসরি গুগল ডকুমেন্টগুলি ব্যবহার করার অনুমতি দেয় যা নির্দেশাবলী যাচাই করার, টিউটোরিয়াল তৈরি করার এবং অন্যান্য কাজগুলি করার ক্ষমতা প্রদান করে যা সর্বশেষ গুগল ডকুমেন্টেশন দ্বারা বর্ধিত করা যেতে পারে।

আপনার জেমিনি সিএলআই শুরু করুন এবং ডেভেলপার নলেজ এমসিপি সার্ভারে উপলব্ধ এমসিপি সরঞ্জামগুলির তালিকা তৈরি করুন।

/mcp

ডেভেলপার নলেজ এমসিপি-র জন্য আপনার তিনটি উপলব্ধ টুল দেখতে হবে:

প্রত্যাশিত আউটপুট:

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

আমাদের কাজ হল আমাদের অ্যাপ্লিকেশনটি গুগল ক্লাউডে স্থানান্তর করা এবং এর অর্থ হল আমাদের স্থানীয় Sqlite ডাটাবেস থেকে আরও স্কেলেবল এবং ক্লাউড নেটিভ সমাধানে স্যুইচ করতে হবে। আসুন জেমিনিকে আমাদের অ্যাপ্লিকেশন কোড এবং ডাটাবেস সমাধান সম্পর্কে পরামর্শ বিশ্লেষণ করতে বলি।

জেমিনি সিএলআই প্রম্পটে নিম্নলিখিতটি টাইপ করুন:

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?

জেমিনি সিএলআই আপনার কোড বিশ্লেষণ করে শুরু করবে এবং তারপর কার্যকর করতে বলবে

প্রত্যাশিত আউটপুট

 ?  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)   

আমরা দেখতে পাচ্ছি যে টুলটি গুগল ডকুমেন্টেশনের মাধ্যমে প্রতিক্রিয়া গ্রাউন্ড করার জন্য MCP ব্যবহার করছে। ডেভেলপার নলেজ MCP অনুরোধটি কার্যকর করার অনুমতি দিন। প্রতিক্রিয়া প্রদানের আগে আরও তথ্য পেতে এটি আপনাকে এক বা দুইবার জিজ্ঞাসা করতে পারে। এখন পর্যন্ত আপনার অ্যাপ্লিকেশনে কোনও পরিবর্তনের অনুমতি দেবেন না।

শেষে এটি একটি সারসংক্ষেপ সহ একটি টিউটোরিয়াল তৈরি করেছে যেখানে পোস্টগ্রেসের জন্য ক্লাউড এসকিউএলকে ডাটাবেস ব্যাকএন্ডের জন্য সেরা পছন্দ হিসাবে সংজ্ঞায়িত করা হয়েছে। জেনারেটিভ এআই মডেলগুলির অ-নির্ধারণী প্রকৃতির কারণে আপনি কিছুটা ভিন্ন প্রতিক্রিয়া পেতে পারেন।

প্রত্যাশিত আউটপুট:

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.  

আমরা ধাপে ধাপে ডেটা মাইগ্রেশন গাইড প্রস্তুত করতেও বলতে পারি। জেমিনি সিএলআই-তে একটি নতুন প্রম্পট দিন:

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?

এবং এখানে আবারও আমরা আশা করি যে জেমিনি সিএলআই টিউটোরিয়ালটি প্রস্তুত করার সময় সত্যের উৎস হিসেবে ডেভেলপার নলেজ এমসিপি ব্যবহার করবে। জেমিনি সিএলআই কর্তৃক গৃহীত পদক্ষেপের ক্রম সঠিক মডেল এবং অন্যান্য বিষয়ের উপর নির্ভর করে কিছুটা ভিন্ন হতে পারে। উদাহরণস্বরূপ, এটি প্রথমে মাইগ্রেশন স্ক্রিপ্ট প্রস্তুত করতে বলতে পারে এবং তারপরেই চূড়ান্ত টিউটোরিয়াল ডকুমেন্টেশনের কাজ করতে পারে।

এখানে এমন একটি উদাহরণ দেওয়া হল যেখানে এটি ডেভেলপার নলেজ এমসিপি কার্যকর করার অনুমতি চায়:

 ?  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"}
 

এক্সিকিউশনের সময় জেমিনি সিএলআই আপনাকে কিছু কমান্ড এক্সিকিউট করতে বলতে পারে। উদাহরণস্বরূপ, ডেটা মাইগ্রেশনের জন্য সঠিক নির্দেশাবলী প্রস্তুত করার জন্য ডেটা স্কিমা আরও ভালভাবে বোঝার জন্য।

এবং শেষ পর্যন্ত এটি ডেটা মাইগ্রেশনের জন্য ধাপে ধাপে নির্দেশাবলী প্রস্তুত করবে।

তারপর আপনি জেমিনি সিএলআই-কে টিউটোরিয়ালটি লিখতে বলতে পারেন

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.

পরবর্তী ধাপে আমরা ক্লাউড এসকিউএল এমসিপি-র সাথে কাজ করব, আমাদের ডাটাবেস প্রস্তুত করব এবং ডেটা স্থানান্তর করব।

৭. ক্লাউড এসকিউএল রিমোট এমসিপি পরীক্ষা করা

১. ক্লাউড এসকিউএল ইনস্ট্যান্স তৈরি করুন

আপনি Gemini CLI তে /mcp টাইপ করে ক্লাউড 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

আমরা ইতিমধ্যেই গুগল ক্লাউডে আমাদের অ্যাপ্লিকেশনের জন্য ব্যাকএন্ড হিসেবে পোস্টগ্রেসের জন্য ক্লাউড এসকিউএল ব্যবহার করার সিদ্ধান্ত নিয়েছি। এখন আমরা জেমিনিকে আমাদের জন্য একটি ক্লাউড এসকিউএল ইনস্ট্যান্স তৈরি করতে বলতে পারি।

জেমিনি সিএলআই প্রম্পটে আপনার অনুরোধটি নিম্নলিখিতভাবে টাইপ করুন:

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 কমান্ড কার্যকর করতে বলবে।

তারপর এটি বিদ্যমান সরঞ্জামগুলি বিশ্লেষণ করবে এবং ক্লাউড 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)

এরপর ক্লাউড SQL সার্ভার 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)

এরপর ক্লাউড SQL সার্ভার MCP এর জন্য একটি get_operation টুল এবং get_insance MCP টুল কল আসবে। টাস্কটি সফলভাবে সম্পন্ন হয়েছে কিনা তা যাচাই করার জন্য আপনাকে অতিরিক্ত চেক এবং জেমিনি 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 ডাটাবেস থেকে ক্লাউডের একটি নতুন ডাটাবেসে আমাদের সমস্ত ডেটা স্থানান্তর করতে পারি।

জেমিনি সিএলআই প্রম্পটে নিম্নলিখিত অনুরোধটি টাইপ করুন

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.

কার্যকর করার সময় জেমিনি সিএলআই আমাদের ডেটা মডেল বিশ্লেষণ করবে এবং এটি করার জন্য এটি কিছু কমান্ড চালানোর অনুমতি চাইবে। কর্মপ্রণালী ১০০% নির্ধারক নয় এবং কিছু পদক্ষেপ ভিন্ন হতে পারে।

এটি কীভাবে শুরু হতে পারে তার একটি উদাহরণ এখানে দেওয়া হল।

প্রত্যাশিত আউটপুট:

✦ 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                                                                                                                                                                         │
│                                                                                                                                                                                                              │
╰─────────────────────────────────────────────────────────────────────────

তারপর বেশ কিছু ধাপের পর এটি ক্লাউড SQL MCP ব্যবহার করে ডাটাবেস, ব্যবহারকারী প্রস্তুত করবে এবং অবশেষে ডেটা স্থানান্তর করবে। ডাটাবেসে এটি যে প্রথম কাজটি করবে তা হল আপনাকে IAM ব্যবহারকারী হিসেবে যুক্ত করা এবং ডাটাবেস এবং ব্যবহারকারী তৈরি করার অনুমতি প্রদান করা। 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": [                                                                                                                                                                                               │
│     {}                                                                                                                                                                                                       │
│   ]                                                                                                                                                                                                          │
│ }                                                                                                                                                                                                            │
│       

৩. ক্লাউড রানে অ্যাপ্লিকেশন স্থাপন করুন

এখন, ডাটাবেস তৈরি করা হয়েছে এবং স্থানীয় অ্যাপ্লিকেশন ডেটা আপনার CloudSQL ডাটাবেসে স্থানান্তরিত করা হয়েছে। আপনি এখন আপনার অ্যাপ্লিকেশনটি Cloud Run-এ স্থাপন করতে প্রস্তুত। স্থাপনের সময় আপনি Google Cloud SDK-এর একটি সংমিশ্রণ ব্যবহার করে Google ক্লাউডে ছবিটি তৈরি করবেন এবং তারপর Cloud Run MCP ব্যবহার করে এটি স্থাপন করবেন।

জেমিনি সিএলআই-তে, নিম্নলিখিত প্রম্পটটি চালান।

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.

কার্যকর করার সময় এটি API গুলি পরীক্ষা করবে, গোপন ব্যবস্থাপকের জন্য ডেটা প্রস্তুত করবে এবং প্রয়োজনীয় গোপনীয়তা তৈরি করবে। এছাড়াও এটি PostgreSQL ডাটাবেসের সাথে কাজ করার জন্য অ্যাপ্লিকেশনটি আপডেট করবে এবং প্রয়োজনীয় npm মডিউল যুক্ত করবে।

তারপর ছবিটি তৈরি করে আর্টিফ্যাক্ট রেজিস্ট্রিতে রাখার পর এটি ক্লাউড রানে অ্যাপ্লিকেশনটি স্থাপন করতে 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)                                                                                                                            │
│                                                                                                                                                           │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

সকল অপারেশন সম্পন্ন করার সঠিক পথ কার্যকরীকরণ থেকে কার্যকরীকরণে ভিন্ন হতে পারে। এআই এজেন্টরা প্রেক্ষাপট, কমান্ড আউটপুট এবং অন্যান্য একাধিক ভেরিয়েবলের উপর ভিত্তি করে পথটি বেছে নেয়। এবং এখানেই এআই এজেন্টিক সফ্টওয়্যারের শক্তি নিহিত - এটি প্রতিক্রিয়া জানাতে পারে, তার পদ্ধতি সামঞ্জস্য করতে পারে এবং কাজগুলি সম্পূর্ণ করার জন্য পদক্ষেপগুলি পুনরায় চেষ্টা করতে পারে এবং সফল ফলাফল প্রদান করতে পারে।

এখন আপনার অলস্ট্রাইডস অ্যাপ্লিকেশনটি ক্লাউড রানে স্থাপন এবং চলমান থাকা উচিত এবং আপনার ক্লাউড এসকিউএল ডাটাবেসের সাথে সংযুক্ত থাকা উচিত।

শেষে আপনি যা দেখতে পাবেন তা এখানে।

প্রত্যাশিত আউটপুট:

✦ 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.

এবং যখন আপনি ব্রাউজারে প্রদত্ত URL টি খুলবেন তখন আপনি অ্যাপ্লিকেশন পৃষ্ঠাটি দেখতে পাবেন।

d710de5dbee99720.png সম্পর্কে

এবং আমাদের সমস্ত ঘটনা সেখানে দৃশ্যমান হওয়া উচিত

4ae98d3607718794.png সম্পর্কে

অভিনন্দন! আপনি আপনার স্থানীয় অ্যাপ্লিকেশনটি ক্লাউডে স্থানান্তর করতে জেমিনি সিএলআই এবং গুগল ক্লাউড রিমোট এমসিপি পরিষেবা ব্যবহার করতে সক্ষম হয়েছেন। এর ফলে স্থাপনাটি শেষ হয় এবং সমস্ত সংস্থান পরিষ্কার করা যেতে পারে।

৮. পরিবেশ পরিষ্কার করুন

পরিবেশ পরিষ্কার করার সবচেয়ে সহজ উপায় হল 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. 

অপসারণের পরে, আপনি ক্লাউড রান পরিষেবা বা ক্লাউড SQL ইনস্ট্যান্স সফলভাবে অপসারণ যাচাই করতে দূরবর্তী MCP পরিষেবাগুলি ব্যবহার করতে পারেন।

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.

এটি ল্যাবের ধাপগুলি শেষ করে।

৯. অভিনন্দন

কোডল্যাবটি সম্পন্ন করার জন্য অভিনন্দন।

গুগল ক্লাউড লার্নিং পাথ

আমরা যা কভার করেছি

  • গুগল ক্লাউড রিমোট এমসিপিগুলির সাথে কাজ করার জন্য জেমিনি সিএলআই কনফিগার করার পদ্ধতি কীভাবে স্থাপন করবেন
  • ডেভেলপমেন্ট নলেজএমসিপি কীভাবে ব্যবহার করবেন
  • ক্লাউডে ডেটা মাইগ্রেট করার জন্য ক্লাউড এসকিউএল এমসিপি কীভাবে ব্যবহার করবেন
  • ক্লাউডে অ্যাপ্লিকেশন স্থাপনের জন্য ক্লাউড রান এমসিপি কীভাবে ব্যবহার করবেন
  • গুগল ক্লাউড শেলে জেমিনি সিএলআই কীভাবে ব্যবহার করবেন

১০. জরিপ

আউটপুট:

আপনি এই টিউটোরিয়ালটি কীভাবে ব্যবহার করবেন?

শুধু এটি পড়ুন এটি পড়ুন এবং অনুশীলনগুলি সম্পূর্ণ করুন।