النطاق الخاص في Agentspace

1. مقدمة

يقدّم هذا المستند بنية مرجعية لضبط نطاق خاص للوصول إلى AgentSpace. بدلاً من عنوان URL الذي تديره Google والذي يتم تعيينه أثناء إنشاء تطبيق Agentspace، يمكن للمستخدمين الاستفادة من نطاق مخصّص. يوضّح هذا الدرس التطبيقي حول الترميز كيفية الوصول إلى تطبيقات التقويم وDrive في Agentspace باستخدام النطاق nip.io. وnip.io هي خدمة مجانية ومفتوحة المصدر توفّر نظام أسماء نطاقات يستخدم أحرف البدل لأي عنوان IP. بشكل أساسي، يتيح لك إنشاء اسم مضيف يتم تحويله إلى عنوان IP معيّن بدون الحاجة إلى إعداد خادم نظام أسماء نطاقات خاص بك أو تعديل ملف /etc/hosts.

يُنصح باستخدام نطاقك الخاص، ولكن لأغراض توضيحية، يتم استخدام nip.io في البرنامج التعليمي.

في سيناريو النشر الموضّح أدناه (الشكل 1)، نشرت AgentSpace مخزن بيانات يحتوي على تطبيق "تقويم" يمكن الوصول إليه من خلال عنوان URL عام تديره Google.

الشكل 1

27591afa06891dcb.png

يؤدي النمو المستمر لمخزن البيانات والتطبيقات اللاحقة إلى المزيد من إدارة عناوين URL التي تديرها Google والمتاحة للجميع كما هو موضّح في سيناريو النشر أدناه (الشكل 2)، ما يؤدي إلى ربط التطبيقات وعناوين URL في Agentspace بنسبة 1:1.

الشكل 2.

7e31bfae7ac56b22.png

يتيح النطاق المخصّص ربط تطبيقات AgentSpace المختلفة بنطاق عميل واحد يحدّده المستخدم. تتيح هذه الميزة ربط مسار عنوان URL محدّد بكل تطبيق من تطبيقات Agentspace، ما يوفّر مرونة أكبر كما هو موضّح في سيناريو النشر أدناه (الشكل 3). على سبيل المثال، يتم تقسيم نطاق تديره شركة Agentspace‏ (agentspace.cosmopup.com) إلى قواعد مسار، ويتم ربط كل قاعدة بتطبيق Agentspace معيّن، وتشمل الأمثلة ما يلي:

  • agentspace.cosmopup.com/drive-app الذي يتم ربطه بتطبيق Agentspace في Workspace Drive
  • agentspace.cosmopup.com/calendar-app الذي يتم ربطه بتطبيق Agentspace في تقويم Workspace

تتحكّم قواعد المضيف والمسار في جهاز موازنة حمل التطبيقات الخارجي، والتي يتم ضبطها من خلال "خريطة عناوين URL"، في المنطق الذي يربط النطاق الخاص بعنوان URL الذي تديره Google. تنفِّذ هذه السمة الوظيفة التالية باستخدام المثال agentspace.cosmopup.com/drive-app

  • يتلقّى جهاز موازنة الحمل مسار مضيف النطاق المخصّص agentspace.cosmopup.com/drive-app
  • تم ضبط خريطة عناوين URL لمطابقة متقدّمة لقاعدة المضيف والمسار
  • المضيف agentspace.cosmopup.com مؤهَّل لمطابقة المسار وإعادة الكتابة
  • يخضع مسار مضيف النطاق المخصّص agentspace.cosmopup.com/drive-app لعملية UrlRewrite
  • ‫PathPrefixRewrite هو مسار Agentspace: ‎/us/home/cid/5970a1b4-080a-4b44-8acd-fa89460cf0cd
  • hostRewrite هو مضيف Agentspace: vertexaisearch.cloud.google.com
  • يتم تنفيذ عملية إعادة الكتابة قبل التوجيه إلى الخدمة الخلفية
  • توجّه خدمة الخلفية الزيارات إلى تطبيق drive-app استنادًا إلى عنوان URL الخاص بـ Agentspace

الشكل 3

f8d84ec5fef9af5a.png

ما ستتعلمه

  • إنشاء جهاز موازنة حمل التطبيقات الخارجي العالمي
  • إنشاء عملية إعادة كتابة لخدمة الخلفية باستخدام نطاق مخصّص وعملية إعادة كتابة لتطبيق Agentspace
  • كيفية دمج nip.io وCloud DNS لإنشاء نطاق مخصّص
  • كيفية إثبات إمكانية الوصول إلى نطاق مخصّص في Agentspace

المتطلبات

  • مشروع Google Cloud لديه أذونات المالك
  • عناوين URL الحالية لتطبيق Agentspace
  • نطاق خاص مملوك ذاتيًا (اختياري)
  • الشهادات - موقَّعة ذاتيًا أو تديرها Google

2. ما ستنشئه

ستنشئ جهاز موازنة حمل للتطبيقات الخارجية العالمية مع إمكانات متقدّمة لإدارة الزيارات من أجل تفعيل مطابقة مسار النطاق المخصّص لتطبيقات Agentspace باستخدام إعادة كتابة المضيف والمسار. بعد نشر التطبيق، عليك اتّخاذ الإجراءات التالية للتحقّق من إمكانية الوصول إلى تطبيق Agentspace:

  • يمكنك الوصول إلى تطبيق Agentspace من خلال فتح متصفّح ويب والانتقال إلى نطاقك المخصّص والمسار المحدّد.

c62938d91e00ffa7.png

3- متطلبات الشبكة

في ما يلي تفاصيل متطلبات الشبكة:

المكونات

الوصف

VPC (agentspace-vpc)

شبكة VPC في الوضع المخصّص

مجموعة نقاط نهاية الشبكة للإنترنت

مورد يُستخدَم لتحديد نظام خلفي خارجي لموازنة الحمل تم إعداده كاسم نطاق مؤهَّل بالكامل (FQDN) يشير إلى اسم النطاق المؤهَّل بالكامل الذي تديره Google في Agentspace (‏vertexaisearch.cloud.google.com). يُجري اسم المجال المؤهّل بالكامل (FQDN) على الإنترنت بحثًا في نظام أسماء النطاقات (DNS) داخل السحابة الخاصة الافتراضية (VPC) لإجراء عملية التحويل.

خدمة الخلفية

تعمل خدمة الخلفية كجسر بين جهاز موازنة الحمل وموارد الخلفية. في البرنامج التعليمي، ترتبط خدمة الخلفية بـ NEG على الإنترنت.

Cloud

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

Cloud DNS

يتم استخدام المنطقة العامة في Cloud DNS لحلّ عنوان IP الخارجي الخاص بموازنة حمل التطبيقات الخارجية إلى nip.io (agentspace.externalip.nip.io). يمكنك بدلاً من ذلك استخدام نطاقك المخصّص وسجلّ A يتضمّن عنوان IP لموازن التحميل.

4. بنية الدرس التطبيقي حول الترميز

c62938d91e00ffa7.png

f712980116d973a3.png

5- الإعداد والمتطلبات

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

  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، ما يؤدي إلى تحسين أداء الشبكة والمصادقة بشكل كبير. يمكن إكمال جميع المهام في هذا الدرس العملي ضمن المتصفّح. لست بحاجة إلى تثبيت أي تطبيق.

6. قبل البدء

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

داخل Cloud Shell، تأكَّد من إعداد رقم تعريف مشروعك:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region

فعِّل جميع الخدمات اللازمة:

gcloud services enable compute.googleapis.com
gcloud services enable dns.googleapis.com

7. إنشاء شبكة VPC

شبكة VPC

داخل Cloud Shell، اتّبِع الخطوات التالية:

gcloud compute networks create agentspace-vpc --subnet-mode custom

8. إعداد مكوّنات موازنة الحمل

حجز عنوان IP خارجي لجهاز موازنة الحمل

داخل Cloud Shell، احجز عنوان IP خارجيًا لجهاز موازنة الحمل:

gcloud compute addresses create external-ip \
    --network-tier=PREMIUM \
    --ip-version=IPV4 \
    --global

في Cloud Shell، اعرض عنوان IP المحجوز:

gcloud compute addresses describe external-ip \
  --global | grep -i address:

مثال على الناتج:

user@cloudshell$ gcloud compute addresses describe external-ip \
  --global | grep -i address:
address: 34.54.158.206

إعداد مجموعة نقاط نهاية الشبكة للإنترنت

أنشئ مجموعة NEG على الإنترنت، واضبط –network-endpoint-type على internet-fqdn-port (اسم المضيف والمنفذ اللذان يمكن الوصول إليهما من الخلفية الخارجية). لحلّ Agentspace، يتم استخدام اسم المجال المؤهّل بالكامل vertexaisearch.cloud.google.com والمنفذ 443.

gcloud compute network-endpoint-groups create agentspace-ineg \
    --network-endpoint-type="internet-fqdn-port" \
    --global
gcloud compute network-endpoint-groups update agentspace-ineg \
    --add-endpoint="fqdn=vertexaisearch.cloud.google.com,port=443" \
    --global

إنشاء جهاز موازنة الحمل

داخل Cloud Shell، اتّبِع الخطوات التالية:

gcloud compute backend-services create agentspace-ineg-bes \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --protocol=HTTPS \
      --global
gcloud compute backend-services add-backend agentspace-ineg-bes \
      --network-endpoint-group=agentspace-ineg \
      --global-network-endpoint-group \
      --global  

إنشاء الشهادة

في هذه المرحلة، تكون قد أنشأت مجموعة NEG على الإنترنت وخدمة الخلفية، وفي القسم التالي، عليك إنشاء مورد شهادة لاستخدامه في الخادم الوكيل المستهدف لبروتوكول HTTPs. يمكنك إنشاء مصدر شهادة SSL باستخدام شهادة SSL تديرها Google أو شهادة SSL تتم إدارتها ذاتيًا. ننصح باستخدام الشهادات المُدارة من Google لأنّ Google Cloud يحصل على هذه الشهادات ويديرها ويجدّدها تلقائيًا.

لمزيد من المعلومات حول الشهادات المتوافقة مع "موازن الحمل للتطبيقات الخارجية العالمية" المستخدَمة في هذا البرنامج التعليمي، يُرجى الرجوع إلى ما يلي:

نظرة عامة على شهادات طبقة المقابس الآمنة | موازنة الحمل | Google Cloud

في القسم التالي، ستنشئ شهادة موقَّعة ذاتيًا (مع أنّه يمكن استخدام شهادة تديرها Google بدلاً من ذلك) تتطلّب ربط الاسم الشائع باسم النطاق المؤهّل بالكامل (agentspace.YOUR-EXTERNAL-IP.nip.io) الذي يتوافق مع عنوان IP الخارجي لموازنة التحميل الذي تم إنشاؤه سابقًا، كما هو موضّح في المثال أدناه:

الاسم الشائع: agentspace.34.54.158.206.nip.io

داخل Cloud Shell، أنشئ المفتاح الخاص

openssl genrsa -out private-key-file.pem 2048

داخل Cloud Shell، أنشئ ملف config.txt يُستخدَم لإنشاء ملف pem. حدِّد اسم النطاق المؤهَّل بالكامل في إدخال نظام أسماء النطاقات 1 agentspace.YOUR-EXTERNAL-IP.nip.io، مثلاً agentspace.34.54.158.206.nip.io في الإعداد أدناه.

cat <<'EOF' >config.txt
[req]
default_bits              = 2048
req_extensions            = extension_requirements
distinguished_name        = dn_requirements

[extension_requirements]
basicConstraints          = CA:FALSE
keyUsage                  = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName            = @sans_list

[dn_requirements]
countryName               = Country Name (2 letter code)
stateOrProvinceName       = State or Province Name (full name)
localityName              = Locality Name (eg, city)
organizationName          = Organization Name (eg, company)
organizationalUnitName    = Organizational Unit Name (eg, section)
commonName                = Common Name (e.g. server FQDN or YOUR name)
emailAddress              = Email Address

[sans_list]
DNS.1                     = agentspace.YOUR-EXTERNAL-IP.nip.io

EOF

داخل Cloud Shell، تأكَّد من إنشاء config.txt وprivate-key-file.pem.

user@cloudshell:$ ls
config.txt  private-key-file.pem

داخل Cloud Shell، نفِّذ ما يلي.

sudo openssl req -new -key private-key-file.pem \
    -out csr.pem \
    -config config.txt

مثال:

user@cloudshell:$ sudo openssl req -new -key private-key-file.pem \
    -out csr.pem \
    -config config.txt
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) []:
State or Province Name (full name) []:
Locality Name (eg, city) []:
Organization Name (eg, company) []:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name)[]:agentspace.34.54.158.206.nip.io
Email Address []:

داخل Cloud Shell، تحقَّق من إنشاء ملف pem المطلوب لتوقيع الشهادة.

user@cloudshell:$ ls
config.txt  csr.pem  private-key-file.pem

داخل Cloud Shell، أنشئ الشهادة.

sudo openssl x509 -req \
    -signkey private-key-file.pem \
    -in csr.pem \
    -out cert.cert \
    -extfile config.txt \
    -extensions extension_requirements \
    -days 365

مثال على الناتج:

user@cloudshell:$ sudo openssl x509 -req \
    -signkey private-key-file.pem \
    -in csr.pem \
    -out cert.cert \
    -extfile config.txt \
    -extensions extension_requirements \
    -days 365
Certificate request self-signature ok
subject=CN = agentspace.34.54.158.206.nip.io

داخل Cloud Shell، تحقَّق من إنشاء الملف cert.cert

user@cloudshell:$ ls
cert.cert  config.txt  csr.pem  private-key-file.pem

أنشئ مورد شهادة لربطه بجهاز موازنة الحمل الخارجي. استبدِل مَعلمات الشهادة والمفتاح الخاص بأسماء الملفات المحدّدة.

في Cloud Shell، نفِّذ ما يلي:

gcloud compute ssl-certificates create agentspace-self-signed-cert \
    --certificate=cert.cert \
    --private-key=private-key-file.pem \
    --global

في Cloud Shell، نفِّذ ما يلي:

gcloud compute url-maps create agentspace-lb \
      --default-service=agentspace-ineg-bes \
      --global  

في Cloud Shell، نفِّذ ما يلي:

gcloud compute target-https-proxies create https-proxy \
      --ssl-certificates=agentspace-self-signed-cert \
      --url-map=agentspace-lb \
      --global 

في Cloud Shell، نفِّذ ما يلي:

gcloud compute forwarding-rules create agentspace-fr \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --network-tier=PREMIUM \
      --address=external-ip \
      --target-https-proxy=https-proxy \
      --global \
      --ports=443

9- إنشاء منطقة نظام أسماء نطاقات عامة

في القسم التالي، ستنشئ "منطقة نظام أسماء نطاقات عامة" تستخدمها nip.io للحلّ مقابل عنوان IP الخارجي لموازنة الحمل.

في Cloud Shell، نفِّذ ما يلي لإنشاء متغيّر لعنوان IP الخاص بجهاز موازنة الحمل الخارجي:

externalip=<YOUR-EXTERNAL-IP>
echo $externalip

في Cloud Shell، نفِّذ ما يلي:

gcloud dns --project=$project managed-zones create agentspace-dns --description="Agentspace public dns" --dns-name="$externalip.nip.io." --visibility="public"

في Cloud Shell، نفِّذ ما يلي:

gcloud dns --project=$project record-sets create agentspace.$externalip.nip.io. --zone="agentspace-dns" --type="A" --ttl="300" --rrdatas="$externalip"

10. بيانات اعتماد OAuth

في القسم التالي، ستنشئ بيانات اعتماد Oauth لتطبيقات الويب التي تعيد توجيه عنوان URL المُدار من Google إلى oauth-redirect للمصادقة. لا يلزم استخدام بيانات الاعتماد التي تم إنشاؤها في البرنامج التعليمي.

لمزيد من المعلومات عن OAuth، يُرجى الاطّلاع على ما يلي:

إضافة إجراءات "تقويم Google" وGmail | Google Agentspace

إنشاء تطبيق OAuth وإضافة نطاقات

  1. انتقِل إلى "واجهات برمجة التطبيقات والخدمات" > "شاشة طلب الموافقة المتعلّقة ببروتوكول OAuth": الانتقال إلى "شاشة طلب الموافقة المتعلّقة ببروتوكول OAuth"
  2. اختَر "داخلي"، ثمّ انقر على "إنشاء".
  3. أدخِل اسمًا لتطبيق OAuth.
  4. أدخِل عنوان البريد الإلكتروني المخصّص لدعم المستخدمين.
  5. أدخِل معلومات الاتصال بالمطوِّر.
  6. النقر على "حفظ ومتابعة"

إنشاء معرّف عميل OAuth

يوضّح هذا الإجراء كيفية إنشاء معرّف عميل OAuth جديد لإجراءات Google Cloud. يمكن أيضًا استخدام معرّف عميل OAuth وسرّه في إجراءات أخرى على Google Cloud. إذا كان لديك معرّف عميل OAuth حالي في Google Cloud لإجراءات Google Cloud، يمكنك استخدام معرّف العميل هذا وسرّه لإجراءات "تقويم Google" بدلاً من إنشاء معرّف عميل جديد.

  1. انتقِل إلى صفحة "بيانات الاعتماد" وانقر على "إنشاء بيانات اعتماد" > "معرّف عميل OAuth".
  2. اختَر "تطبيق الويب".
  3. أدخِل اسمًا لمعرّف العميل.
  4. انقر على "إضافة معرّف الموارد المنتظم (URI)" وأدخِل معرّف الموارد المنتظم (URI) التالي: https://vertexaisearch.cloud.google.com/oauth-redirect
  5. انقر على "إنشاء" وانسخ المعلومات التالية:
  • معرِّف العميل
  • سر العميل

11. تحديد عناوين URL لتطبيق Agentspace

يحدّد الإجراء التالي عناوين URL العامة لـ Agentspace التي تديرها Google والتي يتم ربطها بـ Agentspace لكل تطبيق. إنّ ناتج عناوين URL هو أمثلة تستند إلى بنية المرجع، لذا عليك التأكّد من أنّ عناوين URL دقيقة.

احرص على تخزين الرابط المؤدي إلى تطبيق الويب لكل تطبيق.

تطبيق "تقويم Google"

عنوان URL لصفحة Agentspace على الويب: https://vertexaisearch.cloud.google.com/us/home/cid/bb6b8b27-939b-494d-9227-45903bb8afcf

b90c67aafd825ccd.png

تطبيق Drive

عنوان URL لتطبيق Agentspace على الويب:

https://vertexaisearch.cloud.google.com/us/home/cid/5970a1b4-080a-4b44-8acd-fa89460cf0cd

f8f850425fd11190.png

12. إنشاء قاعدة متقدّمة للمضيف والمسار

في القسم التالي، ستعدِّل قواعد توجيه موازنات التحميل لتفعيل خيار تحديد قواعد المضيف والمسار باستخدام Cloud Console. يوضّح الجدول أدناه القيم المخصّصة (بالترتيب من الأعلى إلى الأسفل)، ويتم تعديلها استنادًا إلى بيئتك:

قيمة مخصّصة

مثال استنادًا إلى فيديو تعليمي

المضيفون

agentspace.YOUR-EXTERNAL-IP.nip.io

agentspace.34.54.158.206.nip.io

defaultService

projects/<projectid>/global/backendServices/agentspace-ineg-bes

عرض لقطة الشاشة

prefixMatch

‎/<name of Agentspace app#1>

/drive-app

backendService

projects/<projectid>/global/backendServices/agentspace-ineg-bes

عرض لقطة الشاشة

pathPrefixRewrite

/<مسار عنوان URL لـ Agentspace الخاص ببرنامج الحماية المتقدّمة رقم 1>

/us/home/cid/5970a1b4-080a-4b44-8acd-fa89460cf0cd

hostRewrite

vertexaisearch.cloud.google.com

vertexaisearch.cloud.google.com

prefixMatch

/<name of Agentspace app#2>

/calendar-app

backendService

projects/<projectid>/global/backendServices/agentspace-ineg-bes

عرض لقطة الشاشة

pathPrefixRewrite

/<Agentspace URL path of app#2>

/us/home/cid/bb6b8b27-939b-494d-9227-45903bb8afcf

hostRewrite

vertexaisearch.cloud.google.com

vertexaisearch.cloud.google.com

انتقِل إلى ما يلي للوصول إلى قواعد المضيف والمسار

توزيع الحمل → agentspace-lb → انقر على "تعديل"

اختَر "قواعد التوجيه" → "قواعد متقدّمة للمضيف والمسار".

اختَر "إضافة قاعدة مضيف ومسار"

4bc965db43aed21b.png

يتم الآن عرض خيار إنشاء قاعدة مضيف ومسار جديدة، وفي قسم المضيفين، أدخِل agentspace.YOUR-EXTERNAL-IP.nip.io أو النطاق المخصّص.

f36e4fa11c950d8d.png

في حقل "مطابقة المسار" (المطابقات والإجراءات والخدمات)، عدِّل المحتوى أدناه باستخدام الإعدادات البيئية، ثم انقر على "تعديل".

defaultService: projects/<projectid>/global/backendServices/agentspace-ineg-bes
name: matcher1
routeRules:
- matchRules:
 - prefixMatch: /<name of Agentspace app#1>
 priority: 1
 routeAction:
   weightedBackendServices:
   - backendService: projects/<projectid>/global/backendServices/agentspace-ineg-bes
     weight: 100
   urlRewrite:
     pathPrefixRewrite: /<Agentspace URL path of app#1>
     hostRewrite: vertexaisearch.cloud.google.com
- matchRules:
 - prefixMatch: /<name of Agentspace app#2>
 priority: 2
 routeAction:
   weightedBackendServices:
   - backendService: projects/<projectid>/global/backendServices/agentspace-ineg-bes
     weight: 101
   urlRewrite:
     pathPrefixRewrite: /<Agentspace URL path of app#2>
     hostRewrite: vertexaisearch.cloud.google.com

مثال على لقطة شاشة:

22788283124c59ec.png

cef8f571ca17bf42.png

13. التحقّق من الصحة

اكتملت عملية النشر. يمكنك الوصول إلى تطبيق Agentspace باستخدام النطاق المخصّص من خلال متصفّح ويب أو نافذة طرفية عن طريق تحديد agentspace.YOUR-EXTERNAL-IP.nip.io/path، مثلاً agentspace.34.54.158.206.nip.io، كما هو موضّح في الأمثلة أدناه:

تطبيق Agentspace: drive-app

المسار: agentspace.34.54.158.206.nip.io/drive-app

تطبيق Agentspace: drive-app

المسار: agentspace.34.54.158.206.nip.io/calendar-app

14. تَنظيم

لحذف بيانات اعتماد OAuth، اتّبِع الخطوات التالية:

انتقِل إلى "واجهات برمجة التطبيقات والخدمات" (APIS & Services) → "بيانات الاعتماد" (Credentials).

ضمن "معرّفات عملاء OAuth 2.0"، اختَر بيانات الاعتماد ثم احذفها.

من نافذة Cloud Shell واحدة، احذف مكوّنات المختبر:

gcloud compute forwarding-rules delete agentspace-fr --global -q

gcloud compute target-https-proxies delete https-proxy --global -q

gcloud compute url-maps delete agentspace-lb --global -q

cloud compute ssl-certificates delete agentspace-self-signed-cert --global -q

gcloud compute backend-services delete agentspace-ineg-bes --global -q

gcloud compute network-endpoint-groups delete agentspace-ineg --global -q

gcloud dns --project=$projectid record-sets delete agentspace.$externalip.nip.io --zone="agentspace-dns" --type="A"

gcloud dns --project=$projectid managed-zones delete agentspace-dns

gcloud compute addresses delete external-ip --global -q

gcloud compute networks delete agentspace-vpc -q

15. تهانينا

تهانينا، لقد نجحت في ضبط الاتصال بـ Agentspace والتحقّق منه باستخدام نطاق خاص من خلال جهاز موازنة حمل التطبيقات الخارجي مع إدارة متقدّمة للزيارات.

أنشأت البنية الأساسية لموازنة الحمل، وتعرّفت على كيفية إنشاء مجموعة NEG على الإنترنت وCloud DNS وإدارة الزيارات المتقدّمة التي فعّلت إعادة كتابة المضيف والمسار ما أتاح إمكانية الاتصال بـ Agentspace باستخدام نطاق مخصّص.

تعتقد Cosmopup أنّ الدروس التطبيقية حول الترميز رائعة!!

c911c127bffdee57.jpeg

المستندات المرجعية