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

1. บทนำ

เอกสารนี้มีสถาปัตยกรรมอ้างอิงสำหรับการกำหนดค่าโดเมนที่กำหนดเองเพื่อเข้าถึง AgentSpace ผู้ใช้สามารถใช้โดเมนที่กำหนดเองแทน 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

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

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

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

สิ่งที่คุณต้องมี

  • โปรเจ็กต์ Google Cloud ที่มีสิทธิ์เจ้าของ
  • URL ของแอปพลิเคชัน Agentspace ที่มีอยู่
  • โดเมนที่กำหนดเองที่เป็นเจ้าของด้วยตนเอง (ไม่บังคับ)
  • ใบรับรอง - Self-Signed หรือจัดการโดย 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 คุณจะต้องใช้บริการ Certificate Manager และใบรับรอง 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 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 ซึ่งช่วยเพิ่มประสิทธิภาพเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก คุณสามารถทำงานทั้งหมดใน Codelab นี้ได้ภายในเบราว์เซอร์ คุณไม่จำเป็นต้องติดตั้งอะไร

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 ภายนอกของตัวจัดสรรภาระงาน

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

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

ภาพรวมใบรับรอง 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

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 Actions อื่นๆ ได้ด้วย หากมีรหัสไคลเอ็นต์ 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

/<เส้นทาง URL ของ Agentspace ของแอป#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 เดียว ให้ลบคอมโพเนนต์ของ 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

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

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

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

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

c911c127bffdee57.jpeg

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