1. مقدمة
Private Service Connect هي إحدى إمكانات شبكات Google Cloud التي تتيح للمستهلكين الوصول إلى الخدمات المُدارة بشكل خاص من داخل شبكة السحابة الإلكترونية الافتراضية الخاصة (VPC). وبالمثل، يتيح لمقدّمي الخدمات المُدارة استضافة هذه الخدمات في شبكات VPC منفصلة وتقديم اتصال خاص للمستهلكين.
حتى الآن، بعد إتاحة خدمات PSC من خلال ربط الخدمة، لم يكن من الممكن إجراء تغييرات على موازنات تحميل الخدمة بدون إزالة ربط الخدمة وتعطيل اتصال نقطة نهاية PSC الخاصة بالمستهلك. من خلال إتاحة قابلية تغيّر PSC، يمكن للمنتجين تعديل جهاز موازنة الحمل مع الحفاظ على اتصال نقطة نهاية PSC. يوفّر الحفاظ على اتصال نقطة نهاية PSC بملحق الخدمة أثناء تغيير موازن التحميل ميزة عدم الحاجة إلى اتّخاذ أي إجراء من جهة المستهلك.
في الوقت الحالي، ستتيح إمكانية تغيير PSC ما يلي:
- نقل البيانات إلى قاعدة إعادة توجيه لجهاز موازنة الحمل من النوع نفسه (مثلاً Network Passthrough to Network Passthrough)
- نقل البيانات إلى قاعدة إعادة توجيه لجهاز موازنة الحمل من نوع مختلف (مثلاً نقطة مرور الشبكة إلى "موازن التطبيقات")
لا تتيح إمكانية التغيير في PSC تعديل قاعدة إعادة التوجيه الحالية.
في هذا الدرس العملي، ستنشئ خدمة ويب منتِجة يتم عرضها من خلال جهاز موازنة حمل داخلي من نوع "نقل البيانات عبر الشبكة"، وتتأكّد من أنّ الخدمة يمكنها الاتصال من خلال نقطة نهاية PSC، ثم تعدّل ربط مرفق الخدمة بقاعدة توجيه جديدة إلى جهاز موازنة حمل داخلي من نوع "موازنة حمل التطبيقات".
أهداف الدورة التعليمية
- أنشِئ خدمة ويب بسيطة من Apache يتم عرضها كخدمة منتِجة في PSC.
- أنشئ نقطة نهاية PSC.
- أنشئ منطقة خاصة في Cloud DNS لمكالمات خدمة المستهلك.
- عدِّل قاعدة إعادة التوجيه المرتبطة بمرفق الخدمة باستخدام ميزة "قابلية التغيير في Private Service Connect".
المتطلبات
- مشروع على السحابة الإلكترونية على Google Cloud يتضمّن أذونات المالك
- معرفة أساسية بشبكات Google Cloud
2. بيئة الاختبار
في العادة، يعمل المنتجون والمستهلكون في مشاريع مختلفة. لتبسيط الأمور، سننفّذ جميع الإجراءات في المشروع نفسه، ولكن سيتم تصنيف كل خطوة على أنّها مشروع "منتج" أو "مستهلك" في حال فضّل المستخدم العمل في مشاريع مختلفة.
في هذا المختبر، سنبدأ بإنشاء شبكة VPC خاصة بمقدّم الخدمة تتضمّن ثلاث شبكات فرعية، إحداها لاستضافة خدمة مقدّم الخدمة والجهاز الافتراضي التجريبي، والأخرى لقواعد إعادة التوجيه الخاصة بموازنة التحميل، وشبكة فرعية لترجمة عنوان الشبكة (NAT) في PSC. سنحتاج إلى Cloud Router وCloud NAT لضمان إمكانية الوصول إلى الإنترنت من أجل تنزيل حِزم Linux. سنعرض خدمة Apache، التي تم إعدادها من خلال مجموعة مثيلات غير مُدارة، من خلال برنامج موازنة حمل إقليمي داخلي من نوع "نقل حركة مرور الشبكة"، وسنربط قاعدة إعادة التوجيه بمرفق خدمة.
من جهة المستهلك، سننشئ شبكة VPC للمستهلك مع شبكة فرعية واحدة لاستضافة نقطة نهاية PSC وجهاز افتراضي لعميل تجريبي. سنضبط منطقة خاصة في Cloud DNS للوصول إلى الخدمة من خلال اسم مضيف.
لعرض ميزة "قابلية التغيير في PSC"، سنضيف على جهة المنتج شبكتَين فرعيتَين إضافيتَين، إحداهما لاستضافة الجهاز الافتراضي للخدمة الجديدة، والأخرى للشبكة الفرعية الخاصة بموازنة الحمل التي تعمل كوكيل فقط. سننشئ جهازًا افتراضيًا جديدًا يستضيف خادم ويب Apache، وسيتم إعداده مرة أخرى من خلال مجموعة مثيلات غير مُدارة، وسنعرّضه من خلال موازن تحميل تطبيقات إقليمية داخلية جديدة. سنعدّل مرفق الخدمة للإشارة إلى قاعدة إعادة التوجيه الجديدة، وسنتأكّد من أنّ الاتصال من جهة المستهلك لا يزال متاحًا.

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



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

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

يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. توفّر هذه الخدمة دليلًا منزليًا ثابتًا بسعة 5 غيغابايت، وتعمل على Google Cloud، ما يؤدي إلى تحسين أداء الشبكة والمصادقة بشكل كبير. يمكن إكمال جميع المهام في هذا الدرس العملي ضمن المتصفّح. لست بحاجة إلى تثبيت أي تطبيق.
4. قبل البدء
تفعيل واجهات برمجة التطبيقات
داخل Cloud Shell، تأكَّد من إعداد رقم تعريف مشروعك
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] export project=[YOUR-PROJECT-NAME] export region=us-central1 export zone=$region-a echo $project echo $region echo $zone
تفعيل جميع الخدمات اللازمة
gcloud services enable compute.googleapis.com gcloud services enable dns.googleapis.com
5- إنشاء شبكة منتجين [مشروع منتجين]
إنشاء شبكة VPC
من Cloud Shell
gcloud compute networks create producer-vpc \
--subnet-mode=custom
إنشاء شبكات فرعية
سنبدأ بنشر 3 شبكات فرعية في شبكة VPC الخاصة بالمنتج. سيتم تخصيص أحدها لنشر خدمة المنتج، وآخر لقواعد إعادة التوجيه في موازنة الحمل، وثالث سيتم ربطه بمرفق خدمة PSC لشبكة NAT الفرعية في PSC.
من Cloud Shell
gcloud compute networks subnets create producer-service-subnet \
--network=producer-vpc \
--range=10.0.0.0/28 \
--region=$region
gcloud compute networks subnets create producer-fr-subnet \
--network=producer-vpc \
--range=192.168.0.0/28 \
--region=$region
gcloud compute networks subnets create psc-nat-subnet \
--network=producer-vpc \
--range=10.100.0.0/28 \
--region=$region \
--purpose=PRIVATE_SERVICE_CONNECT
إنشاء Cloud NAT
يجب توفّر Cloud NAT لتثبيت الحِزم المناسبة لخدمات المنتج.
من Cloud Shell
gcloud compute routers create $region-cr \
--network=producer-vpc \
--region=$region
من Cloud Shell
gcloud compute routers nats create $region-nat \
--router=$region-cr \
--region=$region \
--nat-all-subnet-ip-ranges \
--auto-allocate-nat-external-ips
إنشاء سياسات وقواعد "جدار حماية الشبكة"
من Cloud Shell
gcloud compute network-firewall-policies create producer-vpc-policy --global
gcloud compute network-firewall-policies associations create \
--firewall-policy producer-vpc-policy \
--network producer-vpc \
--name network-producer-vpc \
--global-firewall-policy
للسماح لميزة "الوصول إلى الأجهزة الافتراضية عبر الإنترنت" بالاتصال بأجهزة VM الافتراضية، أنشئ قاعدة جدار حماية تتضمّن ما يلي:
- ينطبق على جميع مثيلات الأجهزة الافتراضية التي تريد إتاحتها باستخدام IAP.
- تسمح هذه القاعدة بحركة البيانات الواردة من نطاق عناوين IP 35.235.240.0/20. يحتوي هذا النطاق على جميع عناوين IP التي تستخدمها خدمة IAP لإعادة توجيه بروتوكول TCP.
من Cloud Shell
gcloud compute network-firewall-policies rules create 1000 \
--action ALLOW \
--firewall-policy producer-vpc-policy \
--description "SSH with IAP" \
--direction INGRESS \
--src-ip-ranges 35.235.240.0/20 \
--layer4-configs tcp:22 \
--global-firewall-policy
سنبدأ بثلاث قواعد لجدار الحماية. سيسمح أحدها بالوصول إلى الأجهزة الافتراضية لإجراء عمليات التحقّق من سلامة موازن التحميل (2000)، وسيسمح الآخر بالوصول إلى الأجهزة الافتراضية من نطاق NAT الخاص بخدمة Private Service Connect (3000)، وسيسمح الثالث بالاتصال بين الأجهزة الافتراضية في الشبكة الفرعية للخدمة لأغراض الاختبار (4000). سنضع جميع القواعد للمنفذ 80 لأنّنا سنستخدم هذا المنفذ لخدمتنا.
من Cloud Shell
gcloud compute network-firewall-policies rules create 2000 \
--action ALLOW \
--firewall-policy producer-vpc-policy \
--description "LB healthchecks" \
--direction INGRESS \
--src-ip-ranges 130.211.0.0/22,35.191.0.0/16 \
--layer4-configs tcp:80 \
--global-firewall-policy
gcloud compute network-firewall-policies rules create 3000 \
--action ALLOW \
--firewall-policy producer-vpc-policy \
--description "allow access from PSC NAT subnet" \
--direction INGRESS \
--src-ip-ranges 10.100.0.0/28 \
--layer4-configs tcp:80 \
--global-firewall-policy
gcloud compute network-firewall-policies rules create 4000 \
--action ALLOW \
--firewall-policy producer-vpc-policy \
--description "allow access between producer service VMs and testing client for testing purposes" \
--direction INGRESS \
--src-ip-ranges 10.0.0.0/28 \
--layer4-configs tcp:80 \
--global-firewall-policy
6. إنشاء خدمة منتِج [مشروع منتِج]
سننشئ خدمة ويب بسيطة من Apache باستخدام مجموعة مثيلات غير مُدارة تعرض الرسالة "أنا خدمة منتِجة".
إنشاء مثيل
من Cloud Shell
gcloud compute instances create producer-service-vm \
--network producer-vpc \
--subnet producer-service-subnet \
--zone $zone \
--no-address \
--metadata startup-script='#! /bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
a2enmod ssl
sudo a2ensite default-ssl
echo "I am a Producer Service." | \
tee /var/www/html/index.html
systemctl restart apache2'
إنشاء مجموعة مثيلات غير مُدارة
من Cloud Shell
gcloud compute instance-groups unmanaged create producer-uig \ --zone=$zone
أضِف producer-service-vm إلى مجموعة المثيلات غير المُدارة التي أنشأناها للتو.
من Cloud Shell
gcloud compute instance-groups unmanaged add-instances producer-uig \ --zone=$zone \ --instances=producer-service-vm
إنشاء مكوّنات جهاز موازنة الحمل
بالنسبة إلى الإصدار 1 من خدمة المنتج، سنعرض الخدمة باستخدام موازن حمل Network Passthrough على المنفذ 80.
انشر عملية التحقّق من الصحة للمنفذ 80.
من Cloud Shell
gcloud compute health-checks create http producer-hc \
--region=$region
نشر خدمة الخلفية وإضافة الخلفية إلى خدمة الخلفية
من Cloud Shell
gcloud compute backend-services create producer-bes \ --load-balancing-scheme=internal \ --protocol=tcp \ --region=$region \ --health-checks=producer-hc \ --health-checks-region=$region gcloud compute backend-services add-backend producer-bes \ --region=$region \ --instance-group=producer-uig \ --instance-group-zone=$zone
أنشِئ عنوان IP ثابتًا سيتم استخدامه لقاعدة إعادة التوجيه في موازنة الحمل.
من Cloud Shell
gcloud compute addresses create producer-fr-ip\ --region $region \ --subnet producer-fr-subnet \ --addresses 192.168.0.2
أنشئ قاعدة إعادة توجيه لجهاز موازنة الحمل تعرض المنفذ 80، وذلك باستخدام خدمة الخلفية وعنوان IP اللذين أنشأناهما سابقًا.
من Cloud Shell
gcloud compute forwarding-rules create producer-fr \ --region=$region \ --load-balancing-scheme=internal \ --network=producer-vpc \ --subnet=producer-fr-subnet \ --address=producer-fr-ip \ --ip-protocol=TCP \ --ports=80 \ --backend-service=producer-bes \ --backend-service-region=$region
7. اختبار خدمة المنتج [مشروع المنتج]
أنشئ جهازًا افتراضيًا تجريبيًا في الشبكة الفرعية لخدمة المنتج، وسجِّل الدخول إلى الجهاز الافتراضي واختبِر طلبًا إلى خدمة Apache.
من Cloud Shell
gcloud compute instances create producer-test-vm \
--zone=$zone \
--subnet=producer-service-subnet \
--no-address
من Cloud Shell
gcloud compute ssh producer-test-vm \
--zone=$zone \
--command="curl -s 192.168.0.2/index.html"
الناتج المتوقّع
I am a Producer Service.
8. عرض خدمة المنتج من خلال مرفق الخدمة [مشروع المنتج]
أنشئ مرفق الخدمة. اربطها بقاعدة إعادة التوجيه التي أنشأناها باستخدام psc-nat-subnet.
من Cloud Shell
gcloud compute service-attachments create producer-attachment \
--region=$region \
--producer-forwarding-rule=producer-fr \
--connection-preference=ACCEPT_AUTOMATIC \
--nat-subnets=psc-nat-subnet
يجب تدوين معرّف الموارد المنتظم (URI) لملف ربط الخدمة (selfLink) لأنّك ستحتاج إليه في خطوة قادمة لإعداد نقطة نهاية PSC. يمكنك الحصول عليه من خلال تنفيذ ما يلي في Cloud Shell.
من Cloud Shell
gcloud compute service-attachments describe producer-attachment --region=$region
مثال على الناتج
connectionPreference: ACCEPT_AUTOMATIC creationTimestamp: '2026-02-10T07:50:04.250-08:00' description: '' enableProxyProtocol: false fingerprint: xxx id: 'xxx' kind: compute#serviceAttachment name: producer-attachment natSubnets: - https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/psc-nat-subnet pscServiceAttachmentId: high: 'xxx' low: 'xxx' reconcileConnections: false region: https://www.googleapis.com/compute/v1/projects/$project/regions/$region selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/serviceAttachments/producer-attachment targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-fr
انسخ معرّف الموارد المنتظم (URI) بدءًا من projects
مثال: projects/$project/regions/$region/serviceAttachments/producer-attachment
9- إنشاء شبكة مستهلكين [مشروع المستهلك]
إنشاء شبكة VPC
من Cloud Shell
gcloud compute networks create consumer-vpc \
--subnet-mode=custom
إنشاء شبكة فرعية
سيتم نشر شبكة فرعية واحدة سننشر فيها نقطة نهاية PSC وجهازًا افتراضيًا لعميل الاختبار.
من Cloud Shell
gcloud compute networks subnets create consumer-subnet \
--network=consumer-vpc \
--range=10.0.0.0/28 \
--region=$region
إنشاء سياسات وقواعد "جدار حماية الشبكة"
من Cloud Shell
gcloud compute network-firewall-policies create consumer-vpc-policy --global
gcloud compute network-firewall-policies associations create \
--firewall-policy consumer-vpc-policy \
--network consumer-vpc \
--name network-consumer-vpc \
--global-firewall-policy
سنضبط أيضًا consumer-vpc لاستخدام IAP مع بروتوكول SSH.
من Cloud Shell
gcloud compute network-firewall-policies rules create 1000 \
--action ALLOW \
--firewall-policy consumer-vpc-policy \
--description "SSH with IAP" \
--direction INGRESS \
--src-ip-ranges 35.235.240.0/20 \
--layer4-configs tcp:22 \
--global-firewall-policy
10. إنشاء نقطة نهاية Private Service Connect [مشروع المستهلك]
احجز عنوان IP ثابتًا سيتم استخدامه لنقطة نهاية PSC.
من Cloud Shell
gcloud compute addresses create psc-endpoint-ip \
--region=$region \
--subnet=consumer-subnet \
--addresses 10.0.0.2
أنشئ نقطة نهاية PSC باستخدام عنوان IP الثابت المحجوز ومعرّف الموارد المنتظم لمرفق الخدمة الذي أشرنا إليه سابقًا.
من Cloud Shell
gcloud compute forwarding-rules create psc-endpoint \ --region=$region \ --network=consumer-vpc \ --address=psc-endpoint-ip \ --target-service-attachment=projects/$project/regions/$region/serviceAttachments/producer-attachment
11. إعداد منطقة نظام أسماء نطاقات خاص لنقطة نهاية Private Service Connect [مشروع المستهلك]
باستخدام Cloud DNS، سنضبط منطقة نظام أسماء نطاقات خاصًا باسم نظام أسماء النطاقات myservice.com، ليتم استخدامه مع نقطة نهاية PSC.
من Cloud Shell
gcloud dns managed-zones create "consumer-service" \
--dns-name=myservice.com \
--description="consumer service dns" \
--visibility=private \
--networks=consumer-vpc
gcloud dns record-sets transaction start \
--zone="consumer-service"
أنشئ سجلّ A للنطاق myservice.com وأشِر إليه بعنوان IP لنقطة نهاية PSC.
من Cloud Shell
gcloud dns record-sets transaction add 10.0.0.2 \ --name=myservice.com \ --ttl=300 \ --type=A \ --zone="consumer-service" gcloud dns record-sets transaction execute \ --zone="consumer-service"
12. اختبار نقطة نهاية PSC [مشروع المستهلك]
إنشاء جهاز افتراضي للعميل
من Cloud Shell
gcloud compute instances create consumer-client-vm \
--zone=$zone \
--subnet=consumer-subnet \
--no-address
اختبار إمكانية اتصال نقطة نهاية PSC
من Cloud Shell
gcloud compute ssh consumer-client-vm \
--zone=$zone \
--command="curl -s myservice.com/index.html"
الناتج المتوقّع
I am a Producer Service.
في الجزء التالي من الدرس التطبيقي حول الترميز، سننشئ خدمة منتِج جديدة وننقل إليها البيانات، مع عرض ميزة "قابلية التغيير في PSC" التي تتيح هذا التحديث السلس بدون الحاجة إلى إجراء أي تحديثات على إعدادات الجهة المستهلكة.
13. إنشاء خدمة منتِج معدَّلة [مشروع المنتج]
لتعديل خدمة المنتج، سنفعّل جهازًا افتراضيًا جديدًا يعمل بخادم ويب Apache مشابه مع الرسالة "أنا خدمة منتج جديدة". سنضيف هذا الجهاز الظاهري إلى مجموعة أجهزة افتراضية جديدة غير مُدارة، وسنستخدم مجموعة الأجهزة الافتراضية غير المُدارة هذه كخلفية لموازنة الحمل الجديدة. بدلاً من استخدام برنامج موازنة حمل Network Passthrough، سنعدّل برنامج موازنة الحمل إلى برنامج موازنة حمل داخلي للتطبيقات على مستوى منطقة معيّنة.
تعديل الشبكة
أنشئ شبكة فرعية جديدة سيتم استخدامها للشبكة الفرعية التي تعمل كخادم وكيل فقط لموازن التحميل الخاص بالتطبيق.
من Cloud Shell
gcloud compute networks subnets create lb-proxy-subnet \
--network=producer-vpc \
--range=10.200.0.0/24 \
--region=$region \
--purpose=REGIONAL_MANAGED_PROXY \
--role=ACTIVE
أنشئ شبكة فرعية جديدة سيتم استضافة خدمتنا الجديدة فيها.
من Cloud Shell
gcloud compute networks subnets create producer-service-new-subnet \
--network=producer-vpc \
--range=10.0.1.0/28 \
--region=$region
أنشئ قاعدة جدار حماية جديدة تسمح بالاتصال بخدمة المنتج الجديدة من الشبكة الفرعية للخادم الوكيل فقط.
من Cloud Shell
gcloud compute network-firewall-policies rules create 3001 \
--action ALLOW \
--firewall-policy producer-vpc-policy \
--description "allow access from proxy only subnet" \
--direction INGRESS \
--src-ip-ranges 10.200.0.0/24 \
--layer4-configs tcp:80 \
--global-firewall-policy
إنشاء مثيل
من Cloud Shell
gcloud compute instances create new-producer-service-vm \
--network producer-vpc \
--subnet producer-service-new-subnet \
--zone $zone \
--no-address \
--metadata startup-script='#! /bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
a2enmod ssl
sudo a2ensite default-ssl
echo "I am a NEW Producer Service." | \
tee /var/www/html/index.html
systemctl restart apache2'
إنشاء مجموعة مثيلات غير مُدارة
من Cloud Shell
gcloud compute instance-groups unmanaged create producer-new-uig \
--zone=$zone
gcloud compute instance-groups unmanaged add-instances producer-new-uig \
--zone=$zone \
--instances=new-producer-service-vm
gcloud compute instance-groups unmanaged set-named-ports producer-new-uig \
--named-ports=http:80 \
--zone=$zone
إنشاء مكوّنات جديدة لموازنة الحمل
أنشِئ خدمة الخلفية. يُرجى العِلم أنّنا نستخدم نظام موازنة الحمل INTERNAL_MANAGED لأنّنا نعدّل إلى جهاز موازنة الحمل للتطبيقات الداخلية.
من Cloud Shell
gcloud compute backend-services create producer-new-bes \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=http \ --region=$region \ --health-checks=producer-hc \ --health-checks-region=$region
أضِف "مجموعة الأجهزة الافتراضية غير المُدارة" كخادم خلفي إلى خدمة الخادم الخلفي.
من Cloud Shell
gcloud compute backend-services add-backend producer-new-bes \ --region=$region \ --instance-group=producer-new-uig \ --instance-group-zone=$zone
أنشئ "خريطة عناوين URL" واستهدِف خوادم HTTP الوكيلة.
من Cloud Shell
gcloud compute url-maps create producer-url-map \ --default-service=producer-new-bes \ --region=$region gcloud compute target-http-proxies create http-proxy \ --url-map=producer-url-map \ --region=$region
أنشئ عنوان IP ثابتًا سنستخدمه لقاعدة إعادة التوجيه. سيأتي ذلك من الشبكة الفرعية نفسها التي استخدمناها لقاعدة إعادة التوجيه الأصلية.
من Cloud Shell
gcloud compute addresses create producer-fr-new-ip\ --region $region \ --subnet producer-fr-subnet \ --addresses 192.168.0.3
أنشئ قاعدة إعادة التوجيه.
من Cloud Shell
gcloud compute forwarding-rules create new-producer-fr \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=producer-vpc \ --subnet=producer-fr-subnet \ --address=producer-fr-new-ip \ --ports=80 \ --region=$region \ --target-http-proxy=http-proxy \ --target-http-proxy-region=$region
14. اختبار خدمة المنتج المعدَّلة [مشروع المنتج]
سنستخدم الجهاز الظاهري التجريبي نفسه الذي أنشأناه لاختبار الخدمة التي تم نشرها في الأصل.
من Cloud Shell
gcloud compute ssh producer-test-vm \
--zone=$zone \
--command="curl -s 192.168.0.3/index.html"
يُرجى العِلم أنّنا نطلب عنوان IP معدَّلاً. 192.168.0.3 هو عنوان IP لجهاز موازنة حمل التطبيق الإقليمي الداخلي.
الناتج المتوقّع
I am a NEW Producer Service.
15. تعديل مرفق الخدمة [مشروع المنتج]
للحصول على صورة أوضح لتعديل قاعدة إعادة التوجيه في Service Attachment، يمكننا تشغيل وصف على Service Attachment قبل التغيير وبعده.
من Cloud Shell
gcloud compute service-attachments describe producer-attachment \
--region=$region \
--format="value(targetService)"
الناتج المتوقّع
https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-fr
عدِّل مرفق الخدمة.
من Cloud Shell
gcloud compute service-attachments update producer-attachment \ --region=$region \ --target-service=projects/$project/regions/$region/forwardingRules/new-producer-fr
نفِّذ الأمر describe مرة أخرى للاطّلاع على قاعدة إعادة التوجيه الجديدة.
من Cloud Shell
gcloud compute service-attachments describe producer-attachment \
--region=$region \
--format="value(targetService)"
الناتج المتوقّع
https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/new-producer-fr
16. إعادة اختبار اتصال PSC الخاص بالمستهلك [مشروع المستهلك]
سجِّل الدخول إلى تطبيق المستهلك نفسه.
من Cloud Shell
gcloud compute ssh consumer-client-vm \
--zone=$zone \
--command="curl -s myservice.com/index.html"
الناتج المتوقّع
I am a NEW Producer Service.
تهانينا! لقد نجحت في تعديل موازن تحميل خدمة منتِجة في PSC ولم يتطلّب ذلك إجراء أي تغييرات في الإعدادات من جهة المستهلك.
17. خطوات التنظيف [مشروع المستهلك]
حذف مكوّنات المختبر من نافذة Cloud Shell واحدة
gcloud dns record-sets delete myservice.com --zone="consumer-service" --type=A -q gcloud dns managed-zones delete "consumer-service" -q gcloud compute forwarding-rules delete psc-endpoint --region=$region -q gcloud compute addresses delete psc-endpoint-ip --region=$region -q gcloud compute instances delete consumer-client-vm --zone=$zone --project $project -q gcloud compute network-firewall-policies rules delete 1000 --firewall-policy consumer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies associations delete --firewall-policy=consumer-vpc-policy --name=network-consumer-vpc --global-firewall-policy -q gcloud compute network-firewall-policies delete consumer-vpc-policy --global -q gcloud compute networks subnets delete consumer-subnet --region $region -q gcloud compute networks delete consumer-vpc -q
18 خطوات التنظيف [مشروع المنتج]
حذف مكوّنات المختبر من نافذة Cloud Shell واحدة
gcloud compute service-attachments delete producer-attachment --region=$region -q gcloud compute instances delete producer-test-vm --zone=$zone --project $project -q gcloud compute forwarding-rules delete new-producer-fr --region=$region -q gcloud compute addresses delete producer-fr-new-ip --region $region -q gcloud compute target-http-proxies delete http-proxy --region $region -q gcloud compute url-maps delete producer-url-map --region $region -q gcloud compute backend-services delete producer-new-bes --region $region -q gcloud compute instance-groups unmanaged delete producer-new-uig --zone $zone -q gcloud compute instances delete new-producer-service-vm --zone $zone --project $project -q gcloud compute networks subnets delete producer-service-new-subnet --region $region -q gcloud compute networks subnets delete lb-proxy-subnet --region $region -q gcloud compute forwarding-rules delete producer-fr --region=$region -q gcloud compute addresses delete producer-fr-ip --region $region -q gcloud compute backend-services delete producer-bes --region $region -q gcloud compute health-checks delete producer-hc --region $region -q gcloud compute instance-groups unmanaged delete producer-uig --zone $zone -q gcloud compute instances delete producer-service-vm --zone $zone --project $project -q gcloud compute network-firewall-policies rules delete 4000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 3001 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 3000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 2000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 1000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies associations delete --firewall-policy=producer-vpc-policy --name=network-producer-vpc --global-firewall-policy -q gcloud compute network-firewall-policies delete producer-vpc-policy --global -q gcloud compute routers nats delete $region-nat --router=$region-cr --region=$region -q gcloud compute routers delete $region-cr --region=$region -q gcloud compute networks subnets delete psc-nat-subnet --region=$region -q gcloud compute networks subnets delete producer-fr-subnet --region=$region -q gcloud compute networks subnets delete producer-service-subnet --region=$region -q gcloud compute networks delete producer-vpc -q
19. تهانينا!
تهانينا على إكمال هذا الدرس العملي.
المواضيع التي تناولناها
- أنشِئ خدمة ويب بسيطة من Apache يتم عرضها كخدمة منتِجة في PSC.
- أنشئ نقطة نهاية PSC.
- أنشئ منطقة خاصة في Cloud DNS لمكالمات خدمة المستهلك.
- عدِّل قاعدة إعادة التوجيه المرتبطة بمرفق الخدمة باستخدام ميزة "قابلية التغيير في Private Service Connect".