1. บทนำ
เอกสารนี้แสดงสถาปัตยกรรมอ้างอิงสำหรับการกำหนดค่าโดเมนที่กำหนดเองเพื่อเข้าถึง AgentSpace ผู้ใช้สามารถใช้โดเมนที่กำหนดเองแทน URL ที่มีการจัดการโดย Google ซึ่งกำหนดไว้ในระหว่างการสร้างแอป Agentspace Codelab นี้แสดงการเข้าถึงปฏิทินและแอปพลิเคชันไดรฟ์ของ Agentspace โดยใช้โดเมน nip.io ซึ่งเป็นบริการโอเพนซอร์สแบบไม่มีค่าใช้จ่ายที่ให้บริการ DNS แบบไวลด์การ์ดสำหรับที่อยู่ IP ใดก็ได้ โดยพื้นฐานแล้ว ไฟล์นี้ช่วยให้คุณสร้างชื่อโฮสต์ที่แปลเป็นที่อยู่ IP ที่เฉพาะเจาะจงได้โดยไม่ต้องตั้งค่าเซิร์ฟเวอร์ DNS ของคุณเองหรือแก้ไขไฟล์ /etc/hosts
เราขอแนะนำให้ใช้โดเมนของคุณเอง แต่จะใช้ nip.io ในบทแนะนำเพื่อสาธิต
ในสถานการณ์การติดตั้งใช้งานที่แสดงด้านล่าง (รูปที่ 1) AgentSpace ได้เผยแพร่ที่เก็บข้อมูลซึ่งมีแอปพลิเคชันปฏิทินซึ่งเข้าถึงได้ผ่าน URL สาธารณะที่ Google จัดการ
รูปที่ 1
การเติบโตอย่างต่อเนื่องของดาต้าสตोरและแอปพลิเคชันต่อๆ มาส่งผลให้มีการจัดการ URL สาธารณะที่ Google จัดการดังที่แสดงในสถานการณ์การติดตั้งใช้งานด้านล่าง (รูปที่ 2) ซึ่งส่งผลให้มีการแมปแอปพลิเคชันและ URL ของ Agentspace แบบ 1:1
รูปที่ 2
โดเมนที่กำหนดเองช่วยให้สามารถแมปแอปพลิเคชัน 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
สิ่งที่จะได้เรียนรู้
- สร้างตัวจัดสรรภาระงานแอปพลิเคชันภายนอกทั่วโลก
- สร้างการเขียนบริการแบ็กเอนด์ใหม่โดยใช้โดเมนที่กำหนดเองและการดำเนินการเขียนใหม่ไปยังแอปพลิเคชัน Agentspace
- วิธีผสานรวม nip.io กับ Cloud DNS เพื่อสร้างโดเมนที่กำหนดเอง
- วิธีตรวจสอบสิทธิ์เข้าถึงโดเมนที่กำหนดเองของ Agentspace
สิ่งที่ต้องมี
- โปรเจ็กต์ Google Cloud ที่มีสิทธิ์ระดับเจ้าของ
- URL ของแอปพลิเคชัน Agentspace ที่มีอยู่
- โดเมนที่กำหนดเองซึ่งคุณเป็นเจ้าของเอง (ไม่บังคับ)
- ใบรับรอง - ลงนามด้วยตนเองหรือจัดการโดย Google
2. สิ่งที่คุณจะสร้าง
คุณจะต้องสร้างตัวจัดสรรภาระงานแอปพลิเคชันภายนอกทั่วโลกที่มีความสามารถในการจัดการการเข้าชมขั้นสูงเพื่อเปิดใช้การจับคู่เส้นทางโดเมนที่กำหนดเองสำหรับแอปพลิเคชัน Agentspace โดยใช้การเขียนโฮสต์และเส้นทางใหม่ เมื่อติดตั้งใช้งานแล้ว คุณจะทำการดำเนินการต่อไปนี้เพื่อตรวจสอบสิทธิ์เข้าถึงแอปพลิเคชัน Agentspace
- เข้าถึงแอปพลิเคชัน Agentspace โดยเปิดเว็บเบราว์เซอร์และไปที่โดเมนที่กำหนดเองและเส้นทางที่ระบุ
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
5. การตั้งค่าและข้อกําหนด
การตั้งค่าสภาพแวดล้อมด้วยตนเอง
- ลงชื่อเข้าใช้ Google Cloud Console แล้วสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี
- ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ คุณจะอัปเดตได้ทุกเมื่อ
- รหัสโปรเจ็กต์จะต้องไม่ซ้ำกันสำหรับโปรเจ็กต์ Google Cloud ทั้งหมดและจะเปลี่ยนแปลงไม่ได้ (เปลี่ยนแปลงไม่ได้หลังจากตั้งค่าแล้ว) คอนโซล Cloud จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งปกติแล้วคุณไม่จำเป็นต้องสนใจว่าสตริงนั้นจะเป็นอะไร ในโค้ดแล็บส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (ปกติจะระบุเป็น
PROJECT_ID
) หากไม่ชอบรหัสที่สร้างขึ้น คุณอาจสร้างรหัสอื่นแบบสุ่มได้ หรือจะลองใช้อุปกรณ์ของคุณเองเพื่อดูว่าพร้อมใช้งานหรือไม่ก็ได้ คุณจะเปลี่ยนแปลงชื่อหลังจากขั้นตอนนี้ไม่ได้ และชื่อดังกล่าวจะคงอยู่ตลอดระยะเวลาของโปรเจ็กต์ - โปรดทราบว่ามีค่าที่ 3 ซึ่งเป็นหมายเลขโปรเจ็กต์ที่ API บางรายการใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 รายการนี้ได้ในเอกสารประกอบ
- ถัดไป คุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำตามโค้ดแล็บนี้จะไม่เสียค่าใช้จ่ายมากนัก หรืออาจไม่เสียค่าใช้จ่ายเลย หากต้องการปิดทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินหลังจากบทแนะนำนี้ คุณสามารถลบทรัพยากรที่สร้างไว้หรือลบโปรเจ็กต์ได้ ผู้ใช้ Google Cloud รายใหม่มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD
เริ่ม Cloud Shell
แม้ว่า Google Cloud จะทำงานจากระยะไกลจากแล็ปท็อปได้ แต่ในโค้ดแล็บนี้ คุณจะใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์
จากคอนโซล Google Cloud ให้คลิกไอคอน Cloud Shell ในแถบเครื่องมือด้านขวาบน
การจัดสรรและเชื่อมต่อกับสภาพแวดล้อมจะใช้เวลาเพียงไม่กี่นาที เมื่อดำเนินการเสร็จแล้ว คุณควรเห็นข้อมูลดังต่อไปนี้
เครื่องเสมือนนี้โหลดเครื่องมือการพัฒนาทั้งหมดที่คุณต้องการ ซึ่งจะมีไดเรกทอรีหลักขนาด 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 และเพิ่มขอบเขต
- ไปที่ API และบริการ > หน้าจอขอความยินยอม OAuth: ไปที่หน้าจอขอความยินยอม OAuth
- เลือก "ภายใน" แล้วคลิก "สร้าง"
- ป้อนชื่อแอป OAuth
- ป้อนอีเมลการสนับสนุนของผู้ใช้
- ป้อนข้อมูลติดต่อของนักพัฒนาแอป
- คลิก "บันทึกและดำเนินการต่อ"
สร้างรหัสไคลเอ็นต์ OAuth
ขั้นตอนนี้จะอธิบายวิธีสร้างรหัสไคลเอ็นต์ OAuth ใหม่สําหรับการดำเนินการใน Google Cloud รหัสและรหัสลับไคลเอ็นต์ OAuth นี้ยังใช้สำหรับการดำเนินการอื่นๆ ของ Google Cloud ได้ด้วย หากมีรหัสไคลเอ็นต์ OAuth ของ Google Cloud อยู่แล้วสําหรับการดำเนินการของ Google Cloud คุณจะใช้รหัสไคลเอ็นต์และข้อมูลลับนั้นสําหรับการดำเนินการของ Google ปฏิทินแทนการสร้างรหัสไคลเอ็นต์ใหม่ได้
- ไปที่หน้าข้อมูลเข้าสู่ระบบ แล้วคลิกสร้างข้อมูลเข้าสู่ระบบ > รหัสไคลเอ็นต์ OAuth
- เลือกเว็บแอปพลิเคชัน
- ป้อนชื่อสำหรับรหัสไคลเอ็นต์
- คลิก "เพิ่ม URI" แล้วป้อน URI ต่อไปนี้ https://vertexaisearch.cloud.google.com/oauth-redirect
- คลิกสร้างและคัดลอกข้อมูลต่อไปนี้
- รหัสลูกค้า
- รหัสลับไคลเอ็นต์
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
แอปพลิเคชันไดรฟ์
URL ของเว็บ Agentspace:
https://vertexaisearch.cloud.google.com/us/home/cid/5970a1b4-080a-4b44-8acd-fa89460cf0cd
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 → เลือกแก้ไข
เลือกกฎการกำหนดเส้นทาง → กฎของโฮสต์และเส้นทางขั้นสูง
เลือก "เพิ่มกฎของโฮสต์และเส้นทาง"
ตอนนี้คุณจะเห็นการสร้างกฎของโฮสต์และเส้นทางใหม่ ในส่วนโฮสต์ ให้แทรก agentspace.YOUR-EXTERNAL-IP.nip.io หรือโดเมนที่กำหนดเอง
ในช่องตัวจับคู่เส้นทาง (การจับคู่ การดำเนินการ และบริการ) ให้อัปเดตเนื้อหาด้านล่างด้วยการกำหนดค่าสภาพแวดล้อม แล้วเลือก "อัปเดต"
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
ตัวอย่างภาพหน้าจอ
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 เจ๋งสุดๆ