1. مقدمة
استفِد من Private Service Connect لإنشاء وصول آمن وخاص إلى النماذج التي تم نشرها من Vertex AI Model Garden. بدلاً من عرض نقطة نهاية عامة، تتيح لك هذه الطريقة نشر نموذجك إلى نقطة نهاية خاصة في Vertex AI لا يمكن الوصول إليها إلا من خلال السحابة الافتراضية الخاصة (VPC).
تنشئ خدمة Private Service Connect نقطة نهاية باستخدام عنوان IP داخلي في شبكتك VPC، وتربطها مباشرةً بخدمة Vertex AI التي تديرها Google وتستضيف نموذجك. يتيح ذلك للتطبيقات في بيئات السحابة الإلكترونية الخاصة الافتراضية (VPC) والبيئات المحلية (عبر Cloud VPN أو Interconnect) إرسال طلبات الاستنتاج باستخدام عناوين IP خاصة. تبقى جميع زيارات الشبكة على شبكة Google، ما يعزّز الأمان ويقلّل من وقت الاستجابة ويعزل نقطة نهاية عرض النموذج تمامًا عن الإنترنت العام.

ما ستنشئه
في هذا البرنامج التعليمي، ستنزّل Gemma 3 من Model Garden، المستضاف في Vertex AI Online Inference كنقطة نهاية خاصة يمكن الوصول إليها من خلال Private Service Connect. ستتضمّن عملية الإعداد الكاملة ما يلي:
- نموذج Model Garden: يمكنك اختيار Gemma 3 من Vertex AI Model Garden وتفعيله في نقطة نهاية Private Service Connect.
- Private Service Connect: عليك ضبط نقطة نهاية المستهلك في شبكتك الخاصة الافتراضية (VPC) التي تتضمّن عنوان IP داخليًا ضمن شبكتك.
- الاتصال الآمن بخدمة Vertex AI: ستستهدف نقطة نهاية PSC "ملف ربط الخدمة" الذي يتم إنشاؤه تلقائيًا بواسطة Vertex AI لتفعيل النموذج الخاص. يؤدي ذلك إلى إنشاء اتصال خاص، ما يضمن عدم انتقال حركة البيانات بين شبكة VPC ونقطة نهاية عرض النموذج عبر الإنترنت المتاح للجميع.
- إعدادات العميل داخل شبكة VPC: عليك إعداد عميل (مثل (جهاز Compute Engine الظاهري) ضِمن شبكة VPC لإرسال طلبات الاستنتاج إلى النموذج الذي تم نشره باستخدام عنوان IP الداخلي لنقطة نهاية PSC.
في النهاية، سيتوفّر لديك مثال عملي لنموذج Model Garden يتم عرضه بشكل خاص، ولا يمكن الوصول إليه إلا من داخل شبكة VPC المحدّدة.
أهداف الدورة التعليمية
في هذا البرنامج التعليمي، ستتعرّف على كيفية نشر نموذج من Vertex AI Model Garden وإتاحة الوصول إليه بشكل آمن من شبكة السحابة الإلكترونية الخاصة الافتراضية (VPC) باستخدام Private Service Connect (PSC). تتيح هذه الطريقة لتطبيقاتك ضِمن شبكة VPC (المستهلك) الاتصال بشكل خاص بنقطة نهاية نموذج Vertex AI (الخدمة المنتِجة) بدون المرور عبر الإنترنت المتاح للجميع.
على وجه التحديد، ستتعرّف على ما يلي:
- التعرّف على خدمة Private Service Connect في Vertex AI: كيف تتيح خدمة Private Service Connect اتصالات خاصة وآمنة بين المستهلكين والمنتجين؟ يمكن لشبكة VPC الوصول إلى نموذج Model Garden الذي تم نشره باستخدام عناوين IP داخلية.
- نشر نموذج باستخدام ميزة الوصول الخاص: كيفية إعداد نقطة نهاية Vertex AI لنموذج Model Garden لاستخدام PSC، ما يجعلها نقطة نهاية خاصة
- دور مرفق الخدمة: عند نشر نموذج في نقطة نهاية خاصة في Vertex AI، تنشئ Google Cloud تلقائيًا مرفق خدمة في مشروع مستأجر تديره Google. تعرض "ملحقة الخدمة" هذه خدمة عرض النماذج على شبكات المستهلكين.
- إنشاء نقطة نهاية Private Service Connect في شبكة VPC:
- كيفية الحصول على معرّف الموارد المنتظم الفريد لمرفق الخدمة من تفاصيل نقطة نهاية Vertex AI التي تم نشرها
- كيفية حجز عنوان IP داخلي ضمن الشبكة الفرعية التي اخترتها في شبكة VPC
- كيفية إنشاء قاعدة إعادة توجيه في شبكة VPC تعمل كنقطة نهاية PSC، وتستهدف مرفق خدمة Vertex AI تتيح نقطة النهاية هذه الوصول إلى النموذج من خلال عنوان IP الداخلي المحجوز.
- إنشاء اتصال خاص: توضّح هذه الخطوة كيف تتصل نقطة نهاية Private Service Connect (PSC) في شبكة السحابة الإلكترونية الخاصة الافتراضية (VPC) بملف ربط الخدمة، ما يربط شبكتك بخدمة Vertex AI بشكل آمن.
- إرسال طلبات الاستنتاج بشكل خاص: كيفية إرسال طلبات التوقّع من الموارد (مثل الأجهزة الافتراضية في Compute Engine) ضِمن شبكة VPC إلى عنوان IP الداخلي لنقطة نهاية PSC
- التحقّق من الصحة: خطوات لاختبار وتأكيد إمكانية إرسال طلبات الاستنتاج بنجاح من شبكة VPC إلى نموذج Model Garden الذي تم نشره من خلال الاتصال الخاص
بعد إكمال هذه الخطوة، ستتمكّن من استضافة نماذج من "مكتبة النماذج" لا يمكن الوصول إليها إلا من خلال البنية الأساسية لشبكتك الخاصة.
المتطلبات
مشروع Google Cloud
أذونات "إدارة الهوية وإمكانية الوصول"
- مشرف AI Platform (roles/ml.Admin)
- مشرف شبكة Cloud Compute (roles/compute.networkAdmin)
- مشرف مثيل Cloud Compute (roles/compute.instanceAdmin)
- مشرف أمان Compute (roles/compute.securityAdmin)
- مشرف نظام أسماء النطاقات (roles/dns.admin)
- مستخدم الاتصال النفقي المحمي بواسطة IAP (roles/iap.tunnelResourceAccessor)
- مشرف تسجيل الدخول (roles/logging.admin)
- مشرف أجهزة الكمبيوتر الدفتري (roles/notebooks.admin)
- مشرف إدارة الهوية وإمكانية الوصول في المشروع (roles/resourcemanager.projectIamAdmin)
- مشرف حساب الخدمة (roles/iam.serviceAccountAdmin)
- مشرف استخدام الخدمة (roles/serviceusage.serviceUsageAdmin)
2. قبل البدء
تعديل المشروع ليتوافق مع البرنامج التعليمي
يستفيد هذا البرنامج التعليمي من $variables للمساعدة في تنفيذ عملية إعداد gcloud في Cloud Shell.
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
projectid=[YOUR-PROJECT-ID]
echo $projectid
تفعيل واجهات برمجة التطبيقات
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud services enable "compute.googleapis.com"
gcloud services enable "aiplatform.googleapis.com"
gcloud services enable "serviceusage.googleapis.com"
3- نشر النموذج
اتّبِع الخطوات التالية لنشر النموذج من Model Garden.
في Google Cloud Console، انتقِل إلى Model Garden وابحث عن Gemma 3 واختَرها.

انقر على "خيارات النشر" واختَر Vertex AI.

في لوحة "النشر على Vertex AI"، انقر على "الإعدادات المتقدّمة". يتم اختيار المنطقة والمواصفات المعبّأة مسبقًا استنادًا إلى السعة المتاحة. يمكنك تغيير هذه القيم، على الرغم من أنّ نموذج البرمجة موجّه إلى us-central1.

في لوحة "النشر على Vertex AI"، تأكَّد من ضبط "الوصول إلى نقطة النهاية" على Private Service Connect، ثم اختَر مشروعك.

اترك جميع الإعدادات التلقائية للخيارات الأخرى، ثم انقر على "نشر" في أسفل الصفحة وتحقّق من الإشعارات لمعرفة حالة النشر.

في Model Garden، اختَر المنطقة us-central1 التي توفّر نموذج Gemma 3 ونقطة النهاية. تستغرق عملية نشر النموذج 5 دقائق تقريبًا.

في غضون 30 دقيقة، ستتغيّر حالة نقطة النهاية إلى "نشطة" بعد اكتمال العملية.

احصل على رقم تعريف نقطة النهاية ودوّنه عن طريق اختيار نقطة النهاية.

افتح Cloud Shell ونفِّذ ما يلي للحصول على معرّف الموارد المنتظم (URI) لـ Private Service Connect Service Attachment. يستخدم المستهلك سلسلة معرّف الموارد المنتظم هذا عند نشر نقطة نهاية المستهلك في PSC.
داخل Cloud Shell، عدِّل معرّف نقطة النهاية، ثم أدخِل الأمر التالي.
gcloud ai endpoints describe [Endpoint ID] --region=us-central1 | grep -i serviceAttachment:
في ما يلي مثال:
user@cloudshell:$ gcloud ai endpoints describe 2124795225560842240 --region=us-central1 | grep -i serviceAttachment:
Using endpoint [https://us-central1-aiplatform.googleapis.com/]
serviceAttachment: projects/o9457b320a852208e-tp/regions/us-central1/serviceAttachments/gkedpm-52065579567eaf39bfe24f25f7981d
انسخ المحتوى بعد serviceAttachment إلى متغيّر باسم "Service_attachment"، وستحتاج إليه لاحقًا عند إنشاء اتصال PSC.
user@cloudshell:$ Service_attachment=projects/o9457b320a852208e-tp/regions/us-central1/serviceAttachments/gkedpm-52065579567eaf39bfe24f25f7981d
4. إعداد المستهلك
إنشاء شبكة VPC الخاصة بالمستهلك
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom
إنشاء الشبكة الفرعية للجهاز الظاهري للمستهلك
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud compute networks subnets create consumer-vm-subnet --project=$projectid --range=192.168.1.0/24 --network=consumer-vpc --region=us-central1 --enable-private-ip-google-access
إنشاء الشبكة الفرعية لنقطة نهاية PSC
gcloud compute networks subnets create pscendpoint-subnet --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=us-central1
5- تفعيل عمليات الشراء داخل التطبيق
للسماح لميزة "الوصول إلى الأجهزة الافتراضية عبر الإنترنت" بالاتصال بأجهزة VM الافتراضية، أنشئ قاعدة جدار حماية تتضمّن ما يلي:
- ينطبق على جميع مثيلات الأجهزة الافتراضية التي تريد إتاحتها باستخدام IAP.
- يسمح بحركة البيانات الواردة من نطاق عناوين IP 35.235.240.0/20. يحتوي هذا النطاق على جميع عناوين IP التي تستخدمها خدمة IAP لإعادة توجيه بروتوكول TCP.
داخل Cloud Shell، أنشئ قاعدة جدار حماية IAP.
gcloud compute firewall-rules create ssh-iap-consumer \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
6. إنشاء مثيلات أجهزة افتراضية للمستهلكين
داخل Cloud Shell، أنشئ مثيل الجهاز الافتراضي للمستهلك، consumer-vm.
gcloud compute instances create consumer-vm \
--project=$projectid \
--machine-type=e2-micro \
--image-family debian-11 \
--no-address \
--shielded-secure-boot \
--image-project debian-cloud \
--zone us-central1-a \
--subnet=consumer-vm-subnet
7. نقاط نهاية Private Service Connect
ينشئ المستهلك نقطة نهاية للمستهلك (قاعدة إعادة التوجيه) باستخدام عنوان IP داخلي ضمن شبكة VPC. تستهدف نقطة نهاية PSC هذه مرفق الخدمة الخاص بالمنتج. يمكن للعملاء ضِمن شبكة VPC للمستهلك أو الشبكة المختلطة إرسال الزيارات إلى عنوان IP الداخلي هذا للوصول إلى خدمة مقدّم الخدمة.
احجز عنوان IP لنقطة نهاية المستهلك.
في Cloud Shell، أنشئ قاعدة إعادة التوجيه.
gcloud compute addresses create psc-address \
--project=$projectid \
--region=us-central1 \
--subnet=pscendpoint-subnet \
--addresses=10.10.10.6
التأكّد من أنّ عنوان IP محجوز
داخل Cloud Shell، أدرِج عنوان IP المحجوز.
gcloud compute addresses list
من المفترض أن يظهر لك عنوان IP 10.10.10.6 محجوزًا.

أنشئ نقطة نهاية المستهلك من خلال تحديد معرّف الموارد المنتظم لمرفق الخدمة، target-service-attachment، الذي حصلت عليه في الخطوة السابقة، قسم "نشر النموذج".
داخل Cloud Shell، صف مرفق الشبكة.
gcloud compute forwarding-rules create psc-consumer-ep \
--network=consumer-vpc \
--address=psc-address \
--region=us-central1 \
--target-service-attachment=$Service_attachment \
--project=$projectid
تأكَّد من أنّ مرفق الخدمة يقبل نقطة النهاية
gcloud compute forwarding-rules describe psc-consumer-ep \
--project=$projectid \
--region=us-central1 \
في الردّ، تأكَّد من ظهور الحالة "ACCEPTED" في الحقل pscConnectionStatus.

8. الاختبار من الجهاز الافتراضي للمستهلك
في Cloud Shell، اتّبِع الخطوات التالية لمنح الجهاز الظاهري للمستهلك إذن الوصول إلى Vertex Model Garden API:
استخدام بروتوكول النقل الآمن (SSH) في الجهاز الافتراضي للمستهلك

أعِد المصادقة باستخدام "بيانات الاعتماد التلقائية للتطبيق" وحدِّد نطاقات Vertex AI.
gcloud auth application-default login
--scopes=https://www.googleapis.com/auth/cloud-platform
استخدِم الجدول أدناه لإنشاء أمر CURL، وعدِّله حسب بيئتك.
السمة | القيمة |
البروتوكول | HTTP |
الموقع الجغرافي | us-central1 |
نقطة نهاية التوقّع على الإنترنت | 2133539641536544768 |
رقم تعريف المشروع | test4-473419 |
الطراز | gemma-3-12b-it |
عنوان IP لنقطة نهاية Private Service Connect | 10.10.10.6 |
الرسائل | [{"role": "user","content": "ما هو الأثقل، رطل من الريش أم رطل من الصخور؟"}] |
عدِّل أمر curl ونفِّذه استنادًا إلى تفاصيل بيئاتك:
curl -k -v -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" -H "Content-Type: application/json" http://[PSC-IP]/v1/projects/[Project-ID]/locations/us-central1/endpoints/[Predictions Endpoint]/chat/completions -d '{"model": "google/gemma-3-12b-it", "messages": [{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}] }'
مثال:
curl -k -v -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" -H "Content-Type: application/json" http://10.10.10.6/v1/projects/test4-473419/locations/us-central1/endpoints/2133539641536544768/chat/completions -d '{"model": "google/gemma-3-12b-it", "messages": [{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}] }'
النتيجة النهائية - نجاح!!!
يجب أن تظهر لك نتيجة التوقّع من Gemma 3 في أسفل الناتج، ما يشير إلى أنّه تمكّنت من الوصول إلى نقطة نهاية واجهة برمجة التطبيقات بشكل خاص من خلال نقطة نهاية PSC.
Connection #0 to host 10.10.10.6 left intact
{"id":"chatcmpl-9e941821-65b3-44e4-876c-37d81baf62e0","object":"chat.completion","created":1759009221,"model":"google/gemma-3-12b-it","choices":[{"index":0,"message":{"role":"assistant","reasoning_content":null,"content":"This is a classic trick question! They weigh the same. One pound is one pound, regardless of the material. 😊\n\n\n\n","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":106}],"usage":{"prompt_tokens":20,"total_tokens":46,"completion_tokens":26,"prompt_tokens_details":null},"prompt_logprobs":null
9- تَنظيم
من Cloud Shell، احذف مكوّنات البرنامج التعليمي.
gcloud ai endpoints undeploy-model ENDPOINT_ID --deployed-model-id=DEPLOYED_MODEL_ID --region=us-central1 --quiet
gcloud ai endpoints delete $ENDPOINT_ID --project=$projectid --region=us-central1 --quiet
gcloud ai models delete $MODEL_ID --project=$projectid --region=us-central1 --quiet
gcloud compute instances delete consumer-vm --zone=us-central1-a --quiet
gcloud compute forwarding-rules delete psc-consumer-ep --region=us-central1 --project=$projectid --quiet
gcloud compute addresses delete psc-address --region=us-central1 --project=$projectid --quiet
gcloud compute networks subnets delete pscendpoint-subnet consumer-vm-subnet --region=us-central1 --quiet
gcloud compute firewall-rules delete ssh-iap-consumer --project=$projectid
gcloud compute networks delete consumer-vpc --project=$projectid --quiet
gcloud projects delete $projectid --quiet
10. تهانينا
تهانينا، لقد نجحت في إعداد والتحقّق من إمكانية الوصول الخاص إلى واجهة برمجة التطبيقات Gemma 3 المستضافة على Vertex AI Prediction باستخدام نقطة نهاية Private Service Connect.
لقد أنشأت البنية الأساسية للمستهلك، بما في ذلك حجز عنوان IP داخلي وإعداد نقطة نهاية Private Service Connect (قاعدة إعادة توجيه) ضِمن شبكتك VPC. تتصل نقطة النهاية هذه بشكل آمن بخدمة Vertex AI من خلال استهداف مرفق الخدمة المرتبط بنموذج Gemma 3 الذي تم نشره. يسمح هذا الإعداد لتطبيقاتك داخل السحابة الخاصة الافتراضية أو الشبكات المرتبطة بالتفاعل مع Gemma 3 API بشكل خاص وآمن، وذلك باستخدام عنوان IP داخلي، بدون الحاجة إلى أن تمر الزيارات عبر الإنترنت العام.