Vertex AI truy cập vào các điểm cuối dự đoán trực tuyến một cách riêng tư bằng PSC

1. Giới thiệu

Các máy chủ tại chỗ có thể truy cập vào một Dự đoán trực tuyến một cách tự nhiên thông qua Internet công cộng (lựa chọn 1) hoặc bằng cách sử dụng Cloud VPN hoặc Cloud Interconnect với Private Service Connect (PSC) (lựa chọn 2) từ mạng tại chỗ của bạn, cả hai đều cung cấp tính năng mã hoá SSL/TLS. Kết nối kết hợp với tính năng dự đoán trực tuyến qua kết nối liên mạng có hiệu suất cao hơn Internet, do đó, bạn nên dùng cho các ứng dụng quan trọng như minh hoạ trong Hình 1.

Trong hướng dẫn này, chúng ta sẽ minh hoạ cách sử dụng VPN có tính sẵn sàng cao (HA VPN) để truy cập riêng tư vào tính năng Dự đoán trực tuyến giữa hai mạng VPC có thể đóng vai trò là cơ sở cho khả năng kết nối riêng tư tại chỗ và nhiều đám mây.

Xin lưu ý rằng Vertex Online Prediction là một điểm cuối công khai. Do đó, bạn nên hạn chế quyền truy cập bằng cách sử dụng VPC Service Controls (VPC-SC) để tạo các ranh giới bảo mật nhằm cho phép hoặc từ chối quyền truy cập vào Vertex và các Google API khác. Hướng dẫn này không đề cập đến VPC-SC. Để biết thêm thông tin chi tiết, hãy tham khảo bài viết VPC Service Controls với Vertex AI

24a07ba49a7bcb16.png

Sản phẩm bạn sẽ tạo ra

Bạn sẽ thiết lập một mạng VPC có tên là on-prem-vpc để biểu thị một môi trường tại chỗ. Đối với việc triển khai của bạn, on-prem-vpc sẽ không tồn tại, thay vào đó, bạn sẽ sử dụng mạng kết hợp cho trung tâm dữ liệu tại cơ sở hoặc nhà cung cấp dịch vụ đám mây.

Bạn sẽ xây dựng một cấu trúc Private Service Connect toàn diện minh hoạ cách truy cập vào Dự đoán trực tuyến công khai thông qua Cloud NAT và riêng tư bằng PSC qua HA VPN theo thông tin chi tiết bên dưới.

b545c808b366341a.png

Sau khi dự đoán trực tuyến được triển khai trong Dự án trên Google Cloud, các trường hợp sử dụng sau đây sẽ được khám phá:

Quyền truy cập công khai vào tính năng dự đoán trực tuyến bao gồm những quyền sau:

  • Tạo một phiên bản GCE (nat-client) tận dụng NAT để truy cập Internet ra bên ngoài
  • Sử dụng CURL để suy luận dựa trên mô hình
  • Sử dụng TCPDUMP để xác thực rằng tính năng dự đoán trực tuyến được truy cập thông qua một VIP công khai

Quyền truy cập riêng tư vào tính năng dự đoán trực tuyến, bao gồm những nội dung sau:

  • Triển khai một mô hình đến điểm cuối dự đoán trực tuyến aVertex trong dự án
  • Tạo một điểm cuối Kết nối dịch vụ riêng tư (Googleapis) trong aiml-vpc
  • Xuất địa chỉ IP PSC qua bộ định tuyến đám mây dưới dạng một quảng cáo tuỳ chỉnh đến VPC tại chỗ
  • Tạo một thực thể GCE (private-client) và cập nhật tệp máy chủ etc/hosts bằng IP điểm cuối PSC
  • Sử dụng CURL để suy luận dựa trên mô hình
  • Sử dụng TCPDUMP để xác thực rằng tính năng dự đoán trực tuyến được truy cập thông qua địa chỉ IP điểm cuối PSC

Kiến thức bạn sẽ học được

  • Cách thiết lập một điểm cuối Private Service Connect
  • Cách quảng cáo IP điểm cuối PSC qua Cloud Router
  • Cách sử dụng TCPDUMP để xác thực quyền truy cập vào tính năng Dự đoán trực tuyến, cả công khai và riêng tư

Bạn cần có

  • Dự án trên Google Cloud

Quyền IAM

Quản trị viên mạng máy tính

Trình chỉnh sửa danh mục dịch vụ

Quản trị viên DNS

Quản trị viên mạng

Quản trị viên hạn mức

Quản trị viên Notebooks

Người dùng tài khoản dịch vụ

Quản trị viên bộ nhớ

Người dùng Vertex AI

Quản trị viên tài khoản dịch vụ

2. Trước khi bắt đầu

Cập nhật dự án để hỗ trợ hướng dẫn

Hướng dẫn này sử dụng $variables để hỗ trợ việc triển khai cấu hình gcloud trong Cloud Shell.

Trong Cloud Shell, hãy thực hiện các bước sau:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

3. Bật dịch vụ

Trong Cloud Shell, hãy thực hiện các bước sau:

gcloud services enable dns.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable iam.googleapis.com 
gcloud services enable compute.googleapis.com 
gcloud services enable notebooks.googleapis.com

4. Thiết lập aiml-vpc

Tạo aiml-vpc

Trong Cloud Shell, hãy thực hiện các bước sau:

gcloud compute networks create aiml-vpc --project=$projectid --subnet-mode=custom

Tạo mạng con sổ tay do người dùng quản lý

Trong Cloud Shell, hãy thực hiện các bước sau:

gcloud compute networks subnets create workbench-subnet --project=$projectid --range=172.16.10.0/28 --network=aiml-vpc --region=us-central1 --enable-private-ip-google-access

Cấu hình Cloud Router và NAT

Cloud NAT được dùng trong hướng dẫn tải gói phần mềm sổ tay vì thực thể sổ tay do người dùng quản lý không có địa chỉ IP ngoài. Cloud NAT cũng cung cấp các chức năng NAT xuất, tức là các máy chủ lưu trữ trên Internet không được phép bắt đầu giao tiếp với một sổ tay do người dùng quản lý, giúp tăng cường tính bảo mật.

Trong Cloud Shell, hãy tạo bộ định tuyến đám mây theo khu vực.

gcloud compute routers create cloud-router-us-central1-aiml-nat --network aiml-vpc --region us-central1

Trong Cloud Shell, hãy tạo cổng NAT đám mây theo khu vực.

gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-us-central1-aiml-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1

5. Thiết lập on-prem-vpc

Tạo on-prem-vpc

Trong Cloud Shell, hãy thực hiện các bước sau:

gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom

Tạo nat-subnet

Trong Cloud Shell, hãy thực hiện các bước sau:

gcloud compute networks subnets create nat-subnet --project=$projectid --range=192.168.10.0/28 --network=on-prem-vpc --region=us-central1

Tạo private-ip-subnet

Trong Cloud Shell, hãy thực hiện các bước sau:

gcloud compute networks subnets create private-ip-subnet --project=$projectid --range=192.168.20.0/28 --network=on-prem-vpc --region=us-central1

Cấu hình Cloud Router và NAT

Cloud NAT được dùng trong hướng dẫn để tải gói phần mềm xuống. Cloud NAT cũng cung cấp các chức năng NAT truyền dữ liệu ra bên ngoài. Điều này có nghĩa là các máy chủ lưu trữ trên Internet không được phép bắt đầu giao tiếp với máy tính, giúp tăng cường tính bảo mật.

Trong Cloud Shell, hãy tạo bộ định tuyến đám mây theo khu vực.

gcloud compute routers create cloud-router-us-central1-on-prem-nat --network on-prem-vpc --region us-central1

Trong Cloud Shell, hãy tạo cổng NAT đám mây theo khu vực.

gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-us-central1-on-prem-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1

6. Tạo điểm cuối Private Service Connect

Trong phần sau, bạn sẽ tạo một điểm cuối Kết nối dịch vụ riêng tư (PSC) để truy cập vào Vertex API từ on-prem-vpc. Địa chỉ IP 100.100.10.10 của PSC sẽ được quảng cáo từ aiml-vpc-cloud-router-vpn dưới dạng một quảng cáo bộ định tuyến tuỳ chỉnh cho mạng tại chỗ trong bước tiếp theo.

Từ Cloud Shell

gcloud compute addresses create psc-ip \
    --global \
    --purpose=PRIVATE_SERVICE_CONNECT \
    --addresses=100.100.10.10 \
    --network=aiml-vpc

Tạo điểm cuối PSC

Từ Cloud Shell

gcloud compute forwarding-rules create pscvertex \
    --global \
    --network=aiml-vpc \
    --address=psc-ip \
    --target-google-apis-bundle=all-apis

Liệt kê các điểm cuối Private Service Connect đã định cấu hình

Từ Cloud Shell

gcloud compute forwarding-rules list  \
--filter target="(all-apis OR vpc-sc)" --global

Mô tả các điểm cuối Private Service Connect đã định cấu hình

Từ Cloud Shell

gcloud compute forwarding-rules describe \
    pscvertex --global

7. Kết nối kết hợp

Trong phần sau, bạn sẽ tạo một Cloud Router cho phép bạn trao đổi các tuyến một cách linh hoạt giữa Đám mây riêng tư ảo (VPC) và mạng ngang hàng bằng cách sử dụng Border Gateway Protocol (BGP).

Cloud Router có thể thiết lập một phiên BGP qua đường hầm Cloud VPN để kết nối các mạng của bạn. Thiết bị này tự động tìm hiểu các dải địa chỉ IP mạng con mới và thông báo cho mạng ngang hàng của bạn.

Trong hướng dẫn này, bạn sẽ triển khai HA VPN giữa aiml-vpcon-prem-vpc.

Tạo cổng VPN có tính sẵn sàng cao cho aiml-vpc

Khi mỗi cổng được tạo, hai địa chỉ IPv4 bên ngoài sẽ được phân bổ tự động, mỗi địa chỉ cho một giao diện cổng.

Trong Cloud Shell, hãy tạo cổng HA VPN

gcloud compute vpn-gateways create aiml-vpn-gw \
   --network=aiml-vpc\
   --region=us-central1

Tạo cổng VPN có tính sẵn sàng cao cho on-prem-vpc

Khi mỗi cổng được tạo, hai địa chỉ IPv4 bên ngoài sẽ được phân bổ tự động, mỗi địa chỉ cho một giao diện cổng. Hãy ghi lại các địa chỉ IP này để sử dụng sau trong các bước định cấu hình.

Trong Cloud Shell, hãy tạo cổng HA VPN.

gcloud compute vpn-gateways create on-prem-vpn-gw \
   --network=on-prem-vpc\
   --region=us-central1

Xác thực việc tạo cổng VPN có tính sẵn sàng cao

Sử dụng bảng điều khiển, chuyển đến HYBRID CONNECTIVITY (KẾT NỐI KẾT HỢP) → VPN → CLOUD VPN GATEWAYS (CỔNG VPN TRÊN ĐÁM MÂY) rồi xác thực rằng các IP cổng đã được tạo.

66312b1b53c233d7.png

Tạo Cloud Router cho aiml-vpc

Trong Cloud Shell, hãy tạo Cloud Router nằm ở us-central1

gcloud compute routers create aiml-cr-us-central1 \
   --region=us-central1 \
   --network=aiml-vpc\
   --asn=65001

Tạo Cloud Router cho on-prem-vpc

Trong Cloud Shell, hãy tạo Cloud Router nằm ở us-central1

gcloud compute routers create on-prem-cr-us-central1 \
   --region=us-central1 \
   --network=on-prem-vpc \
   --asn=65002

Tạo đường hầm VPN cho aiml-vpc

Bạn sẽ tạo 2 đường hầm VPN trên mỗi cổng HA VPN.

Tạo đường hầm VPN0

Trong Cloud Shell, hãy tạo tunnel0:

gcloud compute vpn-tunnels create aiml-vpc-tunnel0 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router aiml-cr-us-central1 \
    --vpn-gateway aiml-vpn-gw \
    --interface 0

Tạo đường hầm VPN1

Trong Cloud Shell, hãy tạo tunnel1:

gcloud compute vpn-tunnels create aiml-vpc-tunnel1 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router aiml-cr-us-central1 \
    --vpn-gateway aiml-vpn-gw \
    --interface 1

Tạo đường hầm VPN cho on-prem-vpc

Bạn sẽ tạo 2 đường hầm VPN trên mỗi cổng HA VPN.

Tạo đường hầm VPN0

Trong Cloud Shell, hãy tạo tunnel0:

gcloud compute vpn-tunnels create on-prem-tunnel0 \
    --peer-gcp-gateway aiml-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router on-prem-cr-us-central1 \
    --vpn-gateway on-prem-vpn-gw \
    --interface 0

Tạo đường hầm VPN1

Trong Cloud Shell, hãy tạo tunnel1:

gcloud compute vpn-tunnels create on-prem-tunnel1 \
    --peer-gcp-gateway aiml-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router on-prem-cr-us-central1 \
    --vpn-gateway on-prem-vpn-gw \
    --interface 1

Xác thực việc tạo đường hầm VPN

Sử dụng bảng điều khiển, chuyển đến KẾT NỐI KẾT HỢP → VPN → ĐƯỜNG HẦM CLOUD VPN.

e8e13ebaed09f1.png

8. Thiết lập các thiết bị lân cận BGP

Tạo phiên BGP

Trong phần này, bạn sẽ định cấu hình các giao diện Cloud Router và các thiết bị ngang hàng BGP.

Tạo giao diện BGP và kết nối ngang hàng cho aiml-vpc

Trong Cloud Shell, hãy tạo giao diện BGP:

gcloud compute routers add-interface aiml-cr-us-central1 \
    --interface-name if-tunnel0-to-onprem \
    --ip-address 169.254.1.1 \
    --mask-length 30 \
    --vpn-tunnel aiml-vpc-tunnel0 \
    --region us-central1

Trong Cloud Shell, hãy tạo BGP ngang hàng:

gcloud compute routers add-bgp-peer aiml-cr-us-central1 \
    --peer-name bgp-on-premises-tunnel0 \
    --interface if-tunnel1-to-onprem \
    --peer-ip-address 169.254.1.2 \
    --peer-asn 65002 \
    --region us-central1

Trong Cloud Shell, hãy tạo giao diện BGP:

gcloud compute routers add-interface aiml-cr-us-central1 \
    --interface-name if-tunnel1-to-onprem \
    --ip-address 169.254.2.1 \
    --mask-length 30 \
    --vpn-tunnel aiml-vpc-tunnel1 \
    --region us-central1

Trong Cloud Shell, hãy tạo BGP ngang hàng:

gcloud compute routers add-bgp-peer aiml-cr-us-central1 \
    --peer-name bgp-on-premises-tunnel1 \
    --interface if-tunnel2-to-onprem \
    --peer-ip-address 169.254.2.2 \
    --peer-asn 65002 \
    --region us-central1

Tạo giao diện BGP và thiết lập kết nối ngang hàng cho on-prem-vpc

Trong Cloud Shell, hãy tạo giao diện BGP:

gcloud compute routers add-interface on-prem-cr-us-central1 \
    --interface-name if-tunnel0-to-aiml-vpc\
    --ip-address 169.254.1.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel0 \
    --region us-central1

Trong Cloud Shell, hãy tạo BGP ngang hàng:

gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
    --peer-name bgp-aiml-vpc-tunnel0 \
    --interface if-tunnel1-to-aiml-vpc\
    --peer-ip-address 169.254.1.1 \
    --peer-asn 65001 \
    --region us-central1

Trong Cloud Shell, hãy tạo giao diện BGP:

gcloud compute routers add-interface on-prem-cr-us-central1 \
    --interface-name if-tunnel1-to-aiml-vpc\
    --ip-address 169.254.2.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel1 \
    --region us-central1

Trong Cloud Shell, hãy tạo BGP ngang hàng:

gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
    --peer-name bgp-aiml-vpc-tunnel1\
    --interface if-tunnel2-to-aiml-vpc\
    --peer-ip-address 169.254.2.1 \
    --peer-asn 65001 \
    --region us-central1

Chuyển đến Hybrid CONNECTIVITY → VPN (Kết nối kết hợp → VPN) để xem thông tin chi tiết về đường hầm VPN.

cb91b4476a88acd3.png

Xác thực các tuyến đường đã học aiml-vpc qua HA VPN

Sử dụng bảng điều khiển, chuyển đến VPC network → VPC networks → aiml-vpc→ ROUTES → REGION → US-CENTRAL1 → VIEW

Quan sát aiml-vpc đã học được các tuyến đường từ nat-subnet và private-ip-subnet của on-prem-vpc

f407ed6e1a6233db.png

Xác thực rằng on-prem-vpc đã tìm hiểu workbench-subnet qua HA-VPN

Sử dụng bảng điều khiển, chuyển đến Mạng VPC → Mạng VPC → on-prem-vpc → TUYẾN ĐƯỜNG → KHU VỰC → US-CENTRAL1 → XEM

7957e5d898a9e7e0.png

9. Tạo quảng cáo tuỳ chỉnh về tuyến đường aiml-vpc

Bộ định tuyến đám mây aiml-cr-us-central1 không tự động thông báo IP điểm cuối Kết nối dịch vụ riêng tư vì mạng con chưa được định cấu hình trong VPC.

Thay vào đó, bạn sẽ cần tạo một quảng cáo tuyến đường tuỳ chỉnh từ bộ định tuyến đám mây aiml-cr-us-central cho Địa chỉ IP của điểm cuối 100.100.10.10 sẽ được quảng cáo cho môi trường tại chỗ qua BGP đến on-prem-vpc.

Trên bảng điều khiển, hãy chuyển đến HYBRID CONNECTIVITY (KẾT NỐI KẾT HỢP) → CLOUD ROUTERS (BỘ ĐỊNH TUYẾN TRÊN ĐÁM MÂY) → aiml-cr-us-central1, rồi chọn CHỈNH SỬA.

c8fb02ed59a5b068.png

Trong phần Tuyến đường được quảng cáo, hãy chọn mục Tạo tuyến đường tuỳ chỉnh, cập nhật các trường dựa trên ví dụ bên dưới, chọn XONG rồi nhấp vào LƯU.

5996464e3aae0665.png

f799082ab2cd7e31.png

Xác thực

Xác thực rằng on-prem-vpc đã tìm hiểu Địa chỉ IP của Điểm cuối PSC qua HA-VPN

Sử dụng bảng điều khiển, chuyển đến Mạng VPC → Mạng VPC → on-prem-vpc → TUYẾN ĐƯỜNG → KHU VỰC → US-CENTRAL1 → XEM

1b42673e6f940bf2.png

10. Tạo quảng cáo tuyến đường tuỳ chỉnh trên vpc tại chỗ

Theo mặc định, bộ định tuyến đám mây on-prem-vpc sẽ quảng cáo tất cả các mạng con, nhưng bạn chỉ cần private-ip-subnet.

Trong phần sau, hãy cập nhật quảng cáo tuyến đường từ bộ định tuyến đám mây on-prem-cr-us-central1.

Trên bảng điều khiển, hãy chuyển đến HYBRID CONNECTIVITY (KHẢ NĂNG KẾT NỐI KẾT HỢP) → CLOUD ROUTERS (BỘ ĐỊNH TUYẾN TRÊN ĐÁM MÂY) → on-prem-cr-us-central1, rồi chọn CHỈNH SỬA.

bd96bde9550d516a.png

Trong phần Tuyến đường được quảng cáo, hãy chọn mục Tạo tuyến đường tuỳ chỉnh, cập nhật các trường dựa trên ví dụ bên dưới, chọn XONG rồi nhấp vào LƯU.

f8b61f669a9cfeef.png

Xác thực

Xác thực rằng aiml-vpc đã tìm hiểu tuyến đường private-ip-subnet từ on-prem-vpc.

Sử dụng bảng điều khiển, chuyển đến VPC network → VPC networks → aiml-vpc → ROUTES → REGION → US-CENTRAL1 → VIEW

2b1a7a5f918e9f50.png

11. Tạo tài khoản dịch vụ do người dùng quản lý (Các phiên bản GCE)

Để cung cấp mức độ kiểm soát chi tiết cho Vertex API, bạn cần có một tài khoản dịch vụ do người dùng quản lý. Tài khoản này sẽ được áp dụng cho các phiên bản ứng dụng NAT và ứng dụng riêng tư. Sau khi được tạo, bạn có thể sửa đổi các quyền của tài khoản dịch vụ dựa trên yêu cầu của doanh nghiệp. Trong hướng dẫn này, tài khoản dịch vụ do người dùng quản lý (vertex-sa) sẽ được áp dụng các vai trò sau:

Bạn phải Service Account API trước khi tiếp tục.

Trong Cloud Shell, hãy tạo tài khoản dịch vụ.

gcloud iam service-accounts create gce-vertex-sa \
    --description="service account for vertex" \
    --display-name="gce-vertex-sa"

Trong Cloud Shell, hãy cập nhật tài khoản dịch vụ bằng vai trò quản trị viên phiên bản điện toán

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:gce-vertex-sa@$projectid.iam.gserviceaccount.com" --role="roles/compute.instanceAdmin.v1"

Trong Cloud Shell, hãy cập nhật tài khoản dịch vụ bằng vai trò Người dùng Vertex AI

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:gce-vertex-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"

12. Tạo tài khoản dịch vụ do người dùng quản lý (Sổ tay)

Trong phần sau, bạn sẽ tạo một tài khoản dịch vụ do người dùng quản lý và được liên kết với Vertex Workbench (Notebook) dùng trong hướng dẫn.

Trong hướng dẫn này, tài khoản dịch vụ sẽ có các vai trò sau:

Trong Cloud Shell, hãy tạo tài khoản dịch vụ.

gcloud iam service-accounts create user-managed-notebook-sa \
    --display-name="user-managed-notebook-sa"

Trong Cloud Shell, hãy cập nhật tài khoản dịch vụ bằng vai trò Quản trị viên bộ nhớ.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/storage.admin"

Trong Cloud Shell, hãy cập nhật tài khoản dịch vụ bằng vai trò Người dùng Vertex AI.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"

Trong Cloud Shell, hãy cập nhật tài khoản dịch vụ bằng vai trò Quản trị viên Artifact Registry.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"

Trong Cloud Shell, hãy liệt kê tài khoản dịch vụ và ghi lại địa chỉ email sẽ được dùng khi tạo sổ tay do người dùng quản lý.

gcloud iam service-accounts list

13. Tạo các phiên bản kiểm thử

Trong phần sau, bạn sẽ tạo các phiên bản kiểm thử để xác thực nhiều phương thức truy cập vào API Vertex, cụ thể là:

  • Phiên bản nat-client, sẽ sử dụng Cloud NAT để phân giải Vertex AI, do đó truy cập vào điểm cuối Dự đoán trực tuyến qua Internet
  • Phiên bản private-client sẽ sử dụng IP Private Service Connect 100.100.10.10 để truy cập vào điểm cuối Dự đoán trực tuyến qua HA-VPN.

Tạo thực thể nat-client trong Cloud Shell.

gcloud compute instances create nat-client \
    --zone=us-central1-a \
    --image-family=debian-11 \
    --image-project=debian-cloud \
    --subnet=nat-subnet \
    --service-account=vertex-sa@$projectid.iam.gserviceaccount.com \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --no-address \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump dnsutils -y"

Tạo thực thể private-client trong Cloud Shell.

gcloud compute instances create private-client \
    --zone=us-central1-a \
    --image-family=debian-11 \
    --image-project=debian-cloud \
    --subnet=private-ip-subnet \
    --service-account=vertex-sa@$projectid.iam.gserviceaccount.com \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --no-address \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump dnsutils -y"

Để cho phép Identity-Aware Proxy (IAP) kết nối với các thực thể máy ảo, hãy tạo một quy tắc tường lửa:

  • Áp dụng cho tất cả các phiên bản máy ảo mà bạn muốn có thể truy cập bằng IAP.
  • Cho phép lưu lượng truy cập vào từ dải IP 35.235.240.0/20. Dải này chứa tất cả địa chỉ IP mà IAP sử dụng để chuyển tiếp TCP.

Trong Cloud Shell, hãy tạo quy tắc tường lửa IAP.

gcloud compute firewall-rules create ssh-iap-on-prem-vpc \
    --network on-prem-vpc \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

14. Tạo sổ tay do người dùng quản lý

API sổ tay

Trong phần sau, hãy tạo một sổ tay do người dùng quản lý kết hợp với tài khoản dịch vụ đã tạo trước đó, user-managed-notebook-sa.

Tạo thực thể ứng dụng khách riêng tư trong Cloud Shell.

gcloud notebooks instances create workbench-tutorial \
      --vm-image-project=deeplearning-platform-release \
      --vm-image-family=common-cpu-notebooks \
      --machine-type=n1-standard-4 \
      --location=us-central1-a \
      --subnet-region=us-central1 \
      --subnet=workbench-subnet \
      --no-public-ip    --service-account=user-managed-notebook-sa@$projectid.iam.gserviceaccount.com

15. Triển khai Mô hình và Dự đoán trực tuyến

Trong phần sau, hãy sử dụng lớp học lập trìnhđược cung cấp,Vertex AI:Sử dụng các quy trình dự đoán tuỳ chỉnh bằng Sklearn để tiền xử lý và hậu xử lý dữ liệu cho các dự đoán bắt đầu từ Phần 7 vì bạn đã tạo một sổ tay ở bước trước. Sau khi triển khai mô hình, hãy quay lại hướng dẫn để bắt đầu phần tiếp theo.

ee68b7ba0cfd2746.png

16. Xác thực quyền truy cập vào Vertex API qua Internet

Trong phần sau, bạn sẽ đăng nhập vào thực thể, ứng dụng nat, và xác thực khả năng kết nối với Vertex AI bằng cách sử dụng dig và tcpdump đối với miền us-central1-aiplatform.googleapis.com dùng để phân giải các API Vertex.

Đăng nhập vào nat-client bằng IAP trong Cloud Shell để xác thực khả năng kết nối với Vertex API bằng cách thực hiện một lệnh dig đối với miền vertex us-central1-aiplatform.googleapis.com

gcloud compute ssh nat-client --project=$projectid --zone=us-central1-a --tunnel-through-iap

Thực hiện lệnh dig.

dig us-central1-aiplatform.googleapis.com

Ví dụ: lưu ý các IP công khai trong phản hồi DNS.

user@nat-client:~$ dig us-central1-aiplatform.googleapis.com

; <<>> DiG 9.16.42-Debian <<>> us-central1-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56761
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;us-central1-aiplatform.googleapis.com. IN A

;; ANSWER SECTION:
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.111.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.250.1.95
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.121.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.250.103.95
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.120.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.171.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.250.159.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.120.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.161.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.172.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.126.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.70.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.132.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.201.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.202.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.69.95

;; Query time: 4 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Thu Jun 29 01:35:57 UTC 2023
;; MSG SIZE  rcvd: 322

Từ hệ điều hành nat-client, hãy thực thi tcpdump để xác thực quy trình phân giải DNS khi thực hiện một lệnh curl đối với tính năng Dự đoán trực tuyến.

 sudo tcpdump -i any port 53 -n

Ví dụ:

user@nat-client:~$ sudo tcpdump -i any port 53 -n 
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes

Mở một thiết bị đầu cuối Cloud Shell mới bằng cách chọn "+". Sau khi thẻ mới mở ra, hãy cập nhật biến tên dự án.

Trong Cloud Shell, hãy cập nhật biến tên dự án.

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

Trong Cloud Shell 2, hãy thực hiện thao tác SSH đến thực thể nat-client.

gcloud compute ssh --zone "us-central1-a" "nat-client" --project "$projectid"

Trong phần sau, bạn sẽ tạo một tệp instances.json bằng trình chỉnh sửa sudo VI hoặc nano và chèn chuỗi dữ liệu dùng để lấy thông tin dự đoán từ mô hình đã triển khai.

Từ hệ điều hành nat-client, hãy tạo một tệp instances.json bằng chuỗi dữ liệu bên dưới:

{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

Ví dụ:

user@nat-client:$ more instances.json 
{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

user@nat-client:$

Lấy Mã nhận dạng điểm cuối dự đoán trực tuyến từ Cloud Console để dùng trong các bước tiếp theo.

Chuyển đến VERTEX AI → ONLINE PREDICTION (Vertex AI → Dự đoán trực tuyến)

237d413ccde1e95b.png

Từ hệ điều hành nat-client, hãy tạo các biến sau:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"

Ví dụ:

ENDPOINT_ID="3328226095324463104"

Từ nat-client os, hãy thực hiện một lệnh curl để nhận phản hồi từ mô hình.

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json

Ví dụ: lưu ý đến dự đoán thành công.

user@nat-client$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
{
  "predictions": [
    "$479.0",
    "$586.0"
  ],
  "deployedModelId": "1949163636186415104",
  "model": "projects/234086459238/locations/us-central1/models/947543727654567936",
  "modelDisplayName": "diamonds-cpr",
  "modelVersionId": "1"
}

17. Xác thực – Quyền truy cập Internet vào Vertex API

Bây giờ bạn đã thực thi quá trình dự đoán, hãy xem kết quả TCPDUMP (thiết bị đầu cuối 1) cho biết phiên bản nat-client (192.168.10.2) thực hiện một truy vấn DNS đến máy chủ DNS cục bộ 169.254.169.254 cho miền Vertex AI us-central1-aiplatform.googleapis.com. Kết quả của truy vấn DNS là Địa chỉ IP ảo (VIP) công khai cho các API Vertex như lưu ý bên dưới:

user@nat-client:~$ sudo tcpdump -i any port 53 -n
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
20:05:09.260937 ens4  Out IP 192.168.10.2.40782 > 169.254.169.254.53: 47190+ A? oauth2.googleapis.com. (39)
20:05:09.260946 ens4  Out IP 192.168.10.2.40782 > 169.254.169.254.53: 28075+ AAAA? oauth2.googleapis.com. (39)
20:05:09.263556 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.40782: 28075 4/0/0 AAAA 2607:f8b0:4001:c34::5f, AAAA 2607:f8b0:4001:c54::5f, AAAA 2607:f8b0:4001:c16::5f, AAAA 2607:f8b0:4001:c17::5f (151)
20:05:09.265018 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.40782: 47190 16/0/0 A 74.125.201.95, A 74.125.202.95, A 74.125.69.95, A 64.233.183.95, A 173.194.193.95, A 173.194.194.95, A 173.194.195.95, A 173.194.196.95, A 173.194.197.95, A 64.233.191.95, A 173.194.74.95, A 173.194.192.95, A 209.85.145.95, A 209.85.146.95, A 209.85.147.95, A 142.250.125.95 (295)
20:05:09.474478 ens4  Out IP 192.168.10.2.57356 > 169.254.169.254.53: 36008+ A? us-central1-aiplatform.googleapis.com. (55)
20:05:09.474488 ens4  Out IP 192.168.10.2.57356 > 169.254.169.254.53: 47020+ AAAA? us-central1-aiplatform.googleapis.com. (55)
20:05:09.477190 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.57356: 36008 16/0/0 A 173.194.194.95, A 173.194.195.95, A 173.194.196.95, A 173.194.197.95, A 173.194.74.95, A 173.194.192.95, A 209.85.145.95, A 209.85.146.95, A 209.85.147.95, A 142.250.125.95, A 142.250.136.95, A 142.250.148.95, A 209.85.200.95, A 209.85.234.95, A 142.250.152.95, A 142.250.128.95 (311)
20:05:09.478607 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.57356: 47020 4/0/0 AAAA 2607:f8b0:4001:c1b::5f, AAAA 2607:f8b0:4001:c0c::5f, AAAA 2607:f8b0:4001:c0e::5f, AAAA 2607:f8b0:4001:c1e::5f (167)

18. Bật quyền truy cập riêng tư vào các API của Vertex

Trong phần sau, bạn sẽ truy cập vào các API của Vertex bằng Private Service Connect qua mạng kết hợp (HA VPN) để truy cập riêng tư vào tính năng dự đoán trực tuyến. Trong ví dụ được dùng trong hướng dẫn, bạn sẽ cập nhật tệp máy chủ /etc/hosts trong thực thể private-client.

Trong môi trường tại chỗ, việc cập nhật một hoặc một vài tệp /etc/hosts của máy để kiểm thử là phù hợp, tuy nhiên, đối với môi trường phát hành công khai và quy mô lớn, việc tạo một vùng chuyển tiếp mới bằng cách sử dụng FQDN của điểm cuối PSC sẽ phù hợp hơn.

Ví dụ: điểm cuối psc được tạo trong hướng dẫn có tên là pscvertex, dịch thành pscvertex.p.googleapis.com.Khi sử dụng điểm cuối cho đỉnh, hãy thêm FQDN vào dịch vụ, ví dụ: us-central1-aiplatform-pscvertex.p.googleapis.com.

Việc cập nhật DNS tại cơ sở bằng điểm cuối PSC cũng yêu cầu tái cấu trúc các ứng dụng cục bộ để gọi FDQN, ví dụ: us-central1-aiplatform-pscvertex.p.googleapis.com thay vì điểm cuối công khai gốc us-central1-aiplatform.googleapis.com.

Những máy khách có thể được định cấu hình để sử dụng một điểm cuối tuỳ chỉnh có thể sử dụng tên DNS p.googleapis.com để gửi yêu cầu đến một điểm cuối.

Hãy xem tài liệu dành cho ứng dụng hoặc thư viện ứng dụng của bạn để biết thông tin về cách định cấu hình ứng dụng hoặc thư viện ứng dụng đó để sử dụng các điểm cuối tuỳ chỉnh. Ví dụ:

Mở một thiết bị đầu cuối Cloud Shell mới bằng cách chọn "+". Sau khi thẻ mới mở ra, hãy cập nhật biến tên dự án.

Từ Cloud Shell.

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

Đăng nhập vào private-client bằng IAP trong Cloud Shell mới để xác thực khả năng kết nối với Vertex API bằng cách thực hiện một lệnh dig đối với miền vertex us-central1-aiplatform.googleapis.com

Từ Cloud Shell, hãy đăng nhập vào thực thể hệ điều hành của ứng dụng riêng tư.

gcloud compute ssh private-client --project=$projectid --zone=us-central1-a --tunnel-through-iap

Thực hiện lệnh dig.

dig us-central1-aiplatform.googleapis.com

Ví dụ: lưu ý các IP công khai dựa trên phản hồi DNS.

user@private-client:~$ dig us-central1-aiplatform.googleapis.com

; <<>> DiG 9.16.42-Debian <<>> us-central1-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33311
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;us-central1-aiplatform.googleapis.com. IN A

;; ANSWER SECTION:
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.132.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.201.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.202.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.69.95
us-central1-aiplatform.googleapis.com. 300 IN A 64.233.182.95
us-central1-aiplatform.googleapis.com. 300 IN A 64.233.183.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.193.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.194.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.195.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.196.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.197.95
us-central1-aiplatform.googleapis.com. 300 IN A 64.233.191.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.74.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.192.95
us-central1-aiplatform.googleapis.com. 300 IN A 209.85.145.95
us-central1-aiplatform.googleapis.com. 300 IN A 209.85.146.95

;; Query time: 4 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Sun Jul 02 20:5

Cập nhật thực thể máy khách riêng tư /etc/hosts bằng trình chỉnh sửa sudo VI hoặc nano để tạo bản ghi FQDN Vertext AI us-central1-aiplatform.googleapis.com trỏ đến điểm cuối PSC 100.100.10.10, không cần thay đổi gì thêm.

Ví dụ:

user@private-client:~$ more /etc/hosts
127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

100.100.10.10 us-central1-aiplatform.googleapis.com
192.168.20.2 private-client.c.$projectid.internal private-client  # Added by Google
169.254.169.254 metadata.google.internal  # Added by Google

Từ hệ điều hành của ứng dụng riêng tư, hãy thực hiện lệnh PING đến điểm cuối Vertex API.

ping us-central1-aiplatform.googleapis.com

Ví dụ: PING trả về IP điểm cuối PSC nhưng không có phản hồi nào được mong đợi.

user@private-client:~$ ping us-central1-aiplatform.googleapis.com
PING us-central1-aiplatform.googleapis.com (100.100.10.10) 56(84) bytes of data.

Từ hệ điều hành máy khách riêng tư, hãy thực thi tcpdump để xác thực quá trình phân giải DNS và đường dẫn dữ liệu IP đến điểm cuối PSC khi thực hiện một lệnh curl đối với Dự đoán trực tuyến.

 sudo tcpdump -i any port 53 -n or host 100.100.10.10

Mở một thiết bị đầu cuối Cloud Shell thứ tư bằng cách chọn "+". Sau khi thẻ mới mở ra, hãy cập nhật biến tên dự án.

Trong Cloud Shell, hãy cập nhật biến tên dự án.

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

Trong Cloud Shell 4, hãy thực hiện ssh đến phiên thể private-client.

gcloud compute ssh --zone "us-central1-a" "private-client" --project "$projectid"

Trong phần sau, bạn sẽ tạo một tệp instances.json bằng trình chỉnh sửa sudo VI hoặc nano và chèn chuỗi dữ liệu dùng để lấy thông tin dự đoán từ mô hình đã triển khai.

Từ hệ điều hành của ứng dụng riêng tư, hãy tạo một tệp instances.json bằng chuỗi dữ liệu bên dưới:

{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

Ví dụ:

user@private-client:$ more instances.json 
{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

user@private-client:$

Từ hệ điều hành của ứng dụng khách riêng tư, hãy tạo các biến sau:

gcloud config list project
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"

Ví dụ:

ENDPOINT_ID="3328226095324463104"

Từ hệ điều hành máy khách riêng tư trong Cloud Shell 4, hãy thực hiện một lệnh curl để nhận phản hồi từ mô hình.

curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json

19. Xác thực – Quyền truy cập riêng tư vào Vertex API

Từ hệ điều hành private-client trong Cloud Shell 4, hãy lưu ý rằng IP điểm cuối PSC (100.100.10.10) được dùng để truy cập vào Vertex API.

user@private-client$ curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying 100.100.10.10:443...
* Connected to us-central1-aiplatform.googleapis.com (100.100.10.10) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=upload.video.google.com
*  start date: May 29 08:21:36 2023 GMT
*  expire date: Aug 21 08:21:35 2023 GMT
*  subjectAltName: host "us-central1-aiplatform.googleapis.com" matched cert's "*.googleapis.com"
*  issuer: C=US; O=Google Trust Services LLC; CN=GTS CA 1C3
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x55f2ab65c2c0)
> POST /v1/projects/$projectid/locations/us-central1/endpoints/3328226095324463104:predict HTTP/2
> Host: us-central1-aiplatform.googleapis.com
> user-agent: curl/7.74.0
> accept: */*
> authorization: Bearer ya29.a0AbVbY6NdCbIJYj0mQROeq-xYgQCw534TTtjRc1kBAEOimKCFxb3gqgD5AvhfefJatSNr33eW1YJirfQVMptFoqfjRoB-i8zEJJ_GGCVqhsVnpSOjK0hzJQSuo2YGjIiSe1o1zdo7lWmh1Px-vLe8FImieGkrQ1hqVaa6aCgYKAXgSARESFQFWKvPlUQ_FuKB2hrDJRyFDjupL1g0171
> content-type: application/json
> content-length: 154
> 
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
* We are completely uploaded and fine
< HTTP/2 200 
< content-type: application/json; charset=UTF-8
< x-vertex-ai-internal-prediction-backend: harpoon
< date: Mon, 03 Jul 2023 22:13:35 GMT
< vary: X-Origin
< vary: Referer
< vary: Origin,Accept-Encoding
< server: scaffolding on HTTPServer2
< cache-control: private
< x-xss-protection: 0
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< accept-ranges: none
< 
{
  "predictions": [
    "$479.0",
    "$586.0"
  ],
  "deployedModelId": "1949163636186415104",
  "model": "projects/234086459238/locations/us-central1/models/947543727654567936",
  "modelDisplayName": "diamonds-cpr",
  "modelVersionId": "1"
}
* Connection #0 to host us-central1-aiplatform.googleapis.com left intact

Từ thiết bị đầu cuối TCPDUMP trong Cloud Shell 3, chúng ta có thể xác thực rằng không có hoạt động tra cứu DNS nào đối với us-central1-aiplatform.googleapis.com vì tệp /etc/host được ưu tiên nhưng Địa chỉ IP PSC 100.100.10.10 đã được dùng trong đường dẫn dữ liệu.

user@private-client:~$ sudo tcpdump -i any port 53 -n or host 100.100.10.10
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
22:13:35.507625 ens4  Out IP 192.168.20.2.37004 > 169.254.169.254.53: 58585+ A? oauth2.googleapis.com. (39)
22:13:35.507631 ens4  Out IP 192.168.20.2.37004 > 169.254.169.254.53: 15580+ AAAA? oauth2.googleapis.com. (39)
22:13:35.511796 ens4  In  IP 169.254.169.254.53 > 192.168.20.2.37004: 58585 16/0/0 A 142.251.6.95, A 108.177.112.95, A 74.125.124.95, A 172.217.212.95, A 172.217.214.95, A 172.253.114.95, A 172.253.119.95, A 108.177.111.95, A 142.250.1.95, A 108.177.121.95, A 142.250.103.95, A 108.177.120.95, A 142.251.171.95, A 142.250.159.95, A 142.251.120.95, A 142.251.161.95 (295)
22:13:35.512002 ens4  In  IP 169.254.169.254.53 > 192.168.20.2.37004: 15580 4/0/0 AAAA 2607:f8b0:4001:c2b::5f, AAAA 2607:f8b0:4001:c18::5f, AAAA 2607:f8b0:4001:c5f::5f, AAAA 2607:f8b0:4001:c58::5f (151)
22:13:35.722145 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [S], seq 1951267724, win 65320, options [mss 1420,sackOK,TS val 1371205990 ecr 0,nop,wscale 7], length 0
22:13:35.730727 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [S.], seq 3198878726, ack 1951267725, win 65535, options [mss 1366,sackOK,TS val 67847676 ecr 1371205990,nop,wscale 8], length 0
22:13:35.730760 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [.], ack 1, win 511, options [nop,nop,TS val 1371205999 ecr 67847676], length 0
22:13:35.738339 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 1:518, ack 1, win 511, options [nop,nop,TS val 1371206006 ecr 67847676], length 517
22:13:35.739922 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [.], ack 518, win 261, options [nop,nop,TS val 67847688 ecr 1371206006], length 0
22:13:35.740860 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [.], seq 1:2709, ack 518, win 261, options [nop,nop,TS val 67847689 ecr 1371206006], length 2708
22:13:35.740863 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [P.], seq 2709:4699, ack 518, win 261, options [nop,nop,TS val 67847689 ecr 1371206006], length 1990
22:13:35.740874 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [.], ack 2709, win 497, options [nop,nop,TS val 1371206009 ecr 67847689], length 0
22:13:35.740886 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [.], ack 4699, win 485, options [nop,nop,TS val 1371206009 ecr 67847689], length 0
22:13:35.742709 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 518:598, ack 4699, win 501, options [nop,nop,TS val 1371206011 ecr 67847689], length 80
22:13:35.743996 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 598:644, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 46
22:13:35.744011 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 644:693, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 49
22:13:35.744082 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 693:728, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 35
22:13:35.744165 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 728:1069, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 341

Bạn đã xác thực thành công việc kết nối với tính năng dự đoán trực tuyến thông qua một điểm cuối công khai trên Internet và riêng tư bằng cách sử dụng mạng kết hợp và Private Service Connect (googleapis). Thoát khỏi hệ điều hành và quay lại dấu nhắc Cloud Shell.

20. Dọn dẹp

Trong Cloud Shell, hãy xoá các thành phần hướng dẫn.

gcloud compute forwarding-rules delete pscvertex --global --quiet

gcloud compute instances delete workbench-tutorial --zone=us-central1-a --quiet 

gcloud compute addresses delete psc-ip --global --quiet

gcloud compute networks subnets delete workbench-subnet --region=us-central1 --quiet 

gcloud compute vpn-tunnels delete aiml-vpc-tunnel0 aiml-vpc-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=us-central1 --quiet

gcloud compute vpn-gateways delete aiml-vpn-gw on-prem-vpn-gw --region=us-central1 --quiet 

gcloud compute routers delete aiml-cr-us-central1 cloud-router-us-central1-aiml-nat --region=us-central1 --quiet 

gcloud compute routers delete cloud-router-us-central1-on-prem-nat on-prem-cr-us-central1 --region=us-central1 --quiet

gcloud compute instances delete nat-client private-client --zone=us-central1-a --quiet

gcloud compute firewall-rules delete ssh-iap-on-prem-vpc --quiet

gcloud compute networks subnets delete nat-subnet  private-ip-subnet --region=us-central1 --quiet

gcloud compute networks delete on-prem-vpc --quiet

gcloud compute networks delete aiml-vpc --quiet

Xoá các thành phần của Vertex

Để xoá hình ảnh vùng chứa, hãy chuyển đến Artifact Registry, chọn kho lưu trữ mà bạn đã tạo rồi chọn Xoá

616a3108bc2e48c8.png

Để xoá Thùng lưu trữ, hãy sử dụng trình đơn Điều hướng trong Cloud Console, duyệt tìm Bộ nhớ, chọn thùng của bạn rồi nhấp vào Xoá:

eddd1f9fdfaede8.png

Huỷ triển khai mô hình khỏi điểm cuối. Chuyển đến Vertex AI → Online prediction (Dự đoán trực tuyến) → Select diamonds-cpr_endpoint (Chọn diamonds-cpr_endpoint) → Undeploy Model from endpoint (Huỷ triển khai Mô hình từ điểm cuối) → Undeploy (Huỷ triển khai)

bc95f092d21d4698.png

Xoá mô hình. Chuyển đến Vertex AI → Model Registry → Delete Model (Xoá mô hình)

ec4afff091e11606.png

Xoá điểm cuối Dự đoán trực tuyến. Chuyển đến VertexAI → Dự đoán trực tuyến → Chọn diamonds-cpr_endpoint → Xoá điểm cuối

7453760299bdfb9a.png

21. Xin chúc mừng

Xin chúc mừng! Bạn đã định cấu hình và xác thực thành công việc kết nối với tính năng Dự đoán trực tuyến một cách tự nhiên bằng Internet và riêng tư bằng Private Service Connect và mạng kết hợp.

Bạn đã tạo nat-client và private-client, đồng thời sử dụng TCPDUMP để xác thực địa chỉ IP dùng để truy cập vào Vertex API. Ngoài ra, bạn cũng đã tìm hiểu về Private Service Connect (googleapis) và cách sử dụng dịch vụ này để cô lập các ứng dụng tại chỗ và đa đám mây bằng cách tận dụng điểm cuối PSC của khách hàng.

Cosmopup cho rằng các hướng dẫn rất hữu ích!!

e6d3675ca7c6911f.jpeg

Tiếp theo là gì?

Hãy xem một số hướng dẫn này...

Tài liệu đọc thêm và video

Tài liệu tham khảo