শূন্য থেকে প্রোডাকশন ডেমো ওয়াকথ্রু পর্যন্ত ক্লাউড রানের চূড়ান্ত গাইড।

১. ভূমিকা

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

আপনি যা শিখবেন

  • একটি এনজিনএক্স ইমেজ স্থাপন করুন
  • আপনার সোর্স কোড থেকে ডিপ্লয় করুন
  • একটি ডেপ্লয়মেন্ট রোলব্যাক করুন
  • একটি ডেপ্লয়মেন্টের প্রিভিউ
  • ডেভেলপার নলেজ এমসিপি সার্ভার টুল ব্যবহার করুন
  • ক্লাউড রানের সাথে সিক্রেট ম্যানেজার ব্যবহার করুন
  • একটি VPC-এর মধ্যে একটি অভ্যন্তরীণ ক্লাউড রান পরিষেবার সাথে সংযোগ করুন
  • ক্লাউড রানে একটি ADK এজেন্ট স্থাপন করুন

আপনার যা যা লাগবে

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

একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন

  1. গুগল ক্লাউড কনসোলের প্রজেক্ট সিলেক্টর পেজে, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন
  2. আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং চালু আছে কিনা তা নিশ্চিত করুন। কোনো প্রোজেক্টে বিলিং চালু আছে কিনা তা কীভাবে পরীক্ষা করবেন, তা জেনে নিন।

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

ক্লাউড শেল হলো গুগল ক্লাউডে চালিত একটি কমান্ড-লাইন পরিবেশ, যা প্রয়োজনীয় টুলস সহ আগে থেকেই লোড করা থাকে।

  1. Google Cloud কনসোলের শীর্ষে থাকা Activate Cloud Shell-এ ক্লিক করুন।
  2. ক্লাউড শেলে সংযুক্ত হওয়ার পর, আপনার প্রমাণীকরণ যাচাই করুন:
    gcloud auth list
    
  3. আপনার প্রজেক্টটি কনফিগার করা হয়েছে কিনা তা নিশ্চিত করুন:
    gcloud config get project
    
  4. আপনার প্রজেক্টটি প্রত্যাশা অনুযায়ী সেট করা না থাকলে, এটি সেট করুন:
    export PROJECT_ID=<YOUR_PROJECT_ID>
    gcloud config set project $PROJECT_ID
    

পরিবেশ ভেরিয়েবল সেট করুন

এই কোডল্যাবটি নিম্নলিখিত এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করে।

প্রথমে আপনার অঞ্চল নির্ধারণ করুন।

export REGION=<YOUR_REGION>

এরপর, আপনার PROJECT_ID এবং REGION নিশ্চিত করুন।

echo "PROJECT_ID: $PROJECT_ID | REGION: $REGION"

২. ইমেজ থেকে ডিপ্লয় করুন

এই অংশে, আপনি সরাসরি ডকার হাব থেকে একটি স্ট্যান্ডার্ড এনজিনএক্স (nginx) ইমেজ ডেপ্লয় করবেন। এটিকে সর্বজনীনভাবে অ্যাক্সেসযোগ্য করার জন্য কনফিগার করবেন এবং কন্টেইনার পোর্ট ৮০-তে সেট করবেন।

  1. nginx পরিষেবাটি স্থাপন করুন:
   gcloud run deploy nginx-service \
     --image=nginx \
     --allow-unauthenticated \
     --port=80 \
     --region=$REGION
  1. ডেপ্লয়মেন্ট সম্পূর্ণ হলে, কমান্ড আউটপুটে একটি সার্ভিস ইউআরএল (Service URL) পাওয়া যাবে। "Welcome to nginx!" পেজটি দেখতে আপনার ব্রাউজারে সেই ইউআরএলটি খুলুন।

৩. উৎস থেকে স্থাপন করুন

mkdir color-app && cd $_

requirements.txt নামে একটি ফাইল তৈরি করুন এবং তাতে নিম্নলিখিত বিষয়বস্তু অন্তর্ভুক্ত করুন:

Flask>=2.0.0
gunicorn>=20.0.0

main.py নামে একটি ফাইল তৈরি করুন এবং তাতে নিম্নলিখিত বিষয়বস্তু অন্তর্ভুক্ত করুন:

import os
from flask import Flask, render_template_string

app = Flask(__name__)

TEMPLATE = """
<!doctype html>
<html lang="en">
<head>
    <title>Cloud Run Traffic Revisions</title>
    <style>
        body {
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 50vh;
            background-color: darkseagreen;
            font-family: sans-serif;
        }
        .content {
            background-color: rgba(255, 255, 255, 0.8); /* Semi-transparent white background */
            padding: 2em;
            border-radius: 8px;
            text-align: center;
            box-shadow: 0 4px 8px rgba(0,0,0,0.1);
        }
    </style>
</head>
<body>
    <div class="content">
	  <!-- ROLLBACK DEMO: change this text to "gray" -->
        <p>background color: <strong>darkseagreen</strong></p>
    </div>
</body>
</html>
"""

@app.route('/')
def main():
    
    return render_template_string(TEMPLATE)

if __name__ == '__main__':
    port = int(os.environ.get('PORT', 8080))
    app.run(debug=True, host='0.0.0.0', port=port)

এখন নিম্নলিখিত কমান্ডটি চালান।

gcloud run deploy \
 --allow-unauthenticated
 --region $REGION

৪. রোলব্যাক এবং প্রিভিউ লিঙ্ক

এই অংশে, আপনি একটি বাগ চিহ্নিত করবেন এবং এর সমাধান অনুসন্ধানের পাশাপাশি কীভাবে পূর্ববর্তী সংস্করণে ফিরে যেতে হয়, তা শিখবেন।

  1. প্রথমে, আপনি বর্তমানে ট্র্যাফিক পরিচালনাকারী রিভিশনটির নাম লিখে রাখবেন, কারণ এতে বাগটি নেই।
GOOD_REVISION=$(gcloud run revisions list --service color-app \
  --region $REGION --format 'value(REVISION)')
  1. color-app-এর main.py ফাইলের মধ্যে, 'ROLLBACK DEMO' খুঁজুন এবং লাইনটি নিচের মতো করে আপডেট করুন:
<p>background color: <strong>gray</strong></p>
  1. এখন আবার gcloud run deploy চালান। লক্ষ্য করুন আপনার আগের কনফিগারেশনগুলো কীভাবে ব্যবহৃত হয়েছে।

এখন যেহেতু আপনি একটি বাগ স্থাপন করেছেন, আপনি আপনার সোর্সে ফিরে গিয়ে কোনো পরিবর্তন করতে পারেন বা একটি গিট রিভার্ট করতে পারেন এবং তারপর বিল্ড করতে, নতুন বিল্ড শুরু করতে ইত্যাদি পারেন। তবে, এই প্রক্রিয়ার মধ্যে কোনো ত্রুটি যুক্ত হয়ে যাওয়ার সম্ভাবনা রয়েছে।

আরও নিরাপদ উপায় হলো রোল ব্যাক করা।

  1. পূর্ববর্তী সংস্করণে ফিরে যেতে, নিম্নলিখিতটি চালান:
gcloud run services update-traffic color-app \
  --to-revisions=$GOOD_REVISION=100 \
  --region=$REGION

এখন আপনি একটি নতুন সংস্করণ স্থাপন করতে পারেন যেটিতে কোনো ট্র্যাফিক আসবে না।

  1. এখন টেক্সটটিকে আবার darkseagreen এ পরিবর্তন করে বাগটি ঠিক করুন।
<p>background color: <strong>darkseagreen</strong></p>
  1. এবং সমাধানটি যাচাই করতে এটি স্থাপন করুন। মনে রাখবেন যে এটি কোনো ট্র্যাফিক পাবে না, কারণ ১০০% ট্র্যাফিক GOOD_REVISION-এ পিন করা আছে।
gcloud run deploy color-app --no-traffic --tag bugfix --region $REGION
  1. স্থাপন যাচাই করুন

আপনি লক্ষ্য করবেন যে ইউআরএলটি সামান্য ভিন্ন। যখন আপনি এটি ভিজিট করবেন, তখন এই ডিপ্লয়মেন্টে আপনার বাগ ফিক্সটি দেখতে পাবেন।

  1. ট্র্যাফিককে সর্বশেষ সংস্করণে ফেরত পাঠান।

এখন আপনি ট্র্যাফিককে সর্বশেষ সংস্করণে ফিরিয়ে আনবেন।

gcloud run services update-traffic color-app \
  --to-latest \
  --region=$REGION

এবং রিভিশন ট্যাগটি মুছে ফেলুন

gcloud run services update-traffic color-app \
  --remove-tags=bugfix \
  --region=$REGION

আপনি ডক্স -এ রোলব্যাক সম্পর্কে আরও জানতে পারবেন।

৫. ডেভেলপারের জ্ঞান এমসিপি সার্ভার

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

আপনার এআই এজেন্টকে ডেভেলপার নলেজ এমসিপি সার্ভারে অ্যাক্সেস দেওয়ার জন্য আপনাকে ইনস্টলেশন নির্দেশিকা অনুসরণ করতে হবে।

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

উদাহরণস্বরূপ, আপনি যদি ক্লাউড রান রিলিজ নোট দেখেন, তাহলে ২৪ ফেব্রুয়ারি ২০২৬-এর জন্য "ক্লাউড রান সার্ভিস হেলথ (প্রিভিউ) ব্যবহার করে বাহ্যিক ট্র্যাফিকের জন্য স্বয়ংক্রিয় ফেইলওভার এবং ফেইলব্যাক সহ একটি অত্যন্ত সহজলভ্য, বহু-অঞ্চল ক্লাউড রান পরিষেবা স্থাপন করুন" সম্পর্কিত একটি এন্ট্রি দেখতে পাবেন।

আপনি এখন আপনার এআই এজেন্টকে জিজ্ঞাসা করতে পারেন, "বহু-আঞ্চলিক স্বয়ংক্রিয় ফেইলওভারের জন্য এই নতুন ক্লাউড রান ফিচারটি সম্পর্কে আমাকে আরও বলুন।"

৬. সিক্রেট ম্যানেজার ব্যবহার করা

ক্লাউড রানে গোপনীয় তথ্য ফাঁস করার ৩টি উপায় রয়েছে:

  1. একটি এনভায়রনমেন্ট ভেরিয়েবল হিসেবে (যা ডিপ্লয় করার সময় পুল করা ভার্সনের সাথে লক করা থাকে)।
  2. ফাইল ভলিউম হিসেবে মাউন্ট করা হয়েছে (যা ক্রমাগত সর্বশেষ সংস্করণে আপডেট করা হয়)।
  3. আপনার কোডে সিক্রেট ম্যানেজার ক্লায়েন্ট লাইব্রেরি ব্যবহার করা।

এই অংশে, আপনি একটি নির্দিষ্ট সার্ভিস অ্যাকাউন্ট ব্যবহার করে একটি সিক্রেটকে এনভায়রনমেন্ট ভেরিয়েবল হিসেবে প্রকাশ করবেন।

  1. 'my-secret' নামে একটি নতুন সিক্রেট তৈরি করুন:
gcloud secrets create my-secret --replication-policy="automatic"
  1. গোপন মানটি একটি নতুন সংস্করণ হিসাবে যোগ করুন:
echo -n "my precious" | gcloud secrets versions add my-secret --data-file=-
  1. কালার-অ্যাপের জন্য একটি ডেডিকেটেড সার্ভিস অ্যাকাউন্ট তৈরি করুন:
gcloud iam service-accounts create color-app-sa \
     --display-name="Color App Service Account"
  1. নির্দিষ্ট পরিষেবা অ্যাকাউন্টটিকে গোপনীয় তথ্যে প্রবেশাধিকার দিন।
   gcloud secrets add-iam-policy-binding my-secret \
     --member="serviceAccount:color-app-sa@${PROJECT_ID}.iam.gserviceaccount.com" \
     --role="roles/secretmanager.secretAccessor"
  1. পুনরায় ডিপ্লয় করুন। এখন সার্ভিসটি MY_SECRET এনভায়রনমেন্ট ভেরিয়েবলটি অ্যাক্সেস করতে পারবে:
gcloud run deploy color-app \
     --source . \
     --update-secrets=MY_SECRET=my-secret:latest \
     --service-account=color-app-sa@${PROJECT_ID}.iam.gserviceaccount.com \
     --region=$REGION

৭. একটি VPC-তে সংযোগ করুন

এই অংশে, আপনি নিম্নলিখিত আর্কিটেকচারটি সেট আপ করবেন:

  • ব্যক্তিগত ব্যাকএন্ড যা পাবলিক ইন্টারনেট থেকে অ্যাক্সেসযোগ্য নয়
  • একটি পাবলিক ফ্রন্টএন্ড যা সরাসরি VPC ইগ্রেসের মাধ্যমে ব্যাকএন্ডের সাথে যোগাযোগ করে।

এই উদাহরণে ডিফল্ট নেটওয়ার্ক ও সাবনেট ব্যবহার করা হবে।

পূর্বশর্ত: আপনার সাবনেটে প্রাইভেট গুগল অ্যাক্সেস সক্রিয় করা নিশ্চিত করুন, যাতে ভিপিসি অভ্যন্তরীণ অনুরোধগুলিকে ক্লাউড রান পরিষেবাগুলিতে রুট করতে পারে।

   gcloud compute networks subnets update default \
     --region=$REGION \
     --enable-private-ip-google-access
  1. এই বিভাগের জন্য ফোল্ডার তৈরি করুন
mkdir ../vpc-demo
cd ../vpc-demo
  1. ব্যক্তিগত ব্যাকএন্ড পরিষেবা তৈরি করুন
mkdir backend
touch backend/app.js
touch backend/package.json

backend/app.js ফাইলে নিম্নলিখিতটি যোগ করুন:

const http = require('http');

const server = http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('Hello World from the Private Backend!');
});

const port = process.env.PORT || 8080;
server.listen(port, () => {
  console.log(`Private backend listening on port ${port}`);
});

backend/package.json ফাইলে নিম্নলিখিত বিষয়গুলো যোগ করুন:

{
    "name": "backend",
    "scripts": {
        "start": "node app.js"
    }
}
  1. শুধুমাত্র অভ্যন্তরীণ ইনগ্রেস সহ ব্যক্তিগত ব্যাকএন্ড স্থাপন করুন:
   gcloud run deploy private-backend \
     --source ./backend \
     --region $REGION \
     --ingress internal \
     --no-allow-unauthenticated
  1. ব্যাকএন্ড ইউআরএলটি লিখে রাখুন। পরবর্তীতে আপনাকে এই ইউআরএলটি ফ্রন্টএন্ড অ্যাপে দিতে হবে।
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projec
tNumber)')

export BACKEND_URL="https://private-backend-${PROJECT_NUMBER}.${REGION}.run.app"
  1. ফ্রন্টএন্ড অ্যাপ তৈরি করুন
mkdir frontend
touch frontend/app.js
touch frontend/package.json

frontend/app.js ফাইলে নিম্নলিখিত কোডটি যোগ করুন:

const http = require('http');

const server = http.createServer(async (req, res) => {
  const backendUrl = process.env.BACKEND_URL;
  
  if (!backendUrl) {
    res.writeHead(500, { 'Content-Type': 'text/plain' });
    return res.end('Error: BACKEND_URL environment variable is missing.');
  }

  try {
    // Fetch the OIDC token from the Metadata server
    const tokenResponse = await fetch(`http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity?audience=${backendUrl}`, {
      headers: { 'Metadata-Flavor': 'Google' }
    });

    if (!tokenResponse.ok) {
      throw new Error(`Failed to fetch identity token: ${tokenResponse.statusText}`);
    }
    const token = await tokenResponse.text();

    // Ping the backend with the token
    const response = await fetch(backendUrl, {
      headers: { 'Authorization': `Bearer ${token}` }
    });
    const text = await response.text();

    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end(`Frontend successfully routed through VPC. Backend says: "${text}"`);
  } catch (error) {
    res.writeHead(500, { 'Content-Type': 'text/plain' });
    res.end(`Frontend failed to reach the backend. Error: ${error.message}`);
  }
});

const port = process.env.PORT || 8080;
server.listen(port, () => {
  console.log(`Public frontend listening on port ${port}`);
});
  1. frontend/package.json ফাইলে নিম্নলিখিতটি যোগ করুন:
{
    "name": "backend",
    "scripts": {
        "start": "node app.js"
    }
}
  1. ফ্রন্টএন্ড সার্ভিসের জন্য একটি ডেডিকেটেড সার্ভিস অ্যাকাউন্ট তৈরি করুন:
  gcloud iam service-accounts create frontend-sa \
     --display-name="Frontend Service Account"
  1. একে ক্লাউড রান ইনভোকার রোলটি প্রদান করুন
PROJECT_ID=$(gcloud config get project)
  
gcloud projects add-iam-policy-binding $PROJECT_ID \
     --member="serviceAccount:frontend-sa@${PROJECT_ID}.iam.gserviceaccount.com" \
     --role="roles/run.invoker"
  1. এখন ডিরেক্ট ভিপিসি ইগ্রেস ব্যবহার করে পাবলিক ফ্রন্টএন্ডটি ডেপ্লয় করুন। আউটবাউন্ড রিকোয়েস্টকে ভিপিসিতে পাঠাতে আমরা '–vpc-egress=all-traffic' সেট করেছি:
   gcloud run deploy public-frontend \
     --source ./frontend \
     --region $REGION \
     --allow-unauthenticated \
     --network default \
     --subnet default \
     --vpc-egress all-traffic \
    --service-account=frontend-sa@${PROJECT_ID}.iam.gserviceaccount.com \
     --set-env-vars BACKEND_URL=$BACKEND_URL
  1. পরিষেবাগুলি যাচাই করুন
  • ফ্রন্টএন্ড পরীক্ষা করুন: পাবলিক ফ্রন্টএন্ড ইউআরএলটি কার্ল (Curl) করুন। এটির ব্যাকএন্ডের সাথে সফলভাবে যোগাযোগ স্থাপন করে একটি প্রতিক্রিয়া ফেরত দেওয়া উচিত।
     FRONTEND_URL=$(gcloud run services describe public-frontend --region $REGION --format='value(status.url)')
     curl $FRONTEND_URL
  • ব্যাকএন্ড পরীক্ষা করুন (সরাসরি): আপনার লোকাল মেশিন (পাবলিক ইন্টারনেট) থেকে সরাসরি ব্যাকএন্ড URL-টি curl করার চেষ্টা করুন। এটি একটি 404 এরর দিয়ে ব্যর্থ হওয়া উচিত, কারণ ইনগ্রেস শুধুমাত্র 'ইন্টারনাল'-এর জন্য সীমাবদ্ধ এবং অথেনটিকেশন প্রয়োজন।
  curl $BACKEND_URL

৮. একটি ADK এজেন্ট স্থাপন করুন

এই অংশে, আপনি দেখতে পাবেন কিভাবে পাইথন বিল্ডপ্যাক এজেন্ট ডেভেলপমেন্ট কিট (ADK)-এর জন্য ডিফল্ট এন্ট্রিপয়েন্ট ডিটেকশন সমর্থন করে।

আপনি নিম্নলিখিত ফোল্ডার কাঠামোটি তৈরি করবেন:

adk-demo
 - my_agent
   - __init.py__
   - agent.py
 - requirements.txt
  1. ফোল্ডার কাঠামো তৈরি করুন
mkdir ../adk-demo
cd ../adk-demo
mkdir my_agent
touch my_agent/__init.py__
touch my_agent/agent.py
touch requirements.txt
  1. my_agent/__init.py__ ফাইলে নিম্নলিখিত বিষয়বস্তু যোগ করুন:
from . import agent
  1. my_agent/agent.py ফাইলে নিম্নলিখিত বিষয়বস্তু যোগ করুন:
from google.adk import Agent

root_agent = Agent(
    name="demo_agent",
    model="gemini-3-flash-preview",
    instruction="You are a helpful assistant for a Cloud Run demo."
)
  1. requirements.txt ফাইলে নিম্নলিখিত বিষয়বস্তু যোগ করুন:
google-adk
  1. এজেন্টের জন্য একটি ডেডিকেটেড সার্ভিস অ্যাকাউন্ট তৈরি করুন:
  gcloud iam service-accounts create agent-sa \
     --display-name="Agent Service Account"
  1. সার্ভিস অ্যাকাউন্টটিকে Vertex AI User রোলটি প্রদান করুন:
PROJECT_ID=$(gcloud config get-value project)
  
gcloud projects add-iam-policy-binding $PROJECT_ID \
     --member="serviceAccount:agent-sa@${PROJECT_ID}.iam.gserviceaccount.com" \
     --role="roles/aiplatform.user"
  1. ADK এজেন্ট স্থাপন করুন

আপনাকে এমন একটি অঞ্চলে স্থাপন করতে হবে যেখানে জেমিনি এপিআই অ্যাক্সেসযোগ্য। এই উদাহরণে, এটি হলো us-west1

gcloud run deploy my-adk-agent-demo \
   --source . \
   --region us-west1 \
   --allow-unauthenticated \
   --service-account=agent-sa@${PROJECT_ID}.iam.gserviceaccount.com \
   --set-env-vars="GOOGLE_GENAI_USE_VERTEXAI=TRUE,GOOGLE_CLOUD_PROJECT=$PROJECT_ID,GOOGLE_CLOUD_LOCATION=global"
  1. এন্ডপয়েন্টটি কার্ল করুন

আপনি দেখতে পারেন কিভাবে এজেন্টটি তাৎক্ষণিকভাবে একটি প্রোডাকশন-রেডি এপিআই হিসেবে উপলব্ধ হয়।

Cloud Run সার্ভিসের URL-টি একটি env var-এ রেকর্ড করুন।

AGENT_URL=$(gcloud run services describe my-adk-agent-demo \
  --region us-west1 \
  --format 'value(status.url)')

এজেন্টের সাথে একটি সেশন তৈরি করুন

curl -X POST $AGENT_URL/apps/my_agent/users/u_123/sessions/s_123 -H "Content-Type: application/json" -d '{"key1": "value1", "key2": 42}'

ক্লাউড রান কী তা জিজ্ঞাসা করুন এবং এজেন্ট যা বলে শুধু সেটাই দেখানোর জন্য প্রতিক্রিয়াটি ফিল্টার করুন।

curl -X POST $AGENT_URL/run \
-H "Content-Type: application/json" \
-d "{
   \"appName\": \"my_agent\",
   \"userId\": \"u_123\",
   \"sessionId\": \"s_123\",
   \"newMessage\": { 
        \"role\": \"user\", 
        \"parts\": [{ \"text\": \"What is Cloud Run?\" 
    }]}
}" | python3 -c "import sys, json; print(json.load(sys.stdin)[-1]['content']['parts'][0]['text'])"

এবং আপনি নিম্নলিখিতের অনুরূপ কিছু দেখতে পাবেন:

Hello! I am **demo_agent**, and I'm here to help you with your Cloud Run demo. **Cloud Run** is a fully managed compute platform by Google Cloud that allows you to run **containerized applications** in a serverless environment...

৯. পরিষ্কার করুন

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

nginx, color-app, private-backend, public-frontend সার্ভিসগুলো মুছে ফেলুন

gcloud run services delete nginx-service --region $REGION --quiet
gcloud run services delete color-app --region $REGION --quiet
gcloud run services delete private-backend --region $REGION --quiet
gcloud run services delete public-frontend --region $REGION --quiet

ADK এজেন্টটি মুছে ফেলুন (দ্রষ্টব্য: এই উদাহরণের জন্য এটি us-west1-এ স্থাপন করা হয়েছে)।

gcloud run services delete my-adk-agent-demo --region us-west1 --quiet

সিক্রেট ম্যানেজারে সংরক্ষিত গোপনীয় তথ্য মুছে ফেলুন:

gcloud secrets delete my-secret --quiet

কালার অ্যাপ পরিষেবা অ্যাকাউন্টটি মুছে ফেলুন

gcloud iam service-accounts delete color-app-sa@${PROJECT_ID}.iam.gserviceaccount.com --quiet

ADK এজেন্ট পরিষেবা অ্যাকাউন্টটি মুছে ফেলুন

gcloud iam service-accounts delete agent-sa@${PROJECT_ID}.iam.gserviceaccount.com --quiet

(ঐচ্ছিক) প্রজেক্টটি মুছে ফেলুন

আপনি যদি বিশেষভাবে এই কোডল্যাবের জন্য একটি নতুন প্রজেক্ট তৈরি করে থাকেন, তাহলে সমস্ত রিসোর্স একবারে মুছে ফেলা নিশ্চিত করতে আপনি সম্পূর্ণ প্রজেক্টটি ডিলিট করে দিতে পারেন:

# run only if you want to delete the entire project
gcloud projects delete $PROJECT_ID

১০. অভিনন্দন!

আপনি কোডল্যাবটি সম্পন্ন করেছেন। আপনি ক্লাউড রান দিয়ে কাজ শুরু করার প্রাথমিক বিষয়গুলো জেনেছেন।

আপনি যা শিখেছেন

  • একটি এনজিনএক্স ইমেজ স্থাপন করুন
  • আপনার সোর্স কোড থেকে ডিপ্লয় করুন
  • একটি ডেপ্লয়মেন্ট রোলব্যাক করুন
  • একটি ডেপ্লয়মেন্টের প্রিভিউ
  • ডেভেলপার নলেজ এমসিপি সার্ভার টুল ব্যবহার করুন
  • ক্লাউড রানের সাথে সিক্রেট ম্যানেজার ব্যবহার করুন
  • একটি VPC-এর মধ্যে একটি অভ্যন্তরীণ ক্লাউড রান পরিষেবার সাথে সংযোগ করুন
  • ক্লাউড রানে একটি ADK এজেন্ট স্থাপন করুন