โดเมนที่กำหนดเองของ AgentSpace, การสนับสนุน WIF

1. บทนำ

เอกสารนี้มีสถาปัตยกรรมอ้างอิงสำหรับการกำหนดค่าโดเมนที่กำหนดเองเพื่อเข้าถึง AgentSpace โดยใช้ WIF ผู้ใช้สามารถใช้โดเมนที่กำหนดเองแทน URL ที่ Google จัดการซึ่งกำหนดไว้ในระหว่างการสร้างแอป Agentspace Codelab นี้แสดงการเข้าถึงแอปพลิเคชันปฏิทินและไดรฟ์ของ Agentspace โดยใช้โดเมน nip.io nip.io เป็นบริการโอเพนซอร์สฟรีที่ให้บริการ DNS แบบไวลด์การ์ดสำหรับที่อยู่ IP ใดก็ได้ โดยพื้นฐานแล้ว บริการนี้ช่วยให้คุณสร้างชื่อโฮสต์ที่แปลงเป็นที่อยู่ IP ที่เฉพาะเจาะจงได้โดยไม่ต้องตั้งค่าเซิร์ฟเวอร์ DNS ของคุณเองหรือแก้ไขไฟล์ /etc/hosts

เราขอแนะนำให้ใช้โดเมนของคุณเอง แต่ในบทแนะนำนี้จะใช้ nip.io เพื่อวัตถุประสงค์ในการสาธิต

ในสถานการณ์การติดตั้งใช้งานที่แสดงด้านล่าง (รูปที่ 1) AgentSpace ได้เผยแพร่ที่เก็บข้อมูลที่มีแอปพลิเคชันปฏิทินซึ่งเข้าถึงได้ผ่าน URL สาธารณะที่ Google จัดการ

รูปที่ 1

27591afa06891dcb.png

การเติบโตอย่างต่อเนื่องของ Datastore และแอปพลิเคชันที่ตามมาทำให้ต้องมีการจัดการ URL ที่ Google จัดการแบบสาธารณะเพิ่มเติมตามที่แสดงในสถานการณ์การติดตั้งใช้งานด้านล่าง (รูปที่ 2) ซึ่งส่งผลให้มีการแมปแอปพลิเคชัน Agentspace และ URL แบบ 1:1

รูปที่ 2

c03abe66bd3ad4df.png

โดเมนที่กำหนดเองช่วยให้แมปแอปพลิเคชัน AgentSpace ต่างๆ กับโดเมนลูกค้าเดียวที่ผู้ใช้ระบุได้ ฟีเจอร์นี้ช่วยให้เชื่อมโยงเส้นทาง URL ที่เฉพาะเจาะจงกับแอปพลิเคชัน Agentspace แต่ละรายการได้ ซึ่งจะช่วยเพิ่มความยืดหยุ่นตามที่แสดงในสถานการณ์การติดตั้งใช้งานด้านล่าง (รูปที่ 3) ตัวอย่างเช่น ระบบจะแบ่งกลุ่มโดเมนที่ลูกค้าจัดการ agentspace.cosmopup.com ออกเป็นกฎเส้นทาง โดยแต่ละกฎจะแมปกับแอปพลิเคชัน Agentspace ที่เฉพาะเจาะจง ตัวอย่างเช่น

  • agentspace.cosmopup.com/drive-app ที่เชื่อมโยงกับแอปพลิเคชัน Agentspace สำหรับไดรฟ์ของ Workspace
  • agentspace.cosmopup.com/sharepoint-app ที่แมปกับแอปพลิเคชัน Agentspace สำหรับ Sharepoint

กฎโฮสต์และเส้นทางของตัวจัดสรรภาระงานแอปพลิเคชันภายนอกที่กำหนดค่าผ่าน URL MAP จะควบคุมตรรกะที่แมปโดเมนที่กำหนดเองกับ URL ที่จัดการโดย Google โดยจะทำหน้าที่ต่อไปนี้โดยใช้ตัวอย่าง agentspace.cosmopup.com/drive-app

  • Loadbalancer ได้รับเส้นทางโฮสต์โดเมนที่กำหนดเอง agentspace.cosmopup.com/drive-app
  • กำหนดค่าแผนที่ URL สำหรับการจับคู่กฎของโฮสต์และเส้นทางขั้นสูง
  • โฮสต์ agentspace.cosmopup.com มีสิทธิ์สำหรับการจับคู่เส้นทางและการเปลี่ยนเส้นทาง
  • เส้นทางโฮสต์โดเมนที่กำหนดเอง agentspace.cosmopup.com/drive-app ขึ้นอยู่กับ UrlRedirect
  • pathRedirect คือเส้นทาง Agentspace: /us/home/cid/5970a1b4-080a-4b44-8acd-fa89460cf0cd
  • hostRedirect คือโฮสต์ Agentspace: vertexaisearch.cloud.google.com
  • เส้นทางโฮสต์โดเมนที่กำหนดเอง agentspace.cosmopup.com/sharepoint-app ขึ้นอยู่กับ UrlRedirect
  • pathRedirect คือเส้นทาง Agentspace: /signin/locations/global/workforcePools/your-pool-name/providers/your-provider-name?continueUrl=https://vertexaisearch.cloud.google/home/cid/f190000-0000-4d0a-0000-d08df6e3bef6
  • hostRedirect คือโฮสต์ Agentspace: auth.cloud.google
  • ระบบจะดำเนินการเปลี่ยนเส้นทางก่อนกำหนดเส้นทางไปยังบริการแบ็กเอนด์

รูปที่ 3

8344f80c160f30f8.png

สิ่งที่คุณจะได้เรียนรู้

  • สร้าง Application Load Balancer ภายนอกส่วนกลาง
  • สร้างการกำหนดเส้นทางเพื่อเปลี่ยนเส้นทางโดเมนที่กำหนดเองไปยังแอปพลิเคชัน Agentspace
  • วิธีผสานรวม nip.io และ Cloud DNS เพื่อสร้างโดเมนที่กำหนดเอง
  • วิธีตรวจสอบสิทธิ์เข้าถึงโดเมนที่กำหนดเองของ Agentspace

สิ่งที่ต้องมี

  • โปรเจ็กต์ Google Cloud ที่มีสิทธิ์เจ้าของ
  • URL ของแอปพลิเคชัน Agentspace ที่มีอยู่
  • โดเมนที่กำหนดเองที่เป็นเจ้าของด้วยตนเอง (ไม่บังคับ)
  • ใบรับรอง - Self-Signed หรือจัดการโดย Google

2. สิ่งที่คุณจะสร้าง

คุณจะสร้าง Global External Application Load Balancer ที่มีความสามารถในการจัดการการรับส่งข้อมูลขั้นสูงเพื่อเปิดใช้การจับคู่เส้นทางโดเมนที่กำหนดเองสำหรับแอปพลิเคชัน Agentspace โดยใช้การเปลี่ยนเส้นทางโฮสต์และเส้นทาง เมื่อติดตั้งใช้งานแล้ว คุณจะต้องดำเนินการต่อไปนี้เพื่อตรวจสอบสิทธิ์เข้าถึงแอปพลิเคชัน Agentspace

  • เข้าถึงแอปพลิเคชัน Agentspace โดยเปิดเว็บเบราว์เซอร์และไปที่โดเมนที่กำหนดเองและเส้นทางที่ระบุ

786e8b2de2d2c68b.png

3. ข้อกำหนดเกี่ยวกับเครือข่าย

รายละเอียดข้อกำหนดของเครือข่ายมีดังนี้

คอมโพเนนต์

คำอธิบาย

VPC (agentspace-vpc)

VPC โหมดที่กำหนดเอง

NEG อินเทอร์เน็ต

ทรัพยากรที่ใช้ในการกำหนดแบ็กเอนด์ภายนอกสำหรับตัวจัดสรรภาระงานที่กำหนดค่าเป็น FQDN ซึ่งระบุ FQDN ที่จัดการโดย Google ของ Agentspace (vertexaisearch.cloud.google.com) FQDN ของอินเทอร์เน็ตจะทำการค้นหา DNS ภายใน VPC เพื่อการแก้ไข

บริการแบ็กเอนด์

บริการแบ็กเอนด์ทำหน้าที่เป็นตัวเชื่อมระหว่างตัวจัดสรรภาระงานกับทรัพยากรแบ็กเอนด์ ในบทแนะนำ บริการแบ็กเอนด์จะเชื่อมโยงกับ NEG อินเทอร์เน็ต

ใบรับรอง

หากต้องการกำหนดค่าใบรับรองสำหรับ Application Load Balancer ใน Google Cloud คุณจะต้องใช้บริการ Certificate Manager และใบรับรอง SSL ที่จัดการโดย Google หรือใบรับรอง SSL ที่จัดการด้วยตนเอง

Cloud DNS

ระบบจะใช้โซนสาธารณะของ Cloud DNS เพื่อแก้ไข IP ภายนอกของตัวจัดสรรภาระงานของแอปพลิเคชันภายนอกเป็น nip.io (agentspace.externalip.nip.io) หรือจะใช้โดเมนที่กำหนดเองและระเบียน A ที่ประกอบด้วยที่อยู่ IP ของตัวจัดสรรภาระงานก็ได้

4. โทโพโลยี Codelab

786e8b2de2d2c68b.png

8344f80c160f30f8.png

5. การตั้งค่าและข้อกำหนด

การตั้งค่าสภาพแวดล้อมแบบเรียนรู้ด้วยตนเอง

  1. ลงชื่อเข้าใช้ Google Cloud Console แล้วสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ โดยคุณจะอัปเดตได้ทุกเมื่อ
  • รหัสโปรเจ็กต์จะไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมดและเปลี่ยนแปลงไม่ได้ (เปลี่ยนไม่ได้หลังจากตั้งค่าแล้ว) Cloud Console จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งโดยปกติแล้วคุณไม่จำเป็นต้องสนใจว่าสตริงนั้นคืออะไร ใน Codelab ส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (โดยปกติจะระบุเป็น PROJECT_ID) หากไม่ชอบรหัสที่สร้างขึ้น คุณอาจสร้างรหัสแบบสุ่มอีกรหัสหนึ่งได้ หรือคุณอาจลองใช้ชื่อของคุณเองและดูว่ามีชื่อนั้นหรือไม่ คุณจะเปลี่ยนแปลงรหัสนี้หลังจากขั้นตอนนี้ไม่ได้ และรหัสจะคงอยู่ตลอดระยะเวลาของโปรเจ็กต์
  • โปรดทราบว่ายังมีค่าที่ 3 ซึ่งคือหมายเลขโปรเจ็กต์ที่ API บางตัวใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 นี้ได้ในเอกสารประกอบ
  1. จากนั้นคุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำตาม Codelab นี้จะไม่เสียค่าใช้จ่ายมากนัก หรืออาจไม่เสียเลย หากต้องการปิดทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินนอกเหนือจากบทแนะนำนี้ คุณสามารถลบทรัพยากรที่สร้างขึ้นหรือลบโปรเจ็กต์ได้ ผู้ใช้ Google Cloud รายใหม่มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD

เริ่มต้น Cloud Shell

แม้ว่าคุณจะใช้งาน Google Cloud จากระยะไกลจากแล็ปท็อปได้ แต่ใน Codelab นี้คุณจะใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์

จาก Google Cloud Console ให้คลิกไอคอน Cloud Shell ในแถบเครื่องมือด้านขวาบน

55efc1aaa7a4d3ad.png

การจัดสรรและเชื่อมต่อกับสภาพแวดล้อมจะใช้เวลาเพียงไม่กี่นาที เมื่อเสร็จแล้ว คุณควรเห็นข้อความคล้ายกับตัวอย่างนี้

7ffe5cbb04455448.png

เครื่องเสมือนนี้มาพร้อมเครื่องมือพัฒนาทั้งหมดที่คุณต้องการ โดยมีไดเรกทอรีหลักแบบถาวรขนาด 5 GB และทำงานบน Google Cloud ซึ่งช่วยเพิ่มประสิทธิภาพเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก คุณสามารถทำงานทั้งหมดในโค้ดแล็บนี้ได้ภายในเบราว์เซอร์ คุณไม่จำเป็นต้องติดตั้งอะไร

6. ก่อนเริ่มต้น

เปิดใช้ API

ใน 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. ตั้งค่าคอมโพเนนต์ตัวจัดสรรภาระงาน

สำรองที่อยู่ IP ภายนอกของตัวจัดสรรภาระงาน

ใน Cloud Shell ให้จองที่อยู่ IP ภายนอกสำหรับตัวจัดสรรภาระงานโดยทำดังนี้

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

ดูที่อยู่ IP ที่สงวนไว้ใน Cloud Shell โดยทำดังนี้

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 อินเทอร์เน็ต

สร้าง NEG อินเทอร์เน็ต และตั้งค่า –network-endpoint-type เป็น internet-fqdn-port (ชื่อโฮสต์และพอร์ตที่เข้าถึงแบ็กเอนด์ภายนอกได้) ระบบจะใช้ FQDN vertexaisearch.cloud.google.com และพอร์ต 443 เพื่อแก้ไข Agentspace

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 จะขอ รับ จัดการ และต่ออายุใบรับรองเหล่านี้โดยอัตโนมัติ

ดูข้อมูลเพิ่มเติมเกี่ยวกับใบรับรองที่รองรับสำหรับ Application Load Balancer ภายนอกส่วนกลางที่ใช้ในบทแนะนำนี้ได้ที่

ภาพรวมใบรับรอง SSL | การจัดสรรภาระงาน | Google Cloud

ในส่วนต่อไปนี้ คุณจะสร้างใบรับรองแบบ Self-signed (แม้ว่าจะใช้ใบรับรองที่จัดการโดย 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

สร้างไฟล์ config.txt ภายใน Cloud Shell ซึ่งใช้เพื่อสร้างไฟล์ pem ระบุชื่อโดเมนที่สมบูรณ์ในตัวเองในรายการ DNS 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

ตรวจสอบว่าได้สร้าง config.txt และ private-key-file.pem ใน Cloud Shell แล้ว

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

ตรวจสอบการสร้างไฟล์ cert.cert ภายใน Cloud Shell

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

8. สร้างโซน DNS สาธารณะ

ในส่วนต่อไปนี้ คุณจะสร้างโซน DNS สาธารณะที่ใช้โดย 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"

9. ระบุ URL ของแอปพลิเคชัน Agentspace

ขั้นตอนต่อไปนี้จะระบุ URL สาธารณะของ Agentspace ที่ Google จัดการซึ่ง Google สร้างขึ้นและแมปกับ Agentspace ของแต่ละแอปพลิเคชัน เอาต์พุตของ URL เป็นตัวอย่างที่อิงตามสถาปัตยกรรมอ้างอิง ดังนั้นคุณต้องตรวจสอบว่า URL ถูกต้อง

โปรดจัดเก็บลิงก์ไปยังเว็บแอปของคุณตามแอปพลิเคชัน

แอปพลิเคชันไดรฟ์

URL ของ Agentspace บนเว็บ:

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

f8f850425fd11190.png

แอปพลิเคชัน SharePoint

URL ของเว็บ Agentspace: https://auth.cloud.google/signin/locations/global/workforcePools/your-pool-name/providers/your-provider-name?continueUrl=https://vertexaisearch.cloud.google/home/cid/f190000-0000-4d0a-0000-d08df6e3bef6

f31a1939b9b83525.png

10. สร้างกฎของโฮสต์และเส้นทางขั้นสูง

ในส่วนต่อไปนี้ คุณจะอัปเดตกฎการกำหนดเส้นทางของตัวจัดสรรภาระงานเพื่อเปิดใช้ตัวเลือกในการกำหนดกฎของโฮสต์และเส้นทางโดยใช้ Cloud Console ตารางด้านล่างแสดงค่าที่กำหนดเอง (ตามลำดับจากบนลงล่าง) ซึ่งอัปเดตตามสภาพแวดล้อมของคุณ

ค่าที่กำหนดเอง

ตัวอย่างตามบทแนะนำ

โฮสต์

agentspace.YOUR-EXTERNAL-IP.nip.io

agentspace.34.54.158.206.nip.io

defaultService

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

projects/your-project-id/global/backendServices/agentspace-ineg-bes

prefixMatch

/<ชื่อของแอป Agentspace#1>

/drive-app

pathRedirect

/<เส้นทาง URL ของ Agentspace ของแอป#1>

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

hostRedirect

vertexaisearch.cloud.google.com

vertexaisearch.cloud.google.com

prefixMatch

/<ชื่อของแอป Agentspace#2>

/sharepoint-app

pathRedirect

/<เส้นทาง URL ของ Agentspace ของแอป#2>

//signin/locations/global/workforcePools/your-pool-name/providers/your-provider-name?continueUrl=https://vertexaisearch.cloud.google/home/cid/f190000-0000-4d0a-0000-d08df6e3bef6

hostRedirect

auth.cloud.google

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
  urlRedirect:
    pathRedirect: /<Agentspace URL path of app#1>
    hostRedirect: vertexaisearch.cloud.google.com
    redirectResponseCode: FOUND
- matchRules:
  - prefixMatch: /<name of Agentspace app#2>
  priority: 2
  urlRedirect:
    pathRedirect: /<Agentspace URL path of app#2>
    hostRedirect: auth.cloud.google
    redirectResponseCode: FOUND

ภาพหน้าจอตัวอย่าง

5470a123dca793b9.png

777dcb5191fd8d41.png

11. การตรวจสอบความถูกต้อง

การติดตั้งใช้งานเสร็จสมบูรณ์แล้ว คุณสามารถเข้าถึงแอปพลิเคชัน 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: sharepoint-app

เส้นทาง: agentspace.34.54.158.206.nip.io/sharepoint-app

12. ล้างข้อมูล

หากต้องการลบข้อมูลเข้าสู่ระบบ OAuth ให้ทำดังนี้

ไปที่ API และบริการ → ข้อมูลเข้าสู่ระบบ

ในส่วนรหัสไคลเอ็นต์ OAuth 2.0 ให้เลือกข้อมูลเข้าสู่ระบบ แล้วลบ

จากเทอร์มินัล Cloud Shell เดียว ให้ลบคอมโพเนนต์ของ Lab ดังนี้

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

13. ขอแสดงความยินดี

ขอแสดงความยินดี คุณกำหนดค่าและตรวจสอบการเชื่อมต่อกับ Agentspace โดยใช้โดเมนที่กำหนดเองโดยใช้ External Application Load Balancer ที่มีการจัดการการรับส่งข้อมูลขั้นสูงเรียบร้อยแล้ว

คุณสร้างโครงสร้างพื้นฐานของตัวจัดสรรภาระงาน เรียนรู้วิธีสร้าง NEG อินเทอร์เน็ต, Cloud DNS และการจัดการการรับส่งข้อมูลขั้นสูงที่เปิดใช้การเปลี่ยนเส้นทางโฮสต์และเส้นทางที่อนุญาตให้เชื่อมต่อกับ Agentspace โดยใช้โดเมนที่กำหนดเอง

Cosmopup คิดว่า Codelab นั้นยอดเยี่ยม!!

c911c127bffdee57.jpeg

เอกสารอ้างอิง