‫Gemini CLI على GCE مع نقطة نهاية Private Service Connect

1. نظرة عامة

يمكنك استخدام Gemini CLI في كلٍّ من بيئاتك المحلية والافتراضية. ‫Gemini CLI هو وكيل ذكاء اصطناعي مفتوح المصدر يتيح لك الاستفادة من قدرات Gemini مباشرةً في نافذة الأوامر. من منظور الشبكات، عندما تستخدم Gemini CLI، سيتم إجراء طلب إلى Gemini API عبر عنوان IP الخاص بواجهة برمجة التطبيقات المتاح للجميع.

ماذا يحدث إذا أردت استخدام Gemini CLI على جهاز Google Compute Engine ولكنك تريد الاتصال بواجهة برمجة التطبيقات بشكل خاص؟ في هذا الدرس التطبيقي، ستتعرّف على كيفية ضبط نقطة نهاية Private Service Connect في Google APIs لتوجيه الزيارات إلى عنوان IP داخلي تحدّده.

ستكون عمليات الإعداد مزيجًا من Terraform وgcloud ووحدة التحكّم.

في هذه الميزة الاختبارية، ستتعرّف على كيفية تنفيذ المهمة التالية:

  • إعداد مثيل الجهاز الافتراضي وCloud NAT
  • تثبيت Gemini CLI والمصادقة
  • ضبط نقطة نهاية Private Service Connect للاتصال بـ Googleapis
  • التحقّق من مسار الاتصال بـ ‎ *.googleais
  • ضبط إدخالات نظام أسماء النطاقات اليدوية

في هذا الدرس التطبيقي، ستنشئ النمط التالي.

الشكل 1.

809ec92718405b07.png

2. إعداد خدمات Google Cloud

إعداد البيئة بالسرعة التي تناسبك

  1. سجِّل الدخول إلى Google Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة أحرف لا تستخدمها Google APIs. ويمكنك تعديلها في أي وقت.
  • معرّف المشروع هو معرّف فريد في جميع مشاريع Google Cloud ولا يمكن تغييره (لا يمكن تغييره بعد ضبطه). تنشئ Cloud Console تلقائيًا سلسلة فريدة، ولا يهمّك عادةً ما هي. في معظم دروس البرمجة، عليك الرجوع إلى رقم تعريف مشروعك (يُشار إليه عادةً باسم PROJECT_ID). إذا لم يعجبك رقم التعريف الذي تم إنشاؤه، يمكنك إنشاء رقم تعريف عشوائي آخر. يمكنك بدلاً من ذلك تجربة اسم مستخدم من اختيارك ومعرفة ما إذا كان متاحًا. لا يمكن تغييرها بعد هذه الخطوة وتبقى سارية طوال مدة المشروع.
  • للعلم، هناك قيمة ثالثة، وهي رقم المشروع، تستخدمها بعض واجهات برمجة التطبيقات. يمكنك الاطّلاع على مزيد من المعلومات حول هذه القيم الثلاث في المستندات.
  1. بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد/واجهات برمجة تطبيقات Cloud. لن تكلفك تجربة هذا الدرس البرمجي الكثير، إن وُجدت أي تكلفة على الإطلاق. لإيقاف الموارد وتجنُّب تحمّل تكاليف تتجاوز هذا البرنامج التعليمي، يمكنك حذف الموارد التي أنشأتها أو حذف المشروع. يمكن لمستخدمي Google Cloud الجدد الاستفادة من برنامج الفترة التجريبية المجانية بقيمة 300 دولار أمريكي.

بدء Cloud Shell

على الرغم من إمكانية تشغيل Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس العملي Google Cloud Shell، وهي بيئة سطر أوامر تعمل في السحابة الإلكترونية.

من Google Cloud Console، انقر على رمز Cloud Shell في شريط الأدوات أعلى يسار الصفحة:

55efc1aaa7a4d3ad.png

لن يستغرق توفير البيئة والاتصال بها سوى بضع لحظات. عند الانتهاء، من المفترض أن يظهر لك ما يلي:

7ffe5cbb04455448.png

يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. توفّر هذه الخدمة دليلًا منزليًا ثابتًا بسعة 5 غيغابايت، وتعمل على Google Cloud، ما يحسّن بشكل كبير أداء الشبكة والمصادقة. يمكن إكمال جميع المهام في هذا الدرس العملي ضمن المتصفّح. ليس عليك تثبيت أي تطبيق.

3- المهمة رقم 1 إعداد البيئة باستخدام Terraform

سننشئ سحابة VPC مخصّصة تتضمّن قواعد جدار الحماية والشبكة الفرعية. افتح Cloud Console واختَر المشروع الذي ستستخدمه.

  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. بعد التحميل، انتقِل إلى ملف > فتح مجلد وانتقِل إلى /home/your-user-name/terraform-build وانقر على حسنًا لفتح المجلد في المحرّر. 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 البرمجية لتنفيذ إجراءات مختلفة كما هو موضّح أدناه.

تفعيل واجهات برمجة التطبيقات

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. انسخ ما يلي والصقه في ملف main .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 لتشغيله.

4. المهمة رقم 2 إنشاء بوابة 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 سيظهر لك أنّه ستتم إضافة 4 عناصر، ثم شغِّل terraform apply واكتب yes لإنشاء بوابة NAT وجهازَين افتراضيَين.

5- المهمة رقم 3 ضبط الآلات الافتراضية لواجهة سطر الأوامر واختبارها

  1. انتقِل إلى مثيلات الأجهزة الافتراضية. اختَر الجهاز الافتراضي الذي يبدأ بـ cli-vm. اختَر SSH.
  2. بعد إنشاء اتصال SSH، من المفترض أن يكون لديك إذن الوصول إلى الجهاز الظاهري. لننشئ مجلدًا لاستخدامه عند تشغيل واجهة سطر الأوامر Gemini.
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

تثبيت Node js

sudo apt-get install -y nodejs
  1. لنضبط بعض المتغيّرات التي ستساعد في استخدام خيار مصادقة Vertex AI للمصادقة على هذا الخيار لإجراء بعض الاختبارات لاحقًا. ملاحظة: استبدِل 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

إعادة تحميل bash

source ~/.bashrc
  1. لنُجري الآن عملية المصادقة. نفِّذ الأمر التالي في الجهاز الظاهري، واضغط على y عند المطالبة بذلك.
gcloud auth application-default login
  1. بعد ذلك، انسخ عنوان URL الذي يظهر في البداية مع https://‎، وافتح علامة تبويب جديدة في نافذة متصفّح المختبر والصق عنوان URL. قبول الطلبات
  2. عند ظهور ما يلي، اختَر "نسخ" (copy)، ثم ارجع إلى جلسة cli-vm، وفي حقل إدخال رمز التفويض: (Enter authorization code:)، الصِق الرمز الذي نسخته واضغط على مفتاح Enter للمصادقة.

c29615cdf9324209.png

  1. لنثبّت الآن Gemini CLI وننفّذ الأمر
sudo npm install -g @google/gemini-cli

بعد الانتهاء، اكتب gemini لتشغيل الواجهة، واختَر المظهر الذي تفضّله، ثم اختَر Vertex AI ضمن اختيار طريقة المصادقة.

7fb8ea7fbf48cad9.png

a9f9a93ae8694e2f.png

  1. بعد إثبات الهوية، يمكنك البدء في استخدام Gemini Cli

b13a934b6220c9af.png

تتبُّع مسار الزيارات إلى Gemini من خلال الجهاز الظاهري للمراقبة

  1. انتقِل إلى مثيلات الأجهزة الافتراضية. اختَر الجهاز الظاهري الذي يبدأ بـ monitor-vm. اختَر SSH.
  2. بعد استخدام بروتوكول SSH في monitor-vm، من المفترض أن يكون لديك إذن الوصول
  3. لنستخدِم الأمر dig لاختبار مسار الاتصال بواجهة Gemini API. سنستخدم us-east1-aiplatform.googleapis.com
dig us-east1-aiplatform.googleapis.com

من المفترض أن يظهر لك شيء مشابه (سيختلف العنوان). يُرجى العِلم أنّ المسار يتم عبر عناوين IP العامة لأنّ واجهة برمجة التطبيقات هي واجهة عامة.

عدم النسخ

; <<>> 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 اختبارًا سريعًا لمعرفة ما إذا كان بإمكاننا الاتصال بـ Gemini API. سيستخدم هذا الأمر 4 عمليات ping على us-east1-aiplatform.googleapis.com، وبالتالي سنحصل على ردّ من العنوان العام لواجهة برمجة التطبيقات.
ping -c 4 us-east1-aiplatform.googleapis.com
  1. سنعود لاختبار هذه الآلة الافتراضية لاحقًا. أغلِق جلسة SSH ولنتابع.

6. المهمة رقم 4 إنشاء نقطة نهاية 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 لواجهات Google APIs (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 واكتب yes لإنشاء نقطة نهاية لواجهات برمجة التطبيقات IP وPSC من Google.
  2. التحقّق من توفّر نقطة النهاية
gcloud compute addresses list --filter="name=( 'gemini-ip' ...)"
gcloud compute forwarding-rules describe pscgemini --global

7. المهمة رقم 5 إنشاء إدخال يدوي لنظام أسماء النطاقات إلى googleapis باستخدام Terraform

يمكنك إنشاء إدخال يدوي لنظام أسماء النطاقات (DNS) للإشارة إلى نقطة نهاية Private Service Connect (PSC) باستخدام نظام أسماء النطاقات الخاص. سيؤثّر ذلك في جميع الشبكات التي تحدّدها له.

  1. انتقِل إلى "خدمات الشبكة" واختَر Cloud DNS.
  2. في المناطق، من المفترض أن تظهر منطقة تم إنشاؤها تلقائيًا لخدمة Private Service Connect لواجهات Google APIs، مع دليل خدمة لنوع المنطقة. يمكن استخدام هذا العنوان للاتصال بنقطة نهاية PSC بالتنسيق **SERVICE-ENDPOINT.p.googleapis.com مثال: aiplatform-pscgemini.p.googleapis.com
  3. في هذه الحالة، نريد إنشاء إدخال لنظام أسماء النطاقات الخاص يدويًا. ستكون الإعدادات على النحو التالي
  • أنشئ منطقة نظام أسماء نطاقات خاصًا باسم "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 واكتب yes لإنشاء إدخال نظام أسماء النطاقات الخاص.
  2. من المفترض أن يظهر الإعداد مع سجلّ A وCNAME على النحو التالي:

a33a4d3d629c54dd.png

  1. بعد ذلك، نتحقّق من إمكانية الاتصال بهذه التغييرات على monitor-vm.

8. المهمة 7. التحقّق من إمكانية الاتصال بنقطة النهاية من خلال عنوان IP

لنبدأ عملية الربط باستخدام نقطة النهاية الخاصة للاتصال بـ Gemini.

  1. انتقِل إلى مثيل الجهاز الافتراضي monitor-vm. اختَر SSH وادخل إلى الجهاز الافتراضي باستخدام SSH
  2. تحقَّق من مسار الاتصال بـ us-east1-aiplatform.googleapis.com باستخدام الأمر ping. سيؤدي ذلك إلى إرسال طلب اختبار الاتصال إلى عنوان IP في نظام أسماء النطاقات الخاص، وهو سجلّ A لـ googleapis. عنوان IP هذا هو نقطة نهاية PSC، ولن تنجح عمليات اختبار الاتصال.
ping -c 2 us-east1-aiplatform.googleapis.com
  1. تحقَّق من مسار الاتصال باستخدام ping من خلال إدخال نظام أسماء النطاقات الذي تم إنشاؤه تلقائيًا لواجهات برمجة التطبيقات من Google في Private Service Connect باستخدام aiplatform-pscvertexgemini.p.googleapis.com. يشير ذلك إلى عنوان IP الخاص بنقطة نهاية PSC، ولن تنجح إشعاراتك.
ping -c 2 aiplatform-pscgemini.p.googleapis.com
  1. تحقَّق من مسار الاتصال بـ us-east1-aiplatform.googleapis.com باستخدام الأمر dig. يجب أن يكون هذا هو عنوان IP لنقطة نهاية PSC (10.10.100.250).
dig us-east1-aiplatform.googleapis.com

bcb26844349ee775.png

  1. بعد اكتمال العملية، يمكنك إغلاق جلسة SSH الخاصة بـ monitor-vm.
  2. يمكننا الآن تشغيل عملية تفريغ TCP على cli-vm. سنحتاج إلى فتح جلستَي SSH على الجهاز الظاهري نفسه. ستنفّذ إحدى الجلسات الأمر tcpdump، بينما سنستخدم واجهة سطر الأوامر في Gemini في الجلسة الأخرى.
  3. تسجيل الدخول إلى الجلسة الأولى على cli-vm باستخدام بروتوكول SSH
  4. اكتب الأمر التالي للاطّلاع على إمكانية الاتصال في tcpdump
sudo tcpdump -i any port 53 -n or host us-east1-aiplatform.googleapis.com
  1. الآن، سجِّل الدخول إلى الجلسة التالية على cli-vm باستخدام بروتوكول SSH.
  2. فعِّل Gemini CLI من خلال كتابة gemini
  3. اطرح السؤال التالي: ما هو لون السماء؟ لإنشاء طلب إلى Gemini API

d6189c2adef69eaf.png

  1. اضغط على Enter لتنفيذ الأمر والاطّلاع على النتيجة.
  2. انتقِل مرة أخرى إلى الجلسة الأولى على cli-vm. من المفترض أن تظهر لك نتيجة tcpdump. ستلاحظ أنّ عنوان IP الخاص بالجهاز الظاهري يستخدم عنوان IP الخاص بنقطة نهاية PSC للاتصال بـ Gemini API.

ce99170d9f9c7858.png

إغلاق جميع جلسات SSH لمثيلات الأجهزة الافتراضية

9- تنظيف

  1. انتقِل إلى Cloud Shell وتأكَّد من أنّك في الدليل terraform-build cd terraform-build، ثم نفِّذ الأمر التالي terraform destroy واكتب yes، وستتم إزالة جميع الموارد التي أنشأتها في مشروعك باستخدام Terraform.

10. تهانينا

تهانينا، لقد تمكّنت من الاتصال بواجهة سطر الأوامر Gemini CLI باستخدام عنوان واجهة برمجة التطبيقات العامة وبشكل خاص باستخدام نقطة نهاية Private Service Connect لواجهات Google APIs. يمكن أن توسّع هذه الوظيفة إمكانية الاتصال الخاص بواجهة برمجة التطبيقات إلى بيئة السحابة الإلكترونية المحلية أو غيرها من بيئات السحابة الإلكترونية المتصلة من خلال (Interconnect وCross-Cloud Interconnect وVPC).

الخطوات التالية / مزيد من المعلومات

يمكنك الاطّلاع على مزيد من المعلومات حول شبكات Vertex AI ومراجعة مستودع Gemini CLI.

الدرس التطبيقي التالي

يمكنك مواصلة رحلتك مع Google Cloud، والاطّلاع على هذه المختبرات الأخرى في Google Cloud: