Gemini CLI در GCE با نقطه پایانی Private Service Connect

۱. مرور کلی

شما می‌توانید از Gemini CLI در محیط‌های محلی و مجازی خود استفاده کنید. Gemini CLI یک عامل هوش مصنوعی متن‌باز است که قدرت Gemini را مستقیماً به ترمینال شما می‌آورد. از نقطه نظر شبکه، وقتی از Gemini CLI استفاده می‌کنید، از طریق آدرس IP API که به صورت عمومی قابل دسترسی است، با Gemini API تماس برقرار می‌کند.

حالا اگر بخواهید از رابط خط فرمان Gemini روی یک دستگاه Google Compute Engine استفاده کنید اما بخواهید به صورت خصوصی به API متصل شوید، چه اتفاقی می‌افتد؟ در این آزمایشگاه کد، نحوه پیکربندی نقطه پایانی Private Service Connect را به APIهای گوگل خواهید دید تا ترافیک را به یک آدرس IP داخلی که شما مشخص می‌کنید، هدایت کنید.

پیکربندی‌ها ترکیبی از Terraform، gcloud و console خواهند بود.

در این آزمایشگاه یاد خواهید گرفت که چگونه وظایف زیر را انجام دهید:

  • راه‌اندازی نمونه ماشین مجازی و Cloud NAT
  • نصب رابط خط فرمان Gemini و احراز هویت
  • پیکربندی نقطه پایانی Private Service Connect برای اتصال به Googleapis
  • مسیر اتصال به *.googleais را تأیید کنید
  • پیکربندی ورودی‌های DNS دستی

در این آزمایش، شما قرار است الگوی زیر را ایجاد کنید.

شکل ۱.

809ec92718405b07.png

۲. راه‌اندازی سرویس‌های ابری گوگل

تنظیم محیط خودتنظیم

  1. وارد کنسول گوگل کلود شوید و یک پروژه جدید ایجاد کنید یا از یک پروژه موجود دوباره استفاده کنید. اگر از قبل حساب جیمیل یا گوگل ورک اسپیس ندارید، باید یکی ایجاد کنید .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • نام پروژه، نام نمایشی برای شرکت‌کنندگان این پروژه است. این یک رشته کاراکتری است که توسط APIهای گوگل استفاده نمی‌شود. شما همیشه می‌توانید آن را به‌روزرسانی کنید.
  • شناسه پروژه در تمام پروژه‌های گوگل کلود منحصر به فرد است و تغییرناپذیر است (پس از تنظیم، قابل تغییر نیست). کنسول کلود به طور خودکار یک رشته منحصر به فرد تولید می‌کند؛ معمولاً برای شما مهم نیست که چه باشد. در اکثر آزمایشگاه‌های کد، باید شناسه پروژه خود را (که معمولاً با عنوان PROJECT_ID شناخته می‌شود) ارجاع دهید. اگر شناسه تولید شده را دوست ندارید، می‌توانید یک شناسه تصادفی دیگر ایجاد کنید. به عنوان یک جایگزین، می‌توانید شناسه خودتان را امتحان کنید و ببینید که آیا در دسترس است یا خیر. پس از این مرحله قابل تغییر نیست و در طول پروژه باقی می‌ماند.
  • برای اطلاع شما، یک مقدار سوم، شماره پروژه ، وجود دارد که برخی از APIها از آن استفاده می‌کنند. برای کسب اطلاعات بیشتر در مورد هر سه این مقادیر، به مستندات مراجعه کنید.
  1. در مرحله بعد، برای استفاده از منابع/API های ابری، باید پرداخت صورتحساب را در کنسول ابری فعال کنید . اجرای این آزمایشگاه کد هزینه زیادی نخواهد داشت، اگر اصلاً هزینه‌ای داشته باشد. برای خاموش کردن منابع به منظور جلوگیری از پرداخت صورتحساب پس از این آموزش، می‌توانید منابعی را که ایجاد کرده‌اید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان ۳۰۰ دلاری هستند.

شروع پوسته ابری

اگرچه می‌توان از راه دور و از طریق لپ‌تاپ، گوگل کلود را مدیریت کرد، اما در این آزمایشگاه کد، از گوگل کلود شل ، یک محیط خط فرمان که در فضای ابری اجرا می‌شود، استفاده خواهید کرد.

از کنسول گوگل کلود ، روی آیکون Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:

55efc1aaa7a4d3ad.png

آماده‌سازی و اتصال به محیط فقط چند لحظه طول می‌کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:

7ffe5cbb04455448.png

این ماشین مجازی با تمام ابزارهای توسعه‌ای که نیاز دارید، مجهز شده است. این ماشین مجازی یک دایرکتوری خانگی پایدار ۵ گیگابایتی ارائه می‌دهد و روی فضای ابری گوگل اجرا می‌شود که عملکرد شبکه و احراز هویت را تا حد زیادی بهبود می‌بخشد. تمام کارهای شما در این آزمایشگاه کد را می‌توان در یک مرورگر انجام داد. نیازی به نصب چیزی ندارید.

۳. وظیفه ۱. راه‌اندازی محیط با Terraform

ما یک VPC سفارشی با قوانین فایروال و زیرشبکه ایجاد خواهیم کرد. کنسول ابری را باز کنید و پروژه‌ای را که استفاده خواهید کرد انتخاب کنید.

  1. Cloud Shell را که در بالای کنسول شما در سمت راست قرار دارد باز کنید، مطمئن شوید که شناسه پروژه صحیح را در Cloud Shell مشاهده می‌کنید، هرگونه درخواستی را برای اجازه دسترسی تأیید کنید. 4261e776f64ea978.png
  2. یک پوشه به نام terraform-build ایجاد کنید و به پوشه مورد نظر منتقل کنید.
mkdir terraform-build  && cd terraform-build
  1. یک فایل main.tf و یک فایل variable.tf ایجاد کنید.
touch main.tf variable.tf 
  1. به نمای ویرایشگر Cloud Shell بروید. ویرایشگر را انتخاب کنید، مطمئن شوید که هرگونه درخواست لازم را مجاز می‌دانید تا رابط کاربری بتواند بارگیری شود.
  2. پس از بارگذاری، به مسیر File > Open Folder بروید و به مسیر /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 را باز کنید. ما قصد داریم مقداری کد terraform برای انجام اقدامات مختلف، همانطور که در زیر توضیح داده شده است، اضافه کنیم.

فعال کردن APIها

resource "google_project_service" "default"

ایجاد VPC با نام python-net

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. به ترمینال Cloud Shell برگردید و مطمئن شوید که در دایرکتوری terraform-build هستید. cd terraform-build اجرا کنید و دستورات زیر را اجرا کنید.

terraform init

دایرکتوری کاری را مقداردهی اولیه می‌کند. این مرحله ارائه‌دهندگان مورد نیاز برای پیکربندی داده شده را دانلود می‌کند.

terraform plan

یک طرح اجرایی ایجاد می‌کند که نشان می‌دهد Terraform چه اقداماتی را برای استقرار زیرساخت شما انجام خواهد داد.

  1. حالا برای ایجاد منابع، دستور terraform apply اجرا کنید و برای اجرا، yes را تایپ کنید.

۴. وظیفه ۲. ایجاد دروازه NAT و ماشین‌های مجازی با Terraform

ما باید دسترسی خارجی خروجی به اینترنت را فراهم کنیم، بنابراین بیایید یک دروازه Cloud NAT ایجاد کنیم و آن را وصل کنیم.

  1. Cloud Shell را باز کنید، به پوشه terraform-build بروید و فایل‌های زیر را ایجاد کنید (در مجموع سه فایل). بعداً آنها را ویرایش خواهیم کرد.
touch nat-vm.tf psc.tf dns.tf
  1. به نمای ویرایشگر Cloud Shell بروید و فایل nat-vm.tf را انتخاب کنید و کد Terraform زیر را اضافه کنید. این کار یک دروازه NAT و دو ماشین مجازی ایجاد می‌کند.

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. به ترمینال Cloud Shell بروید، مطمئن شوید که در پوشه terraform-build هستید و terraform plan اجرا کنید. این به شما نشان می‌دهد که ۴ مورد اضافه خواهد شد، سپس terraform apply اجرا کنید و برای ایجاد دروازه NAT و دو ماشین مجازی، yes را تایپ کنید.

۵. وظیفه ۳. پیکربندی ماشین‌های مجازی CLI و آزمایش

  1. به نمونه‌های ماشین مجازی بروید. ماشین مجازی را که با cli-vm شروع می‌شود انتخاب کنید. SSH را انتخاب کنید.
  2. وقتی SSH کردید، باید به ماشین مجازی دسترسی داشته باشید، بیایید یک پوشه برای زمانی که Gemini CLI را اجرا می‌کنیم، ایجاد کنیم.
mkdir geminicli && cd geminicli
  1. برای نصب Gemini CLI به Node js نیاز داریم. node 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 برای تأیید اعتبار این مورد کمک می‌کند تا بعداً آزمایش‌هایی انجام دهیم. ps به جای YOUR_PROJECT_ID ، 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. حالا بیایید احراز هویت کنیم. دستور زیر را در ماشین مجازی اجرا کنید، وقتی از شما خواسته شد، y را فشار دهید.
gcloud auth application-default login
  1. سپس آدرس اینترنتی (url) که با https:// شروع می‌شود را کپی کنید. یک تب جدید در پنجره مرورگر آزمایشگاه خود باز کنید و آدرس اینترنتی را جایگذاری کنید. دستورالعمل‌ها را بپذیرید (Accept).
  2. وقتی کپی انتخاب‌شده‌ی زیر را مشاهده کردید، به جلسه‌ی vm cli-vm برگردید و برای Enter authorization code: کدی را که کپی کرده‌اید، جای‌گذاری کنید و برای تأیید اعتبار، enter را فشار دهید.

c29615cdf9324209.png

  1. حالا بیایید Gemini CLI را نصب کنیم و دستور زیر را اجرا کنیم.
sudo npm install -g @google/gemini-cli

پس از اتمام، برای اجرای رابط کاربری، عبارت gemini را تایپ کنید، قالب مورد نظر خود را انتخاب کنید و در قسمت Select Auth، Vertex AI انتخاب کنید.

7fb8ea7fbf48cad9.png

a9f9a93ae8694e2f.png

  1. پس از احراز هویت، می‌توانید از Gemini Cli استفاده کنید.

b13a934b6220c9af.png

نظارت بر مسیر ترافیک به Gemini از طریق monitor vm

  1. به نمونه‌های ماشین مجازی بروید. ماشین مجازی که با monitor-vm شروع می‌شود را انتخاب کنید. SSH را انتخاب کنید.
  2. وقتی که از طریق SSH به monitor-vm وصل شدید، باید به آن دسترسی داشته باشید.
  3. بیایید از دستور dig برای آزمایش مسیر اتصال به API Gemini استفاده کنیم. ما از us-east1-aiplatform.googleapis.com استفاده خواهیم کرد.
dig us-east1-aiplatform.googleapis.com

شما باید چیزی مشابه را ببینید (آدرس متفاوت خواهد بود). توجه داشته باشید که مسیر از طریق آدرس‌های IP عمومی است زیرا 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. حالا بیایید یک تست ping سریع انجام دهیم تا ببینیم آیا می‌توانیم به API مربوط به Gemini متصل شویم یا خیر. این دستور از ۴ پینگ به us-east1-aiplatform.googleapis.com استفاده می‌کند، بنابراین ما از آدرس عمومی API پاسخ دریافت خواهیم کرد.
ping -c 4 us-east1-aiplatform.googleapis.com
  1. بعداً برای آزمایش این ماشین مجازی برمی‌گردیم. جلسه SSH را ببندید و ادامه دهید.

۶. وظیفه ۴. ایجاد نقطه پایانی PSC برای googleapis با Terraform

برای فعال کردن اتصال خصوصی به نقطه پایانی Vertex API خود، یک نقطه پایانی Private Service Connect برای Google APIs ایجاد خواهیم کرد. این به ما امکان می‌دهد از یک آدرس IP خصوصی که برای مسیریابی ترافیک به Google APIs مورد نیازمان، در این مورد Vertex، اختصاص می‌دهیم، استفاده کنیم.

  1. اگر Cloud Shell از قبل باز نیست، آن را در نمای ویرایشگر باز کنید. ما قصد داریم موارد زیر را ایجاد کنیم:
  • یک IP برای نقطه پایانی PSC ایجاد کنید : 10.10.100.250 ( resource "google_compute_global_address" "default")
  • یک نقطه پایانی PSC برای API های گوگل ایجاد کنید ( resource "google_compute_global_forwarding_rule" "default")

فایل psc.tf را در پوشه terraform-build باز کنید. کد زیر را به فایل اضافه کنید.

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. به ترمینال Cloud Shell بروید، مطمئن شوید که در پوشه terraform-build هستید. سپس terraform init را اجرا کنید. سپس terraform plan اجرا کنید. این به شما نشان می‌دهد که ۲ مورد اضافه خواهد شد،
    سپس terraform apply اجرا کنید و برای ایجاد نقطه پایانی IP و PSC Google APIs، عبارت yes را تایپ کنید.
  2. تأیید وجود نقطه پایانی
gcloud compute addresses list --filter="name=( 'gemini-ip' ...)"
gcloud compute forwarding-rules describe pscgemini --global

۷. وظیفه ۵. ایجاد ورودی DNS دستی به googleapis با Terraform

شما می‌توانید یک ورودی DNS دستی ایجاد کنید تا با استفاده از DNS خصوصی به نقطه پایانی PSC اشاره کند. این کار بر تمام شبکه‌هایی که به آن اختصاص می‌دهید تأثیر می‌گذارد.

  1. به سرویس‌های شبکه بروید و Cloud DNS را انتخاب کنید.
  2. در بخش Zoneها، باید یک Zone که به طور خودکار برای Private Service Connect for Google APIs ایجاد شده است، با نوع Zone، به نام Service Directory، مشاهده کنید. این Zone می‌تواند برای اتصال به نقطه پایانی PSC با فرمت ** SERVICE-ENDPOINT استفاده شود. مثال: p.googleapis.com : aiplatform-pscgemini.p.googleapis.com
  3. در این مورد، ما می‌خواهیم به صورت دستی یک ورودی DNS خصوصی ایجاد کنیم. پیکربندی به شرح زیر خواهد بود.
  • یک DNS zone خصوصی با نام "googleapis-private" برای "googleapis.com" ایجاد کنید و آن را به شبکه "python-net" محدود کنید.
  • یک رکورد A برای نگاشت "googleapis.com" به آدرس IP "10.10.100.250" اضافه کنید .
  • یک رکورد CNAME اضافه کنید تا تمام زیر دامنه‌های "googleapis.com" (مثلاً www.googleapis.com) به "googleapis.com" ریدایرکت شوند.
  1. اگر Cloud Shell از قبل باز نیست، آن را در نمای ویرایشگر باز کنید. فایل dns.tf را در پوشه terraform-build باز کنید. کد زیر را به فایل اضافه کنید.

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. به ترمینال Cloud Shell بروید، مطمئن شوید که در پوشه terraform-build هستید. سپس terraform plan اجرا کنید. این به شما نشان می‌دهد چه مواردی اضافه خواهند شد.
    سپس terraform apply اجرا کنید و برای ایجاد ورودی DNS خصوصی، عبارت yes را تایپ کنید.
  2. شما باید تنظیماتی با یک رکورد A و CNAME مانند این را ببینید.

a33a4d3d629c54dd.png

  1. در مرحله بعد، اتصال را با این تغییرات در monitor-vm تأیید می‌کنیم.

۸. وظیفه ۷. تأیید اتصال نقطه پایانی از طریق آدرس IP

بیایید با استفاده از نقطه پایانی خصوصی به Gemini متصل شویم.

  1. به VM Instance monitor-vm بروید. SSH را انتخاب کنید و SSH را به ماشین مجازی وارد کنید.
  2. با استفاده از دستور ping مسیر اتصال به us-east1-aiplatform.googleapis.com را بررسی کنید. این دستور، آدرس IP را در DNS خصوصی، یک رکورد برای googleapis، پینگ می‌کند. این IP یک نقطه پایانی PSC است و پینگ‌های شما ناموفق خواهند بود.
ping -c 2 us-east1-aiplatform.googleapis.com
  1. مسیر اتصال را با ping با استفاده از ورودی DNS که به طور خودکار برای APIهای PSC Google با aiplatform-pscvertexgemini.p.googleapis.com ایجاد شده است، بررسی کنید. این به آدرس IP نقطه پایانی PSC اشاره می‌کند و پینگ‌های شما ناموفق خواهند بود.
ping -c 2 aiplatform-pscgemini.p.googleapis.com
  1. با استفاده از دستور dig ، مسیر اتصال به us-east1-aiplatform.googleapis.com را بررسی کنید. این باید آدرس IP نقطه پایانی PSC (10.10.100.250) باشد.
dig us-east1-aiplatform.googleapis.com

bcb26844349ee775.png

  1. پس از اتمام، می‌توانید جلسه SSH مربوط به monitor-vm را ببندید.
  2. حالا می‌توانیم یک TCP dump روی cli-vm اجرا کنیم. برای این کار باید دو session SSH روی یک ماشین مجازی باز کنیم. در یکی از sessionها دستور tcpdump اجرا می‌شود و در session دیگر از رابط خط فرمان Gemini استفاده خواهیم کرد.
  3. اتصال SSH به اولین جلسه در cli-vm
  4. برای مشاهده اتصال در tcpdump، دستور زیر را تایپ کنید.
sudo tcpdump -i any port 53 -n or host us-east1-aiplatform.googleapis.com
  1. حالا با استفاده از SSH به سشن بعدی در cli-vm وارد شوید.
  2. با تایپ کردن gemini رابط خط فرمان Gemini را فعال کنید.
  3. سوال زیر را بپرسید، آسمان چه رنگی است تا فراخوانی به API جمینی ایجاد شود.

d6189c2adef69eaf.png

  1. برای اجرا و مشاهده نتیجه، اینتر را بزنید.
  2. به اولین جلسه در cli-vm برگردید. باید نتیجه tcpdump را ببینید. متوجه خواهید شد که آدرس IP ماشین مجازی از آدرس IP نقطه پایانی PSC برای اتصال به رابط برنامه‌نویسی Gemini استفاده می‌کند.

ce99170d9f9c7858.png

تمام جلسات SSH را به نمونه‌های ماشین مجازی ببندید

۹. تمیز کردن

  1. به Cloud Shell بروید، مطمئن شوید که در دایرکتوری terraform-build هستید. دستور cd terraform-build را اجرا کنید و دستور terraform destroy اجرا کنید و عبارت yes را تایپ کنید. تمام منابعی که در پروژه خود با Terraform ایجاد کرده‌اید حذف خواهند شد.

۱۰. تبریک

تبریک می‌گوییم، شما با موفقیت به Gemini CLI با استفاده از آدرس API عمومی و به صورت خصوصی با استفاده از Private Service Connect Endpoint برای APIهای گوگل متصل شدید. این قابلیت می‌تواند اتصال API خصوصی را به محیط ابری on-premium/دیگر محیط‌های ابری شما که از طریق (Interconnect، Cross-Cloud Interconnect و VPC) متصل هستند، گسترش دهد.

مراحل بعدی / اطلاعات بیشتر

می‌توانید درباره شبکه‌سازی Vertex AI بیشتر بخوانید و مخزن Gemini CLI را بررسی کنید.

آزمایشگاه بعدی خود را انجام دهید

به جستجوی خود با Google Cloud ادامه دهید و این آزمایشگاه‌های دیگر Google Cloud را بررسی کنید: