1. Wprowadzenie
Hosty lokalne mogą uzyskiwać dostęp do prognozowania online natywnie przez internet publiczny (opcja 1) lub przy użyciu Cloud VPN lub Cloud Interconnect z Private Service Connect (PSC) (opcja 2) z sieci lokalnej. Obie opcje oferują szyfrowanie SSL/TLS. Połączenie hybrydowe z prognozowaniem online za pomocą połączenia wzajemnego jest wydajniejsze niż połączenie internetowe, dlatego jest zalecane w przypadku aplikacji o krytycznym znaczeniu, co ilustruje rysunek 1.
W tym samouczku pokażemy, jak używać sieci VPN o wysokiej dostępności (HA VPN) do prywatnego dostępu do prognozowania online między dwiema sieciami VPC, które mogą stanowić podstawę prywatnych połączeń wielochmurowych i lokalnych.
Pamiętaj, że prognozowanie online w Vertex AI to publiczny punkt końcowy, dlatego warto ograniczyć dostęp za pomocą Ustawień usługi VPC, aby utworzyć bezpieczne granice, które pozwolą zezwalać na dostęp do Vertex AI i innych interfejsów Google API lub go odmawiać. Ten samouczek nie obejmuje Ustawień usługi VPC. Więcej informacji znajdziesz w artykule Ustawienia usługi VPC w Vertex AI.

Co utworzysz
Skonfigurujesz sieć VPC o nazwie on-prem-vpc, która będzie reprezentować środowisko lokalne. W Twoim wdrożeniu on-prem-vpc nie będzie istnieć. Zamiast tego będzie używana sieć hybrydowa łącząca lokalne centrum danych lub dostawcę chmury.
Zbudujesz kompleksową architekturę Private Service Connect, która ilustruje dostęp do prognoz online publicznie przez Cloud NAT i prywatnie przy użyciu PSC przez sieć VPN o wysokiej dostępności zgodnie ze szczegółami poniżej.

Po wdrożeniu prognozowania online w projekcie Google Cloud zostaną zbadane te przypadki użycia:
Dostęp publiczny do prognoz online obejmuje:
- Utwórz instancję GCE (nat-client), która korzysta z NAT na potrzeby wychodzącego dostępu do internetu.
- Wnioskowanie na podstawie modelu za pomocą CURL
- Użyj narzędzia TCPDUMP, aby sprawdzić, czy dostęp do prognozowania online jest uzyskiwany za pomocą publicznego adresu VIP.
Prywatny dostęp do prognozowania online obejmuje:
- Wdrożenie modelu w punkcie końcowym prognoz online Vertex w projekcie
- Utwórz punkt końcowy usługi Private Service Connect (Googleapis) w sieci VPC aiml-vpc.
- Eksportuj adres IP PSC przez router Cloud Router jako niestandardowe rozgłaszanie do lokalnej sieci VPC.
- Utwórz instancję GCE (private-client) i zaktualizuj plik etc/hosts za pomocą adresu IP punktu końcowego PSC.
- Używanie CURL do wnioskowania na podstawie modelu
- Użyj narzędzia TCPDUMP, aby sprawdzić, czy prognozowanie online jest dostępne za pomocą adresu IP punktu końcowego PSC.
Czego się nauczysz
- Konfigurowanie punktu końcowego Private Service Connect
- Jak reklamować adres IP punktu końcowego PSC za pomocą routera Cloud Router
- Jak używać narzędzia TCPDUMP do weryfikowania dostępu do prognozowania online (publicznego i prywatnego)
Czego potrzebujesz
- Projekt Google Cloud
Uprawnienia
2. Zanim zaczniesz
Aktualizowanie projektu na potrzeby samouczka
W tym samouczku używamy zmiennych $variables, aby ułatwić implementację konfiguracji gcloud w Cloud Shell.
W Cloud Shell wykonaj te czynności:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. Włącz usługi
W Cloud Shell wykonaj te czynności:
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. Konfiguracja aiml-vpc
Utwórz sieć aiml-vpc
W Cloud Shell wykonaj te czynności:
gcloud compute networks create aiml-vpc --project=$projectid --subnet-mode=custom
Tworzenie podsieci notatnika zarządzanego przez użytkownika
W Cloud Shell wykonaj te czynności:
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
Konfiguracja routera Cloud Router i NAT
W samouczku do pobierania pakietów oprogramowania notatnika używana jest usługa Cloud NAT, ponieważ instancja notatnika zarządzana przez użytkownika nie ma zewnętrznego adresu IP. Cloud NAT oferuje też funkcje NAT ruchu wychodzącego, co oznacza, że hosty internetowe nie mogą inicjować komunikacji z notebookiem zarządzanym przez użytkownika, co zwiększa bezpieczeństwo.
W Cloud Shell utwórz regionalny router Cloud Router.
gcloud compute routers create cloud-router-us-central1-aiml-nat --network aiml-vpc --region us-central1
W Cloud Shell utwórz regionalną bramę Cloud NAT.
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. Konfiguracja lokalnej sieci VPC
Utwórz sieć lokalną VPC
W Cloud Shell wykonaj te czynności:
gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom
Utwórz podsieć nat-subnet
W Cloud Shell wykonaj te czynności:
gcloud compute networks subnets create nat-subnet --project=$projectid --range=192.168.10.0/28 --network=on-prem-vpc --region=us-central1
Utwórz podsieć private-ip-subnet
W Cloud Shell wykonaj te czynności:
gcloud compute networks subnets create private-ip-subnet --project=$projectid --range=192.168.20.0/28 --network=on-prem-vpc --region=us-central1
Konfiguracja routera Cloud Router i NAT
W samouczku Cloud NAT jest używany do pobierania pakietów oprogramowania. Cloud NAT oferuje też funkcje NAT ruchu wychodzącego, co oznacza, że hosty internetowe nie mogą inicjować komunikacji z zasobami obliczeniowymi, co zwiększa bezpieczeństwo.
W Cloud Shell utwórz regionalny router Cloud Router.
gcloud compute routers create cloud-router-us-central1-on-prem-nat --network on-prem-vpc --region us-central1
W Cloud Shell utwórz regionalną bramę Cloud NAT.
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. Utwórz punkt końcowy Private Service Connect.
W następnej sekcji utworzysz punkt końcowy Private Service Connect (PSC), który będzie używany do uzyskiwania dostępu do interfejsu Vertex API z sieci lokalnej VPC. Adres IP PSC 100.100.10.10 będzie rozgłaszany z routera Cloud Router aiml-vpc-cloud-router-vpn jako niestandardowe rozgłaszanie routera do sieci lokalnej w kolejnym kroku.
Z Cloud Shell
gcloud compute addresses create psc-ip \
--global \
--purpose=PRIVATE_SERVICE_CONNECT \
--addresses=100.100.10.10 \
--network=aiml-vpc
Tworzenie punktu końcowego PSC
Z Cloud Shell
gcloud compute forwarding-rules create pscvertex \
--global \
--network=aiml-vpc \
--address=psc-ip \
--target-google-apis-bundle=all-apis
Wyświetlanie listy skonfigurowanych punktów końcowych usługi Private Service Connect
Z Cloud Shell
gcloud compute forwarding-rules list \
--filter target="(all-apis OR vpc-sc)" --global
Opisywanie skonfigurowanych punktów końcowych Private Service Connect
Z Cloud Shell
gcloud compute forwarding-rules describe \
pscvertex --global
7. Połączenia hybrydowe
W sekcji poniżej utworzysz router Cloud Router, który umożliwi Ci dynamiczną wymianę tras między Twoim prywatnym środowiskiem wirtualnym w chmurze (VPC) a siecią równorzędną za pomocą protokołu BGP.
Router Cloud Router może skonfigurować sesję BGP w tunelu Cloud VPN, aby połączyć Twoje sieci. Automatycznie uczy się nowych zakresów adresów IP podsieci i ogłasza je w sieci równorzędnej.
W tym samouczku wdrożysz sieć VPN o wysokiej dostępności między sieciami aiml-vpc i on-prem-vpc.
Utwórz bramę sieci VPN o wysokiej dostępności dla sieci aiml-vpc.
Podczas tworzenia każdej bramy automatycznie przydzielane są 2 zewnętrzne adresy IPv4, po jednym dla każdego interfejsu bramy.
W Cloud Shell utwórz bramę sieci VPN o wysokiej dostępności.
gcloud compute vpn-gateways create aiml-vpn-gw \
--network=aiml-vpc\
--region=us-central1
Utwórz bramę sieci VPN o wysokiej dostępności dla sieci on-prem-vpc.
Podczas tworzenia każdej bramy automatycznie przydzielane są 2 zewnętrzne adresy IPv4, po jednym dla każdego interfejsu bramy. Zapisz te adresy IP, aby użyć ich później w krokach konfiguracji.
W Cloud Shell utwórz bramę sieci VPN o wysokiej dostępności.
gcloud compute vpn-gateways create on-prem-vpn-gw \
--network=on-prem-vpc\
--region=us-central1
Sprawdzanie tworzenia bramy sieci VPN o wysokiej dostępności
W konsoli otwórz POŁĄCZENIA HYBRYDOWE → VPN → BRAMY SIECI VPN CLOUD i sprawdź, czy adresy IP bramy zostały wygenerowane.

Utwórz router Cloud Router dla sieci aiml-vpc
W Cloud Shell utwórz router Cloud Router w regionie us-central1.
gcloud compute routers create aiml-cr-us-central1 \
--region=us-central1 \
--network=aiml-vpc\
--asn=65001
Utwórz router Cloud Router dla sieci lokalnej VPC
W Cloud Shell utwórz router Cloud Router w regionie us-central1.
gcloud compute routers create on-prem-cr-us-central1 \
--region=us-central1 \
--network=on-prem-vpc \
--asn=65002
Utwórz tunele VPN dla sieci VPC aiml-vpc
W każdej bramie sieci VPN o wysokiej dostępności utworzysz 2 tunele VPN.
Utwórz tunel VPN0
W Cloud Shell utwórz 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
Utwórz tunel VPN1
W Cloud Shell utwórz tunel1:
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
Utwórz tunele VPN dla sieci lokalnej VPC
W każdej bramie sieci VPN o wysokiej dostępności utworzysz 2 tunele VPN.
Utwórz tunel VPN0
W Cloud Shell utwórz 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
Utwórz tunel VPN1
W Cloud Shell utwórz tunel1:
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
Sprawdzanie tworzenia tunelu VPN
W konsoli przejdź do POŁĄCZENIA HYBRYDOWE → VPN → TUNELE CLOUD VPN.

8. Ustanawianie sąsiadów BGP
Tworzenie sesji BGP
W tej sekcji skonfigurujesz interfejsy routera Cloud Router i peery w sieci BGP.
Utwórz interfejs BGP i połączenie równorzędne dla sieci aiml-vpc
W Cloud Shell utwórz interfejs 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
W Cloud Shell utwórz węzeł BGP:
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
W Cloud Shell utwórz interfejs 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
W Cloud Shell utwórz węzeł BGP:
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
Tworzenie interfejsu BGP i połączenia równorzędnego dla lokalnej sieci VPC
W Cloud Shell utwórz interfejs 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
W Cloud Shell utwórz węzeł BGP:
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
W Cloud Shell utwórz interfejs 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
W Cloud Shell utwórz węzeł BGP:
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
Aby wyświetlić szczegóły tunelu VPN, kliknij POŁĄCZENIE HYBRYDOWE → VPN.

Weryfikowanie zapamiętanych tras aiml-vpc w sieci VPN o wysokiej dostępności
W konsoli wybierz Sieć VPC → Sieci VPC → aiml-vpc → TRASY → REGION → US-CENTRAL1 → WYŚWIETL.
Sprawdź, czy sieć aiml-vpc nauczyła się zapamiętanych tras z lokalnej sieci on-prem-vpc nat-subnet i private-ip-subnet.

Sprawdź, czy sieć lokalna on-prem-vpc nauczyła się podsieci workbench-subnet przez sieć VPN o wysokiej dostępności.
W konsoli wybierz Sieć VPC → Sieci VPC → on-prem-vpc → TRASY → REGION → US-CENTRAL1 → WYŚWIETL.

9. Tworzenie niestandardowych reklam tras aiml-vpc
Adres IP punktu końcowego usługi Private Service Connect nie jest automatycznie reklamowany przez router w chmurze aiml-cr-us-central1, ponieważ podsieć nie jest skonfigurowana w sieci VPC.
Zamiast tego musisz utworzyć niestandardowe rozgłaszanie tras z routera Cloud Router aiml-cr-us-central dla adresu IP punktu końcowego 100.100.10.10, który będzie rozgłaszany w środowisku lokalnym przez BGP do sieci VPC on-prem-vpc.
W konsoli kliknij kolejno POŁĄCZENIA HYBRYDOWE → ROUTERY W CHMURZE → aiml-cr-us-central1, a następnie EDYTUJ.

W sekcji Reklamowane trasy wybierz opcję Utwórz trasy niestandardowe, zaktualizuj pola na podstawie poniższego przykładu, kliknij GOTOWE, a następnie ZAPISZ.

Weryfikacja
Sprawdź, czy sieć VPC w lokalu nauczyła się adresu IP punktu końcowego PSC przez sieć VPN o wysokiej dostępności.
W konsoli wybierz Sieć VPC → Sieci VPC → on-prem-vpc → TRASY → REGION → US-CENTRAL1 → WYŚWIETL.

10. Tworzenie niestandardowych rozgłaszanych tras w lokalnej sieci VPC
Router Cloud Router w sieci lokalnej VPC domyślnie rozgłasza wszystkie podsieci, ale potrzebna jest tylko podsieć private-ip-subnet.
W sekcji poniżej zaktualizuj rozgłaszanie tras z lokalnego routera chmurowego on-prem-cr-us-central1.
W konsoli otwórz HYBRID CONNECTIVITY → CLOUD ROUTERS → lokalny-cr-us-central1, a następnie kliknij EDIT (EDYTUJ).

W sekcji Reklamowane trasy wybierz opcję Utwórz trasy niestandardowe, zaktualizuj pola na podstawie poniższego przykładu, kliknij GOTOWE, a następnie ZAPISZ.

Weryfikacja
Sprawdź, czy sieć aiml-vpc nauczyła się trasy private-ip-subnet z lokalnej sieci on-prem-vpc.
W konsoli wybierz Sieć VPC → Sieci VPC → aiml-vpc → TRASY → REGION → US-CENTRAL1 → WYŚWIETL.

11. Tworzenie konta usługi zarządzanego przez użytkownika (instancje GCE)
Aby zapewnić precyzyjną kontrolę nad interfejsem Vertex API, wymagane jest konto usługi zarządzane przez użytkownika, które będzie stosowane w przypadku instancji klienta NAT i prywatnego. Po wygenerowaniu uprawnienia konta usługi można modyfikować w zależności od potrzeb biznesowych. W tym samouczku do konta usługi zarządzanego przez użytkownika, vertex-sa, zostaną przypisane te role:
Zanim przejdziesz dalej, musisz interfejs Service Account API.
W Cloud Shell utwórz konto usługi.
gcloud iam service-accounts create gce-vertex-sa \
--description="service account for vertex" \
--display-name="gce-vertex-sa"
W Cloud Shell zaktualizuj konto usługi, przypisując mu rolę administratora instancji Compute Engine.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:gce-vertex-sa@$projectid.iam.gserviceaccount.com" --role="roles/compute.instanceAdmin.v1"
W Cloud Shell zaktualizuj konto usługi, przypisując mu rolę użytkownika Vertex AI.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:gce-vertex-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
12. Tworzenie konta usługi zarządzanego przez użytkownika (notatnik)
W następnej sekcji utworzysz konto usługi zarządzane przez użytkownika, które będzie powiązane z Vertex Workbench (notatnikiem) używanym w samouczku.
W tym samouczku do konta usługi zostaną przypisane te role:
W Cloud Shell utwórz konto usługi.
gcloud iam service-accounts create user-managed-notebook-sa \
--display-name="user-managed-notebook-sa"
W Cloud Shell zaktualizuj konto usługi, przypisując mu rolę Administrator miejsca na dane.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/storage.admin"
W Cloud Shell zaktualizuj konto usługi, przypisując mu rolę Użytkownik Vertex AI.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
W Cloud Shell zaktualizuj konto usługi, przypisując mu rolę Administrator Artifact Registry.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"
W Cloud Shell wyświetl listę kont usługi i zanotuj adres e-mail, który będzie używany podczas tworzenia notatnika zarządzanego przez użytkownika.
gcloud iam service-accounts list
13. Utworzono instancje testowe
W następnej sekcji utworzysz instancje testowe, aby sprawdzić różne metody uzyskiwania dostępu do interfejsów API Vertex, a w szczególności:
- Instancja
nat-client,będzie używać Cloud NAT do rozpoznawania Vertex AI, a tym samym uzyskiwania dostępu do punktu końcowego prognozowania online przez internet. - Instancja
private-clientbędzie używać adresu IP usługi Private Service Connect 100.100.10.10, aby uzyskać dostęp do punktu końcowego prognozowania online przez sieć VPN o wysokiej dostępności.
W Cloud Shell utwórz instancję nat-client.
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"
W Cloud Shell utwórz instancję private-client.
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"
Aby umożliwić Identity-Aware Proxy (IAP) połączenie z instancjami maszyn wirtualnych, utwórz regułę zapory sieciowej, która:
- Dotyczy wszystkich instancji maszyn wirtualnych, które mają być dostępne przez IAP.
- Zezwala na ruch przychodzący z zakresu adresów IP 35.235.240.0/20. Ten zakres zawiera wszystkie adresy IP, których IAP używa do przekierowywania TCP.
W Cloud Shell utwórz regułę zapory sieciowej 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. Tworzenie notatnika zarządzanego przez użytkownika
W następnej sekcji utwórz notatnik zarządzany przez użytkownika, który będzie korzystać z utworzonego wcześniej konta usługi user-managed-notebook-sa.
W Cloud Shell utwórz instancję private-client.
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. Wdrażanie modelu i prognozowanie online
W następnej sekcji skorzystaj z tego samouczka: Vertex AI: używanie niestandardowych procedur prognozowania z Sklearn do przetwarzania wstępnego i końcowego danych na potrzeby prognoz. Zacznij od sekcji 7, ponieważ w poprzednim kroku utworzono już notatnik. Po wdrożeniu modelu wróć do samouczka, aby rozpocząć następną sekcję.

16. Sprawdzanie dostępu do interfejsu Vertex API przez internet
W następnej sekcji zalogujesz się w instancji nat-client i sprawdzisz łączność z Vertex AI za pomocą poleceń dig i tcpdump w odniesieniu do domeny us-central1-aiplatform.googleapis.com używanej do rozpoznawania interfejsów API Vertex.
Zaloguj się w nat-client za pomocą IAP w Cloud Shell, aby sprawdzić łączność z interfejsem Vertex API, wykonując polecenie dig w domenie vertex us-central1-aiplatform.googleapis.com.
gcloud compute ssh nat-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
Wykonaj polecenie dig.
dig us-central1-aiplatform.googleapis.com
Zwróć uwagę na przykład na publiczne adresy IP w odpowiedzi 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
W systemie operacyjnym klienta NAT wykonaj polecenie tcpdump, aby sprawdzić rozpoznawanie nazw DNS podczas wykonywania polecenia curl względem prognozowania online.
sudo tcpdump -i any port 53 -n
Przykład:
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
Otwórz nowy terminal Cloud Shell, klikając „+”. Gdy otworzy się nowa karta, zaktualizuj zmienną nazwy projektu.
W Cloud Shell zaktualizuj zmienną nazwy projektu.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
W Cloud Shell 2 połącz się przez SSH z instancją nat-client.
gcloud compute ssh --zone "us-central1-a" "nat-client" --project "$projectid"
W następnej sekcji utworzysz plik instances.json za pomocą edytora sudo VI lub nano i wstawisz ciąg danych używany do uzyskiwania prognoz z wdrożonego modelu.
W systemie operacyjnym klienta NAT utwórz plik instances.json z ciągiem danych poniżej:
{"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]]}
Przykład:
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:$
Uzyskaj identyfikator punktu końcowego prognozowania online z konsoli Google Cloud, który będzie używany w kolejnych krokach.
Otwórz VERTEX AI → PROGNOZOWANIE ONLINE.

W systemie operacyjnym klienta NAT utwórz te zmienne:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"
Przykład:
ENDPOINT_ID="3328226095324463104"
W systemie operacyjnym klienta NAT wykonaj polecenie curl, aby uzyskać odpowiedź od modelu.
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
Przykład: zwróć uwagę na udaną prognozę.
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. Weryfikacja – dostęp do internetu w przypadku interfejsu Vertex API
Po wykonaniu prognozy przyjrzyjmy się wynikom TCPDUMP (terminal 1), które wskazują, że instancja nat-client (192.168.10.2) wykonuje zapytanie DNS do lokalnego serwera DNS 169.254.169.254 dotyczące domeny Vertex AI us-central1-aiplatform.googleapis.com. Wynikiem zapytania DNS są publiczne wirtualne adresy IP (VIP) interfejsów API Vertex, jak podano poniżej:
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. Włączanie prywatnego dostępu do interfejsów Vertex API
W następnej sekcji uzyskasz dostęp do interfejsów API Vertex za pomocą Private Service Connect przez sieć hybrydową (sieć VPN o wysokiej dostępności), aby prywatnie uzyskać prognozę online. W przykładzie używanym w samouczku zaktualizujesz plik /etc/hosts na instancji private-client.
W środowisku lokalnym aktualizacja pliku /etc/hosts na jednym lub kilku komputerach na potrzeby testów jest odpowiednia, ale w przypadku środowisk produkcyjnych i na dużą skalę bardziej pożądane jest utworzenie nowej strefy przekazywania za pomocą nazwy FQDN punktu końcowego PSC.
Na przykład punkt końcowy PSC utworzony w samouczku ma nazwę pscvertex, która po użyciu punktu końcowego dla Vertex jest tłumaczona na pscvertex.p.googleapis.com. W przypadku Vertex dołącz do FQDN usługę, np. us-central1-aiplatform-pscvertex.p.googleapis.com.
Zaktualizowanie lokalnego DNS za pomocą punktu końcowego PSC wymaga też refaktoryzacji aplikacji lokalnych, aby wywoływały w pełni kwalifikowaną nazwę domeny, np.us-central1-aiplatform-pscvertex.p.googleapis.com, zamiast natywnego publicznego punktu końcowego us-central1-aiplatform.googleapis.com.
Klienci, których można skonfigurować tak, aby korzystali z niestandardowego punktu końcowego, mogą używać nazw DNS p.googleapis.com do wysyłania żądań do punktu końcowego.
Informacje o konfigurowaniu klienta lub biblioteki klienta do korzystania z niestandardowych punktów końcowych znajdziesz w dokumentacji. Na przykład:
- Python: możesz skonfigurować punkt końcowy API w klasie opcji klienta w pakiecie google-api-core.
- Możesz skonfigurować WithEndpoint w pakiecie opcji klienta w pakiecie api.
- gcloud: You can configure api_endpoint_overrides
Otwórz nowy terminal Cloud Shell, klikając „+”. Gdy otworzy się nowa karta, zaktualizuj zmienną nazwy projektu.
W Cloud Shell.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
Zaloguj się w prywatnym kliencie za pomocą IAP w nowym Cloud Shell, aby sprawdzić łączność z interfejsem Vertex API, wykonując polecenie dig w domenie Vertex us-central1-aiplatform.googleapis.com.
W Cloud Shell zaloguj się w instancji systemu operacyjnego klienta prywatnego.
gcloud compute ssh private-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
Wykonaj polecenie dig.
dig us-central1-aiplatform.googleapis.com
Na przykład zwróć uwagę na publiczne adresy IP na podstawie odpowiedzi 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
Zaktualizuj plik /etc/hosts instancji klienta prywatnego za pomocą edytora sudo VI lub nano, aby utworzyć rekord w pełni kwalifikowanej nazwy domeny Vertex AI us-central1-aiplatform.googleapis.com wskazujący punkt końcowy PSC 100.100.10.10. Nie musisz wprowadzać żadnych innych zmian.
Przykład:
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
Z systemu operacyjnego klienta prywatnego wykonaj polecenie PING do punktu końcowego interfejsu Vertex API.
ping us-central1-aiplatform.googleapis.com
Na przykład PING zwraca adres IP punktu końcowego PSC, ale nie oczekuje odpowiedzi.
user@private-client:~$ ping us-central1-aiplatform.googleapis.com
PING us-central1-aiplatform.googleapis.com (100.100.10.10) 56(84) bytes of data.
Na urządzeniu z prywatnym systemem operacyjnym klienta wykonaj polecenie tcpdump, aby sprawdzić rozpoznawanie nazw DNS i ścieżkę danych IP do punktu końcowego PSC podczas wykonywania polecenia curl względem prognozowania online.
sudo tcpdump -i any port 53 -n or host 100.100.10.10
Otwórz czwarty terminal Cloud Shell, klikając „+”. Po otwarciu nowej karty zaktualizuj zmienną nazwy projektu.
W Cloud Shell zaktualizuj zmienną nazwy projektu.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
W Cloud Shell 4 wykonaj SSH do instancji private-client.
gcloud compute ssh --zone "us-central1-a" "private-client" --project "$projectid"
W następnej sekcji utworzysz plik instances.json za pomocą edytora sudo VI lub nano i wstawisz ciąg danych używany do uzyskiwania prognoz z wdrożonego modelu.
W systemie operacyjnym klienta prywatnego utwórz plik instances.json z ciągiem danych poniżej:
{"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]]}
Przykład:
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:$
W systemie operacyjnym klienta prywatnego utwórz te zmienne:
gcloud config list project
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"
Przykład:
ENDPOINT_ID="3328226095324463104"
W prywatnym systemie operacyjnym klienta w Cloud Shell 4 wykonaj polecenie curl, aby uzyskać odpowiedź od modelu.
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. Weryfikacja – prywatny dostęp do interfejsu Vertex API
W systemie operacyjnym klienta prywatnego w Cloud Shell 4 zwróć uwagę, że do uzyskania dostępu do interfejsu Vertex API użyto adresu IP punktu końcowego PSC (100.100.10.10).
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
W terminalu TCPDUMP w Cloud Shell 3 możemy sprawdzić, że wyszukiwanie DNS dla adresu us-central1-aiplatform.googleapis.com nie zostało zaobserwowane, ponieważ plik /etc/host miał pierwszeństwo, ale w ścieżce danych użyto adresu IP usługi PSC 100.100.10.10.
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
Udało Ci się potwierdzić połączenie z prognozowaniem online przez publiczny punkt końcowy w internecie oraz prywatnie przy użyciu sieci hybrydowej i usługi Private Service Connect (googleapis). Wyjdź z systemu operacyjnego i wróć do wiersza poleceń Cloud Shell.
20. Czyszczenie danych
W Cloud Shell usuń komponenty samouczka.
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
Usuwanie komponentów Vertex
Aby usunąć obraz kontenera, otwórz Artifact Registry, wybierz utworzone repozytorium i kliknij Usuń.

Aby usunąć zasobnik Storage, w menu nawigacyjnym konsoli Cloud otwórz Storage, wybierz zasobnik i kliknij Usuń:

Wycofaj wdrożenie modelu z punktu końcowego. Otwórz Vertex AI → Prognozowanie online → Wybierz diamonds-cpr_endpoint → Wycofaj wdrożenie modelu z punktu końcowego → Wycofaj wdrożenie.

Usuń model. Otwórz Vertex AI → Model Registry → Delete Model (Vertex AI → Rejestr modeli → Usuń model).

Usuń punkt końcowy prognozowania online. Otwórz Vertex AI → Prognozowanie online → Wybierz diamonds-cpr_endpoint → Usuń punkt końcowy.

21. Gratulacje
Gratulacje. Udało Ci się skonfigurować i zweryfikować połączenie z prognozowaniem online natywnie przez internet oraz prywatnie przy użyciu usługi Private Service Connect i sieci hybrydowej.
Utworzono klientów nat-client i private-client oraz użyto narzędzia TCPDUMP do sprawdzenia adresów IP używanych do uzyskiwania dostępu do interfejsów API Vertex. Dowiedzieliśmy się też o usłudze Private Service Connect (googleapis) i o tym, jak można jej używać do izolowania aplikacji lokalnych i wielochmurowych przez wykorzystanie punktu końcowego PSC klienta.
Cosmopup uważa, że samouczki są świetne!!

Co dalej?
Zapoznaj się z tymi samouczkami:
- Private Service Connect dla interfejsów API Google
- Vertex AI – tworzenie bezpiecznego notatnika zarządzanego przez użytkownika
Więcej informacji i filmy
- Omówienie Private Service Connect
- Czym jest Private Service Connect?
- Jak uzyskiwać prognozy z modelu ML
- Czym jest Vertex AI?
