একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট সহ GCE তে Gemini CLI

1. ওভারভিউ

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

এখন কি হবে যদি আপনি একটি Google Compute Engine মেশিনে Gemini CLI ব্যবহার করতে চান কিন্তু আপনি ব্যক্তিগতভাবে API এর সাথে সংযোগ করতে চান? এই কোডল্যাবগুলিতে আপনি দেখতে পাবেন কীভাবে Google API-এ প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট কনফিগার করবেন, আপনার নির্দিষ্ট করা একটি অভ্যন্তরীণ আইপি ঠিকানায় ট্র্যাফিক রুট করতে।

কনফিগারেশন হবে Terraform, gcloud এবং কনসোলের সংমিশ্রণ।

এই ল্যাবে আপনি নিম্নলিখিত কাজগুলি কীভাবে সম্পাদন করবেন তা শিখবেন:

  • VM ইনস্ট্যান্স এবং ক্লাউড NAT সেট আপ করুন
  • Gemini CLI ইনস্টল করুন এবং প্রমাণীকরণ করুন
  • Googleapis- এর সাথে সংযোগ করতে ব্যক্তিগত পরিষেবা সংযোগ এন্ডপয়েন্ট কনফিগার করুন
  • *.googleais-এ সংযোগ পাথ যাচাই করুন
  • ম্যানুয়াল DNS এন্ট্রি কনফিগার করুন

এই ল্যাবে, আপনি নিম্নলিখিত প্যাটার্ন তৈরি করতে যাচ্ছেন।

চিত্র 1.

809ec92718405b07.png

2. Google ক্লাউড পরিষেবা সেটআপ৷

স্ব-গতিসম্পন্ন পরিবেশ সেটআপ

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

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

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

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

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

55efc1aaa7a4d3ad.png

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

7ffe5cbb04455448.png

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

3. টাস্ক 1. টেরাফর্ম সহ পরিবেশ সেটআপ করুন

আমরা ফায়ারওয়াল নিয়ম এবং সাবনেট সহ একটি কাস্টম ভিপিসি তৈরি করব। ক্লাউড কনসোল খুলুন এবং আপনি যে প্রকল্পটি ব্যবহার করবেন সেটি নির্বাচন করুন।

  1. ডানদিকে আপনার কনসোলের শীর্ষে অবস্থিত ক্লাউড শেল খুলুন, নিশ্চিত করুন যে আপনি ক্লাউড শেলে সঠিক প্রজেক্ট আইডি দেখতে পাচ্ছেন, অ্যাক্সেসের অনুমতি দেওয়ার জন্য যেকোন প্রম্পট নিশ্চিত করুন। 4261e776f64ea978.png
  2. টেরাফর্ম-বিল্ড নামে একটি ফোল্ডার তৈরি করুন এবং ফোল্ডারে যান
mkdir terraform-build  && cd terraform-build
  1. একটি main.tf এবং variable.tf ফাইল তৈরি করুন।
touch main.tf variable.tf 
  1. ক্লাউড শেল এডিটর ভিউতে যান। সম্পাদক নির্বাচন করুন, নিশ্চিত করুন যে আপনি যেকোন প্রয়োজনীয় প্রম্পটের অনুমতি দিয়েছেন যাতে ইন্টারফেস লোড হতে পারে।
  2. একবার লোড হলে নেভিগেট করুন, ফাইল > ফোল্ডার খুলুন এবং /home/your-user-name/terraform-build- এ যান এবং সম্পাদকে ফোল্ডারটি খুলতে Ok নির্বাচন করুন। 78f5eb9f2f82f1b0.png
  3. variable.tf ফাইলটি নির্বাচন করুন এবং নিম্নলিখিত যোগ করুন। your-project-id-here টেক্সট প্রতিস্থাপন করুন উদ্ধৃতিতে আপনার প্রকৃত প্রকল্প আইডি দিয়ে
variable "project_id" {
  type = string
  default = "your-project-id-here"
}

variable "network_id" {
  type = string
  default = "gemini-vpc-net"
}
  1. এরপর main.tf ফাইলটি খুলুন। আমরা নীচে ব্যাখ্যা অনুযায়ী বিভিন্ন ক্রিয়া সম্পাদনের জন্য কিছু টেরাফর্ম কোড যোগ করতে যাচ্ছি।

এপিআই সক্ষম করুন

resource "google_project_service" "default"

পাইথন-নেট নামে ভিপিসি তৈরি করুন

resource "google_compute_network" "default"

একটি সাবনেট যোগ করুন

resource "google_compute_subnetwork" "default"

দুটি ফায়ারওয়াল নিয়ম যোগ করুন

resource "google_compute_firewall" "allow_icmp"resource "google_compute_firewall" "allow_ssh"

  1. কপি এবং প্রধান .tf ফাইলে নিম্নলিখিত পেস্ট করুন.
resource "google_project_service" "default" {
  for_each = toset([
    "dns.googleapis.com",
    "aiplatform.googleapis.com",
    "servicedirectory.googleapis.com"
  ])

  service            = each.value
  disable_on_destroy = false
}

resource "google_compute_network" "default" {
  project                 = var.project_id
  name                    = var.network_id
  auto_create_subnetworks = false
  mtu                     = 1460
  routing_mode            = "GLOBAL"
}

resource "google_compute_subnetwork" "default" {
  name          = "vm1-subnet"
  ip_cidr_range = "192.168.100.0/24"
  region        = "us-east1"
  stack_type    = "IPV4_ONLY"
  network       = google_compute_network.default.id
}

resource "google_compute_firewall" "allow_icmp" {
  name    = "allow-icmp-${google_compute_network.default.name}"
  network = google_compute_network.default.id
  project = var.project_id

  allow {
    protocol = "icmp"
  }

  source_ranges = ["0.0.0.0/0"]
  target_tags   = ["allow-icmp"]
}

resource "google_compute_firewall" "allow_ssh" {
  name    = "allow-ssh-${google_compute_network.default.name}"
  network = google_compute_network.default.id
  project = var.project_id

  allow {
    protocol = "tcp"
    ports    = ["22"]
  }

  source_ranges = ["0.0.0.0/0"]
  target_tags   = ["allow-ssh"]
}
  1. ক্লাউড শেল টার্মিনালে ফিরে যান নিশ্চিত করুন যে আপনি টেরাফর্ম-বিল্ড ডিরেক্টরি cd terraform-build আছেন এবং নিম্নলিখিত কমান্ডগুলি চালান

terraform init

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

terraform plan

আপনার পরিকাঠামো স্থাপনের জন্য Terraform কী পদক্ষেপ নেবে তা দেখায় একটি কার্যকরী পরিকল্পনা তৈরি করে।

  1. এখন রিসোর্স তৈরি করতে terraform apply কমান্ড দিন এবং রান করতে yes টাইপ করুন।

4. টাস্ক 2. Terraform দিয়ে NAT গেটওয়ে এবং VM তৈরি করুন

আমাদের ইন্টারনেটে আউটবাউন্ড বাহ্যিক অ্যাক্সেস মঞ্জুর করতে হবে তাই একটি ক্লাউড NAT গেটওয়ে তৈরি করুন এবং এটি সংযুক্ত করুন।

  1. ক্লাউড শেল খুলুন, টেরাফর্ম-বিল্ড ফোল্ডারে নেভিগেট করুন এবং নিম্নলিখিত ফাইলগুলি তৈরি করুন (মোট তিনটি ফাইল)। আমরা পরে এগুলি সম্পাদনা করব।
touch nat-vm.tf psc.tf dns.tf
  1. ক্লাউড শেল এডিটর ভিউতে স্যুইচ করুন এবং nat-vm.tf ফাইলটি নির্বাচন করুন এবং নিম্নলিখিত টেরাফর্ম কোড যোগ করুন। এটি একটি NAT গেটওয়ে এবং দুটি VM তৈরি করবে।

Terraform nat-vm.tf

resource "google_compute_router" "default" {
  name    = "outbound-nat"
  region  = "us-east1"
  network = google_compute_network.default.id

 bgp {
  asn = 64514
  }
}

resource "google_compute_router_nat" "default" {
  name                               = "outbound-gw"
  router                             = google_compute_router.default.name
  region                             = google_compute_router.default.region
  nat_ip_allocate_option             = "AUTO_ONLY"
  source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES"

  log_config {
    enable = true
    filter = "ERRORS_ONLY"
  }
}

resource "google_compute_instance" "vm1" {
  name         = "cli-vm"
  zone         = "us-east1-b"
  machine_type = "n2-standard-2"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-12"
    }
  }

  network_interface {
    subnetwork = google_compute_subnetwork.default.id  
    stack_type = "IPV4_ONLY"
  }

  tags = ["allow-ssh", "allow-icmp"]

  metadata_startup_script = <<-EOF
    sudo apt-get update    
  EOF
}

resource "google_compute_instance" "vm2" {
  name         = "monitor-vm"
  zone         = "us-east1-b"
  machine_type = "n2-standard-2"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-12"
    }
  }

  network_interface {
    subnetwork = google_compute_subnetwork.default.id   
    stack_type = "IPV4_ONLY"
  }

  tags = ["allow-ssh", "allow-icmp"]

  metadata_startup_script = <<-EOF
    sudo apt-get update
    sudo apt-get install python3 python3-dev python3-venv -y
    sudo apt-get install tcpdump dnsutils -y
  EOF
}
  1. ক্লাউড শেল টার্মিনালে স্যুইচ করুন, নিশ্চিত করুন যে আপনি টেরাফর্ম-বিল্ড ফোল্ডারে আছেন এবং terraform plan চালান এটি আপনাকে দেখাবে যে 4 টি আইটেম যোগ করা হবে, তারপর terraform apply চালান এবং NAT গেটওয়ে এবং দুটি ভিএম তৈরি করতে yes টাইপ করুন।

5. টাস্ক 3. CLI VM কনফিগার করুন এবং পরীক্ষা করুন

  1. VM দৃষ্টান্তগুলিতে নেভিগেট করুন। cli-vm দিয়ে শুরু হওয়া vm নির্বাচন করুন। SSH নির্বাচন করুন।
  2. একবার আপনি SSH হয়ে গেলে আপনার vm-এ অ্যাক্সেস থাকা উচিত, আসুন আমরা যখন Gemini CLI চালাব তার জন্য একটি ফোল্ডার তৈরি করি
mkdir geminicli && cd geminicli
  1. Gemini CLI ইন্সটল করতে আমাদের Node js দরকার। নিম্নলিখিত ব্যবহার করে নোড JS ইনস্টল করুন
curl -fsSL https://deb.nodesource.com/setup_24.x -o nodesource_setup.sh

স্ক্রিপ্ট চালান

sudo -E bash nodesource_setup.sh

নোড জেএস ইনস্টল করুন

sudo apt-get install -y nodejs
  1. আসুন কিছু ভেরিয়েবল সেট করি যা পরবর্তীতে কিছু পরীক্ষা করার জন্য এটিকে প্রমাণীকরণ করতে Vertex AI auth বিকল্প ব্যবহার করতে সাহায্য করবে। ps আপনার প্রকৃত project ID দিয়ে YOUR_PROJECT_ID প্রতিস্থাপন করুন
cat <<EOF >> ~/.bashrc 

export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
export GOOGLE_CLOUD_LOCATION="us-east1" 
export GOOGLE_GENAI_USE_VERTEXAI=true
EOF

ব্যাশ পুনরায় লোড করুন

source ~/.bashrc
  1. এখন এর প্রমাণীকরণ করা যাক. VM-এ নিম্নলিখিত কমান্ডটি চালান, অনুরোধ করা হলে y টিপুন।
gcloud auth application-default login
  1. পরবর্তীতে https:// দিয়ে শুরু হওয়া ইউআরএলটি কপি করুন আপনার ল্যাব ব্রাউজার উইন্ডোতে একটি নতুন ট্যাব খুলুন এবং ইউআরএলটি পেস্ট করুন। প্রম্পটগুলি গ্রহণ করুন।
  2. যখন আপনি নিম্নলিখিত নির্বাচনী অনুলিপিটি দেখতে পান, vm cli-vm সেশনে ফিরে যান এবং অনুমোদন কোড লিখুন: আপনার কপি করা কোডটি আটকান এবং প্রমাণীকরণের জন্য এন্টার টিপুন।

c29615cdf9324209.png

  1. এখন জেমিনি CLI কমান্ড রান ইনস্টল করা যাক
sudo npm install -g @google/gemini-cli

ইন্টারফেস চালু করার জন্য gemini টাইপ করার পরে, আপনার পছন্দের একটি থিম নির্বাচন করুন এবং সিলেক্ট অথ পদ্ধতির অধীনে Vertex AI বেছে নিন

7fb8ea7fbf48cad9.png

a9f9a93ae8694e2f.png

  1. একবার প্রমাণীকরণ হলে আপনি Gemini Cli ব্যবহার শুরু করতে পারেন

b13a934b6220c9af.png

মনিটর vm এর মাধ্যমে মিথুনে যাওয়ার ট্রাফিক রুট নিরীক্ষণ করুন

  1. VM দৃষ্টান্তগুলিতে নেভিগেট করুন। মনিটর-ভিএম দিয়ে শুরু হওয়া vm নির্বাচন করুন। SSH নির্বাচন করুন।
  2. একবার আপনি মনিটর-ভিএম-এ SSH-এ আপনার অ্যাক্সেস থাকা উচিত
  3. জেমিনি API-তে সংযোগ পাথ পরীক্ষা করতে dig কমান্ডটি ব্যবহার করা যাক। আমরা us-east1-aiplatform.googleapis.com ব্যবহার করব
dig us-east1-aiplatform.googleapis.com

আপনি অনুরূপ কিছু দেখতে হবে (ঠিকানা ভিন্ন হবে)। নোট করুন পাথটি সর্বজনীন আইপি ঠিকানার মাধ্যমে হয় যেহেতু API একটি সর্বজনীন API।

কপি করবেন না

; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> us-east1-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58905
;; flags: qr rd ra; QUERY: 1, ANSWER: 14, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;us-east1-aiplatform.googleapis.com. IN A

;; ANSWER SECTION:
us-east1-aiplatform.googleapis.com. 300 IN A    173.194.217.95
us-east1-aiplatform.googleapis.com. 300 IN A    172.217.204.95
us-east1-aiplatform.googleapis.com. 300 IN A    172.217.203.95
us-east1-aiplatform.googleapis.com. 300 IN A    142.250.98.95
us-east1-aiplatform.googleapis.com. 300 IN A    142.251.107.95
us-east1-aiplatform.googleapis.com. 300 IN A    74.125.196.95
us-east1-aiplatform.googleapis.com. 300 IN A    173.194.216.95
us-east1-aiplatform.googleapis.com. 300 IN A    108.177.11.95
us-east1-aiplatform.googleapis.com. 300 IN A    192.178.219.95
us-east1-aiplatform.googleapis.com. 300 IN A    173.194.210.95
us-east1-aiplatform.googleapis.com. 300 IN A    173.194.212.95
us-east1-aiplatform.googleapis.com. 300 IN A    173.194.215.95
us-east1-aiplatform.googleapis.com. 300 IN A    108.177.12.95
us-east1-aiplatform.googleapis.com. 300 IN A    74.125.26.95
  1. এখন আমরা Gemini API এর সাথে সংযোগ করতে পারি কিনা তা দেখতে একটি দ্রুত ping পরীক্ষা করা যাক। এই কমান্ডটি us-east1-aiplatform.googleapis.com-এ 4টি পিং ব্যবহার করবে তাই আমরা API-এর সর্বজনীন ঠিকানা থেকে একটি প্রতিক্রিয়া পাব।
ping -c 4 us-east1-aiplatform.googleapis.com
  1. আমরা পরে এই VM পরীক্ষা করতে ফিরে আসব। SSH সেশন বন্ধ করুন এবং চলুন চালিয়ে যান।

6. টাস্ক 4. Terraform দিয়ে googleapis-এ PSC এন্ডপয়েন্ট তৈরি করুন

আমাদের Vertex API এন্ডপয়েন্টে প্রাইভেট কানেক্টিভিটি সক্ষম করতে আমরা Google API-এর জন্য একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট তৈরি করব। এটি আমাদের একটি ব্যক্তিগত আইপি ঠিকানা ব্যবহার করার অনুমতি দেবে যা আমরা আমাদের প্রয়োজনীয় Google APIগুলিতে ট্র্যাফিক রুট করার জন্য বরাদ্দ করি, এই ক্ষেত্রে Vertex।

  1. ইতিমধ্যে খোলা না থাকলে এডিটর ভিউতে ক্লাউড শেল খুলুন। আমরা নিম্নলিখিত তৈরি করতে যাচ্ছি:
  • PSC এন্ডপয়েন্ট 10.10.100.250 এর জন্য একটি আইপি তৈরি করুন ( resource "google_compute_global_address" "default")
  • Google API তে একটি PSC এন্ডপয়েন্ট তৈরি করুন ( resource "google_compute_global_forwarding_rule" "default")

টেরাফর্ম-বিল্ড ফোল্ডারে psc.tf ফাইলটি খুলুন। ফাইলে নিম্নলিখিত কোড যোগ করুন।

Terraform psc.tf

resource "google_compute_global_address" "default" {
  name         = "gemini-ip"
  purpose      = "PRIVATE_SERVICE_CONNECT"
  network      = google_compute_network.default.id
  address_type = "INTERNAL"
  address      = "10.10.100.250"
}

resource "google_compute_global_forwarding_rule" "default" {  
  name                  = "pscgemini"
  target                = "all-apis"
  network               = google_compute_network.default.id
  ip_address            = google_compute_global_address.default.id
  load_balancing_scheme = ""
  }
  1. ক্লাউড শেল টার্মিনালে স্যুইচ করুন, নিশ্চিত করুন যে আপনি terraform-build ফোল্ডারে আছেন। তারপর terraform init চালান তারপর terraform plan চালান এটি আপনাকে দেখাবে যে 2 টি আইটেম যোগ করা হবে,
    তারপর terraform apply করুন এবং আইপি এবং পিএসসি গুগল এপিআই এন্ডপয়েন্ট তৈরি করতে yes টাইপ করুন।
  2. শেষ বিন্দু বিদ্যমান যাচাই করুন
gcloud compute addresses list --filter="name=( 'gemini-ip' ...)"
gcloud compute forwarding-rules describe pscgemini --global

7. টাস্ক 5. Terraform দিয়ে googleapis-এ ম্যানুয়াল DNS এন্ট্রি তৈরি করুন

আপনি ব্যক্তিগত DNS ব্যবহার করে PSC এন্ডপয়েন্টে নির্দেশ করতে একটি ম্যানুয়াল DNS এন্ট্রি তৈরি করতে পারেন। এটি আপনার দ্বারা নির্ধারিত সমস্ত নেটওয়ার্ককে প্রভাবিত করবে৷

  1. নেটওয়ার্ক পরিষেবাগুলিতে নেভিগেট করুন এবং ক্লাউড ডিএনএস নির্বাচন করুন।
  2. অঞ্চলগুলিতে আপনি Google API-এর জন্য ব্যক্তিগত পরিষেবা সংযোগের জন্য একটি স্বয়ংক্রিয়ভাবে তৈরি অঞ্চল দেখতে পাবেন, জোন প্রকার পরিষেবা ডিরেক্টরি সহ। এটি ** SERVICE-ENDPOINT ফরম্যাটের সাথে PSC এন্ডপয়েন্টের সাথে সংযোগ করতে ব্যবহার করা যেতে পারে। p.googleapis.com উদাহরণ: aiplatform-pscgemini.p.googleapis.com
  3. এই ক্ষেত্রে আমরা ম্যানুয়ালি একটি ব্যক্তিগত DNS এন্ট্রি তৈরি করতে চাই। কনফিগারেশন নিম্নরূপ হবে
  • "googleapis.com" এর জন্য "googleapis-private" নামে একটি ব্যক্তিগত DNS জোন তৈরি করুন এবং এটিকে "python-net" নেটওয়ার্কে সীমাবদ্ধ করুন৷
  • আইপি ঠিকানা "10.10.100.250" এ "googleapis.com" ম্যাপ করতে একটি রেকর্ড যুক্ত করুন
  • "googleapis.com" এর সমস্ত সাবডোমেন (যেমন, www.googleapis.com) "googleapis.com" এ পুনঃনির্দেশিত করতে একটি CNAME রেকর্ড যোগ করুন
  1. ইতিমধ্যে খোলা না থাকলে এডিটর ভিউতে ক্লাউড শেল খুলুন। টেরাফর্ম-বিল্ড ফোল্ডারে dns.tf ফাইলটি খুলুন। ফাইলে নিম্নলিখিত কোড যোগ করুন।

Terraform dns.tf

resource "google_dns_managed_zone" "private_zone" {
  name        = "googleapis-private"
  dns_name    = "googleapis.com."  
  visibility  = "private"
  project     = var.project_id     

  private_visibility_config {
    networks {
      network_url = google_compute_network.default.id  
    }
  }
}

resource "google_dns_record_set" "a_record" {
  name    = "googleapis.com."  
  type    = "A"
  ttl     = 300
  managed_zone = google_dns_managed_zone.private_zone.name
  project = var.project_id    

  rrdatas = ["10.10.100.250"]
}

resource "google_dns_record_set" "cname_record" {
 name    = "*.googleapis.com."
 type    = "CNAME"
 ttl     = 300
 managed_zone = google_dns_managed_zone.private_zone.name
 project = var.project_id    

 rrdatas = ["googleapis.com."]  
}
  1. ক্লাউড শেল টার্মিনালে স্যুইচ করুন, নিশ্চিত করুন যে আপনি terraform-build ফোল্ডারে আছেন। তারপর terraform plan চালান এটি আপনাকে দেখাবে কোন আইটেম যোগ করা হবে,
    তারপর terraform apply করুন এবং ব্যক্তিগত DNS এন্ট্রি তৈরি করতে yes টাইপ করুন।
  2. আপনি একটি A রেকর্ডের সাথে একটি সেট আপ দেখতে পাবেন এবং CNAME এইরকম দেখুন৷

a33a4d3d629c54dd.png

  1. এরপর আমরা মনিটর-ভিএম- এ এই পরিবর্তনগুলির সাথে সংযোগ যাচাই করি

8. টাস্ক 7. আইপি ঠিকানার মাধ্যমে এন্ডপয়েন্ট সংযোগ যাচাই করুন

মিথুনের সাথে সংযোগ করতে ব্যক্তিগত এন্ডপয়েন্ট ব্যবহার করে সংযোগ করা যাক।

  1. ভিএম ইনস্ট্যান্স মনিটর-ভিএম- এ যান। VM-এ SSH এবং SSH নির্বাচন করুন
  2. ping কমান্ড ব্যবহার করে us-east1-aiplatform.googleapis.com- এর সংযোগ পথটি পরীক্ষা করুন। এটি ব্যক্তিগত DNS-এ IP ঠিকানাকে পিং করবে, Googleapis-এর জন্য একটি রেকর্ড। এই IP একটি PSC এন্ডপয়েন্ট এবং আপনার পিংস ব্যর্থ হবে।
ping -c 2 us-east1-aiplatform.googleapis.com
  1. aiplatform-pscvertexgemini.p.googleapis.com এর সাথে PSC Google API-এর জন্য স্বয়ংক্রিয়ভাবে তৈরি DNS এন্ট্রি ব্যবহার করে একটি ping দিয়ে সংযোগের পথ পরীক্ষা করুন। এটি PSC এন্ডপয়েন্টের IP ঠিকানা নির্দেশ করে এবং আপনার পিংগুলি ব্যর্থ হবে।
ping -c 2 aiplatform-pscgemini.p.googleapis.com
  1. dig কমান্ড ব্যবহার করে us-east1-aiplatform.googleapis.com- এর সংযোগ পথটি পরীক্ষা করুন। এটি PSC এন্ডপয়েন্ট (10.10.100.250) এর IP ঠিকানা হওয়া উচিত।
dig us-east1-aiplatform.googleapis.com

bcb26844349ee775.png

  1. একবার সম্পন্ন হলে আপনি মনিটর-ভিএম এসএসএইচ সেশন বন্ধ করতে পারেন।
  2. এখন আমরা cli-vm- এ একটি TCP ডাম্প চালাতে পারি। আমাদের একই vm এ দুটি SSH সেশন খুলতে হবে। একটি সেশন tcpdump কমান্ড চালাবে অন্যটি আমরা Gemini CLI ব্যবহার করব।
  3. ক্লি-ভিএম- এ প্রথম সেশনে এসএসএইচ
  4. একটি tcpdump এ সংযোগ দেখতে অনুসরণ কমান্ড টাইপ করুন
sudo tcpdump -i any port 53 -n or host us-east1-aiplatform.googleapis.com
  1. এখন ক্লি-ভিএম-এর পরবর্তী সেশনে এসএসএইচ
  2. gemini টাইপ করে জেমিনি CLI সক্রিয় করুন
  3. নিচের প্রশ্নটি জিজ্ঞাসা করুন, Gemini API-তে কল জেনারেট করার জন্য আকাশের রঙ কি

d6189c2adef69eaf.png

  1. রান করার জন্য এন্টার টিপুন এবং ফলাফল দেখুন।
  2. cli-vm-এ প্রথম সেশনে ফিরে যান। আপনি tcpdump এর ফলাফল দেখতে হবে। আপনি ভিতরে এবং বাইরে লক্ষ্য করবেন এবং VM-এর IP ঠিকানাটি gemini API-এর সাথে সংযোগ করতে PSC এন্ডপয়েন্ট IP ঠিকানা ব্যবহার করছে

ce99170d9f9c7858.png

VM ইনস্ট্যান্সে সমস্ত SSH সেশন বন্ধ করুন

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

  1. ক্লাউড শেল- এ যান নিশ্চিত করুন যে আপনি টেরাফর্ম-বিল্ড ডিরেক্টরি cd terraform-build আছেন এবং নিম্নলিখিত terraform destroy কমান্ডটি চালান এবং yes টাইপ করুন টেরাফর্মের সাথে আপনার প্রকল্পে আপনার তৈরি করা সমস্ত সংস্থান মুছে ফেলা হবে।

10. অভিনন্দন

অভিনন্দন, আপনি সফলভাবে Gemini CLI-তে সর্বজনীন API ঠিকানা ব্যবহার করে এবং ব্যক্তিগতভাবে Google API-এর জন্য Private Service Connect Endpoint ব্যবহার করে সংযোগ করেছেন৷ এই কার্যকারিতাটি আপনার অন-প্রিম/অন্যান্য ক্লাউড পরিবেশে ব্যক্তিগত API সংযোগ প্রসারিত করতে পারে যা (ইন্টারকানেক্ট, ক্রস-ক্লাউড ইন্টারকানেক্ট এবং ভিপিসি) এর মাধ্যমে সংযুক্ত।

পরবর্তী পদক্ষেপ / আরও জানুন

আপনি Vertex AI নেটওয়ার্কিং সম্পর্কে আরও পড়তে পারেন এবং Gemini CLI রেপো দেখতে পারেন

আপনার পরবর্তী ল্যাব নিন

Google ক্লাউডের সাথে আপনার অনুসন্ধান চালিয়ে যান, এবং এই অন্যান্য Google ক্লাউড ল্যাবগুলি দেখুন: