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

เกี่ยวกับ Codelab นี้
schedule45 นาที
subjectอัปเดตล่าสุดเมื่อ 27 พฤษภาคม 2568
account_circleเขียนโดย Deepak Michael, Lorin Price, Zach Seils

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

  • agentspace.cosmopup.com/drive-app ที่แมปกับแอปพลิเคชัน Agentspace สำหรับไดรฟ์ Workspace
  • agentspace.cosmopup.com/calendar-app ที่แมปกับแอปพลิเคชัน Agentspace สำหรับปฏิทินใน Workspace

กฎโฮสต์และเส้นทางของตัวจัดสรรภาระงานแอปพลิเคชันภายนอกที่กําหนดค่าผ่าน URL MAP จะควบคุมตรรกะที่แมปโดเมนที่กําหนดเองกับ 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
  • ระบบจะดำเนินการเขียนใหม่ก่อนกำหนดเส้นทางไปยังบริการแบ็กเอนด์
  • บริการแบ็กเอนด์จะกำหนดเส้นทางการรับส่งข้อมูลไปยังแอปพลิเคชันไดรฟ์แอปตาม 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 โหมดที่กำหนดเอง

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

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

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

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

ใบรับรอง

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

Cloud DNS

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

4. โทโพโลยีของ Codelab

c62938d91e00ffa7.png

f712980116d973a3.png

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

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

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

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

เริ่ม Cloud Shell

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

จากคอนโซล Google Cloud ให้คลิกไอคอน 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. สร้างเครือข่าย VPC

เครือข่าย VPC

ใน Cloud Shell ให้ทําดังนี้

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

8. ตั้งค่าคอมโพเนนต์ตัวจัดสรรภาระงาน

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

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

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  

สร้างใบรับรอง

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

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

ภาพรวมใบรับรอง SSL | การจัดสรรภาระงาน | 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

สร้างไฟล์ 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

ภายใน 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. สร้างโซน 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"

10. ข้อมูลเข้าสู่ระบบ OAuth

ในส่วนต่อไปนี้ คุณจะต้องสร้างข้อมูลเข้าสู่ระบบ OAuth สําหรับเว็บแอปพลิเคชันที่เปลี่ยนเส้นทาง URL ที่ Google จัดการไปยัง oauth-redirect เพื่อตรวจสอบสิทธิ์ คุณไม่จำเป็นต้องใช้ข้อมูลเข้าสู่ระบบที่สร้างขึ้นสำหรับบทแนะนำ

ดูข้อมูลเพิ่มเติมเกี่ยวกับ OAuth ได้ที่หัวข้อต่อไปนี้

เพิ่มการดำเนินการใน Google ปฏิทินและ Gmail | Google Agentspace

สร้างแอป OAuth และเพิ่มขอบเขต

  1. ไปที่ API และบริการ > หน้าจอขอความยินยอม 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 จัดการซึ่ง Google สร้างขึ้นและเชื่อมโยงกับ Agentspace ของแต่ละแอปพลิเคชัน เอาต์พุตของ URL เป็นตัวอย่างที่อิงตามสถาปัตยกรรมอ้างอิง คุณจึงต้องตรวจสอบว่า URL ถูกต้อง

อย่าลืมจัดเก็บลิงก์ไปยังเว็บแอปตามแอปพลิเคชัน

แอปพลิเคชันปฏิทิน

URL ของเว็บ Agentspace: https://vertexaisearch.cloud.google.com/us/home/cid/bb6b8b27-939b-494d-9227-45903bb8afcf

b90c67aafd825ccd.png

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

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

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

/drive-app

backendService

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

ดูภาพหน้าจอ

pathPrefixRewrite

/<Agentspace URL path of app#1>

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

hostRewrite

vertexaisearch.cloud.google.com

vertexaisearch.cloud.google.com

prefixMatch

/<ชื่อแอป Agentspace#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 ให้ทําดังนี้

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

ในส่วนรหัสไคลเอ็นต์ 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 โดยใช้โดเมนที่กําหนดเองโดยใช้ External Application Load Balancer ที่มีการจัดการการเข้าชมขั้นสูงเรียบร้อยแล้ว

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

Cosmopup คิดว่า Codelab เจ๋งสุดๆ

c911c127bffdee57.jpeg

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