1. Introdução
Hosts no local podem alcançar uma previsão on-line nativamente pela Internet pública (opção 1) ou usando o Cloud VPN ou o Cloud Interconnect com o Private Service Connect (PSC) (opção 2) da sua rede local, ambos oferecendo criptografia SSL/TLS. A conectividade híbrida com a previsão on-line por interconexão é mais eficiente do que a Internet, portanto, é recomendada para aplicativos críticos, conforme ilustrado na figura 1.
Neste tutorial, vamos demonstrar como usar a VPN de alta disponibilidade (VPN de alta disponibilidade) para acessar a previsão on-line de maneira particular entre duas redes VPC que podem servir como base para conectividade particular no local e em várias nuvens.
A previsão on-line da Vertex é um endpoint público, então você quer restringir o acesso usando o VPC Service Controls (VPC-SC) para criar perímetros seguros que permitam ou neguem o acesso à Vertex e a outros Googleapis. Neste tutorial, não abordamos o VPC-SC. Para mais detalhes, consulte VPC Service Controls com Vertex AI.
O que você vai criar
Você configurará uma rede VPC chamada on-prem-vpc
para representar um ambiente local. Para sua implantação, o on-prem-vpc
não existiria. Em vez disso, seria usada a rede híbrida para o data center local ou o provedor de nuvem.
Você vai criar uma arquitetura abrangente do Private Service Connect que ilustra o acesso à previsão on-line publicamente pelo Cloud NAT e particular usando PSC em VPN de alta disponibilidade, conforme os detalhes abaixo.
Depois que a previsão on-line for implantada no projeto do Google Cloud, os seguintes casos de uso serão analisados:
O acesso público à previsão on-line consiste no seguinte:
- Crie uma instância do GCE (nat-client) que utilize a NAT para o acesso à Internet de saída
- Usar CURL para inferência no modelo
- Use o TCPDUMP para validar o acesso da previsão on-line por um VIP público
O acesso particular à previsão on-line consiste no seguinte:
- Implantar um modelo no endpoint de previsão on-line da Vertex no projeto
- Criar um endpoint do Private Service Connect (Googleapis) no goall-vpc
- Exportar o endereço IP do PSC pelo Cloud Router como uma divulgação personalizada para a VPC no local
- Crie uma instância do GCE (private-client) e atualize o arquivo etc/hosts com o IP do endpoint do PSC.
- Usar CURL para inferência no modelo
- Use o TCPDUMP para validar o acesso à previsão on-line pelo endereço IP do endpoint do PSC
O que você vai aprender
- Como estabelecer um endpoint do Private Service Connect
- Como divulgar o IP do endpoint do PSC no Cloud Router
- Como usar o TCPDUMP para validar o acesso à previsão on-line, tanto público quanto particular
O que é necessário
- Projeto do Google Cloud
Permissões do IAM
Administrador de rede do Compute
Editor do diretório de serviços
2. Antes de começar
Atualizar o projeto para ser compatível com o tutorial
Neste tutorial, usamos as variáveis $variables para ajudar na implementação da configuração da gcloud no Cloud Shell.
No Cloud Shell, faça o seguinte:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. Ativar o Services
No Cloud Shell, faça o seguinte:
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. Configuração do goall-vpc
Criar o goall-vpc
No Cloud Shell, faça o seguinte:
gcloud compute networks create aiml-vpc --project=$projectid --subnet-mode=custom
Criar a sub-rede de notebook gerenciada pelo usuário
No Cloud Shell, faça o seguinte:
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
Configuração do Cloud Router e NAT
O Cloud NAT é usado no tutorial para downloads de pacotes de software de notebook porque a instância de notebook gerenciada pelo usuário não tem um endereço IP externo. O Cloud NAT também oferece recursos de saída de NAT, o que significa que os hosts da Internet não têm permissão para iniciar a comunicação com um notebook gerenciado pelo usuário, o que o torna mais seguro.
No Cloud Shell, crie o roteador de nuvem regional.
gcloud compute routers create cloud-router-us-central1-aiml-nat --network aiml-vpc --region us-central1
No Cloud Shell, crie o gateway cloud nat regional.
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. Configuração de on-prem-vpc
Crie on-prem-vpc
No Cloud Shell, faça o seguinte:
gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom
Crie o nat-subnet
No Cloud Shell, faça o seguinte:
gcloud compute networks subnets create nat-subnet --project=$projectid --range=192.168.10.0/28 --network=on-prem-vpc --region=us-central1
Crie a sub-rede private-ip-subnet.
No Cloud Shell, faça o seguinte:
gcloud compute networks subnets create private-ip-subnet --project=$projectid --range=192.168.20.0/28 --network=on-prem-vpc --region=us-central1
Configuração do Cloud Router e NAT
O Cloud NAT é usado no tutorial para downloads de pacotes de software. O Cloud NAT também oferece recursos de saída de NAT, o que significa que os hosts da Internet não têm permissão para iniciar a comunicação com a computação, o que o torna mais seguro.
No Cloud Shell, crie o roteador de nuvem regional.
gcloud compute routers create cloud-router-us-central1-on-prem-nat --network on-prem-vpc --region us-central1
No Cloud Shell, crie o gateway cloud nat regional.
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. Crie o endpoint do Private Service Connect
Na seção a seguir, você vai criar um endpoint do Private Service Connect (PSC) que será usado para acessar a API Vertex em on-prem-vpc. O endereço IP 100.100.10.10 do PSC vai ser divulgado do goall-vpc-cloud-router-vpn como uma divulgação de roteador personalizado para a rede local em uma próxima etapa.
No Cloud Shell
gcloud compute addresses create psc-ip \
--global \
--purpose=PRIVATE_SERVICE_CONNECT \
--addresses=100.100.10.10 \
--network=aiml-vpc
Crie o endpoint do PSC
No Cloud Shell
gcloud compute forwarding-rules create pscvertex \
--global \
--network=aiml-vpc \
--address=psc-ip \
--target-google-apis-bundle=all-apis
Liste os endpoints configurados do Private Service Connect
No Cloud Shell
gcloud compute forwarding-rules list \
--filter target="(all-apis OR vpc-sc)" --global
Descrever os endpoints configurados do Private Service Connect
No Cloud Shell
gcloud compute forwarding-rules describe \
pscvertex --global
7. Conectividade híbrida
Na seção a seguir, você vai criar um Cloud Router que permite trocar rotas dinamicamente entre sua nuvem privada virtual (VPC) e sua rede de peering usando o protocolo de gateway de borda (BGP).
O Cloud Router pode configurar uma sessão do BGP em um túnel do Cloud VPN para conectar suas redes. Ele aprende automaticamente intervalos de endereços IP de novas sub-redes e os divulga na rede de peering.
Neste tutorial, você vai implantar a VPN de alta disponibilidade entre aiml-vpc e on-prem-vpc.
Crie o gateway de VPN de alta disponibilidade para aiml-vpc
Quando cada gateway é criado, dois endereços IPv4 externos são alocados automaticamente, um para cada interface de gateway.
No Cloud Shell, crie o gateway de VPN de alta disponibilidade
gcloud compute vpn-gateways create aiml-vpn-gw \
--network=aiml-vpc\
--region=us-central1
Crie o gateway de VPN de alta disponibilidade para on-prem-vpc
Quando cada gateway é criado, dois endereços IPv4 externos são alocados automaticamente, um para cada interface de gateway. Anote esses endereços IP para usar mais tarde nas etapas de configuração.
No Cloud Shell, crie o gateway de VPN de alta disponibilidade.
gcloud compute vpn-gateways create on-prem-vpn-gw \
--network=on-prem-vpc\
--region=us-central1
Validar a criação do gateway de VPN de alta disponibilidade
No console, acesse CONECTIVIDADE HÍBRIDA → VPN → CLOUD VPN GATEWAYS e confirme se os IPs de gateway foram gerados.
Crie o Cloud Router para goall-vpc
No Cloud Shell, crie o Cloud Router localizado em us-central1
gcloud compute routers create aiml-cr-us-central1 \
--region=us-central1 \
--network=aiml-vpc\
--asn=65001
Crie o Cloud Router para a on-prem-vpc
No Cloud Shell, crie o Cloud Router localizado em us-central1
gcloud compute routers create on-prem-cr-us-central1 \
--region=us-central1 \
--network=on-prem-vpc \
--asn=65002
Crie os túneis de VPN para goall-vpc
Você vai criar dois túneis de VPN em cada gateway de VPN de alta disponibilidade.
Criar túnel VPN 0
No Cloud Shell, crie 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
Criar túnel VPN 1
No Cloud Shell, crie 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
Crie os túneis de VPN para on-prem-vpc
Você vai criar dois túneis de VPN em cada gateway de VPN de alta disponibilidade.
Criar túnel VPN 0
No Cloud Shell, crie 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
Criar túnel VPN 1
No Cloud Shell, crie 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
Validar a criação do túnel VPN
No console, navegue até CONECTIVIDADE HÍBRIDA → VPN → TÚneles do CLOUD VPN.
8. Estabelecer vizinhos do BGP
Criar sessões do BGP
Nesta seção, você configura as interfaces do Cloud Router e os pares do BGP.
Criar uma interface do BGP e fazer peering para goall-vpc
No Cloud Shell, crie a interface do 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
No Cloud Shell, crie o peer do 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
No Cloud Shell, crie a interface do 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
No Cloud Shell, crie o peer do 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
Criar uma interface do BGP e peering para on-prem-vpc
No Cloud Shell, crie a interface do 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
No Cloud Shell, crie o peer do 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
No Cloud Shell, crie a interface do 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
No Cloud Shell, crie o peer do 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
Acesse CONECTIVIDADE Híbrida → VPN para ver os detalhes do túnel VPN.
Validar as rotas aprendidas do goall-vpc pela VPN de alta disponibilidade
No console, acesse Rede VPC → Redes VPC → goall-vpc→ ROUTES → REGIÃO → US-CENTRAL1 → VISUALIZAÇÃO
Observe que o goall-vpc aprendeu rotas de on-prem-vpc nat-subnet e private-ip-subnet
Confira se a on-prem-vpc aprendeu a sub-rede do workbench pela VPN de alta disponibilidade
No console, acesse Rede VPC → Redes VPC → on-prem-vpc → ROUTES → REGIÃO → US-CENTRAL1 → VISUALIZAÇÃO
9. Criar divulgações de rota personalizadas goall-vpc
O IP do endpoint do Private Service Connect não é divulgado automaticamente pelo Cloud Router goall-cr-us-central1 porque a sub-rede não está configurada na VPC.
Em vez disso, você terá que criar uma divulgação de rota personalizada do Cloud Router goall-cr-us-central para o endereço IP 100.100.10.10 do endpoint que será divulgado para o ambiente no local por BGP para o on-prem-vpc.
No console, acesse CONECTIVIDADE HÍBRIDA → CLOUD ROUTERS → goall-cr-us-central1 e selecione EDITAR.
Na seção "Rotas anunciadas", selecione a opção Criar rotas personalizadas, atualize os campos com base no exemplo abaixo, selecione CONCLUÍDO e clique em SALVAR.
Validação
Confira se o on-prem-vpc aprendeu o endereço IP do endpoint do PSC pela VPN de alta disponibilidade
No console, acesse Rede VPC → Redes VPC → on-prem-vpc → ROUTES → REGIÃO → US-CENTRAL1 → VISUALIZAÇÃO
10. Criar divulgações de rota personalizadas on-prem-vpc
O Cloud Router on-prem-vpc divulga todas as sub-redes por padrão, mas apenas a private-ip-subnet é necessária.
Na seção a seguir, atualize as divulgações de rota do Cloud Router on-prem-cr-us-central1.
No console, acesse CONECTIVIDADE HÍBRIDA → CLOUD ROUTERS → on-prem-cr-us-central1 e selecione EDITAR.
Na seção "Rotas anunciadas", selecione a opção Criar rotas personalizadas, atualize os campos com base no exemplo abaixo, selecione CONCLUÍDO e clique em SALVAR.
Validação
Confira se o goall-vpc aprendeu a rota private-ip-subnet de on-prem-vpc.
No console, acesse Rede VPC → Redes VPC → goall-vpc → ROUTES → REGIÃO → US-CENTRAL1 → VISUALIZAÇÃO
11. Criar uma conta de serviço gerenciada pelo usuário (instâncias do GCE)
Para fornecer um bom nível de controle à API Vertex, é necessário ter uma conta de serviço gerenciada pelo usuário que será aplicada às instâncias Nat e Private Client. Depois de geradas, as permissões da conta de serviço podem ser modificadas com base nos requisitos comerciais. No tutorial, a conta de serviço gerenciada pelo usuário, vertex-sa, vai ter os seguintes papéis aplicados:
a API Service Account antes de continuar.
No Cloud Shell, crie a conta de serviço.
gcloud iam service-accounts create gce-vertex-sa \
--description="service account for vertex" \
--display-name="gce-vertex-sa"
No Cloud Shell, atualize a conta de serviço com o papel de administrador da instância de computação
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:gce-vertex-sa@$projectid.iam.gserviceaccount.com" --role="roles/compute.instanceAdmin.v1"
No Cloud Shell, atualize a conta de serviço com o papel de Usuário da Vertex AI.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:gce-vertex-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
12. Criar uma conta de serviço gerenciada pelo usuário (Notebook)
Na seção a seguir, você vai criar uma conta de serviço gerenciada pelo usuário que será associada ao Vertex Workbench (Notebook) usado no tutorial.
No tutorial, a conta de serviço terá os seguintes papéis aplicados:
No Cloud Shell, crie a conta de serviço.
gcloud iam service-accounts create user-managed-notebook-sa \
--display-name="user-managed-notebook-sa"
No Cloud Shell, atualize a conta de serviço com o papel Administrador de armazenamento.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/storage.admin"
No Cloud Shell, atualize a conta de serviço com o papel de Usuário da Vertex AI.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
No Cloud Shell, atualize a conta de serviço com o papel de Administrador do Artifact Registry.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"
No Cloud Shell, liste a conta de serviço e anote o endereço de e-mail que será usado ao criar o notebook gerenciado pelo usuário.
gcloud iam service-accounts list
13. Criou as instâncias de teste
Na seção a seguir, você vai criar instâncias de teste para validar diferentes métodos e alcançar as APIs Vertex, especificamente:
- A instância
nat-client,
vai usar o Cloud NAT para resolver a Vertex AI e, portanto, acessar o endpoint de previsão on-line pela Internet - A instância,
private-client
, vai usar o IP 100.100.10.10 do Private Service Connect para acessar o endpoint de previsão on-line pela VPN de alta disponibilidade.
No Cloud Shell, crie a instância 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"
No Cloud Shell, crie a instância 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"
Para permitir que o Identity-Aware Proxy (IAP) se conecte às instâncias de VM, crie uma regra de firewall que:
- Aplica-se a todas as instâncias de VM que você quer disponibilizar usando o IAP.
- Permite tráfego de entrada no intervalo de IP 35.235.240.0/20. Esse intervalo contém todos os endereços IP que o IAP usa para encaminhamento de TCP.
No Cloud Shell, crie a regra de firewall do 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. Criar um notebook gerenciado pelo usuário
Na seção a seguir, crie um notebook gerenciado pelo usuário que incorpore a conta de serviço criada anteriormente, user-managed-notebook-sa.
No Cloud Shell, crie a instância 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. Implantar o modelo e a previsão on-line
Na seção a seguir, use o codelab Vertex AI:usar rotinas de previsão personalizadas com o Sklearn para pré-processar e pós-processar dados para previsões,já que você já criou um notebook na etapa anterior. Depois que o modelo for implantado, volte ao tutorial para iniciar a próxima seção.
16. Validar o acesso à API Vertex pela Internet
Na seção a seguir, você vai fazer login na instância nat-client e validar a conectividade com a Vertex AI usando dig e tcpdump no domínio us-central1-aiplatform.googleapis.com usado para resolver as APIs Vertex.
Faça login no nat-client usando o IAP no Cloud Shell para validar a conectividade com a API Vertex realizando uma análise no domínio de vértice us-central1-aiplatform.googleapis.com
gcloud compute ssh nat-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
Execute a dig.
dig us-central1-aiplatform.googleapis.com
Por exemplo, observe os IPs públicos na resposta 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
No SO nat-client, execute tcpdump para validar a resolução de DNS ao realizar um curl na previsão on-line.
sudo tcpdump -i any port 53 -n
Exemplo:
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
Abra um novo terminal do Cloud Shell selecionando o "+". Quando a nova guia for aberta, atualize a variável do nome do projeto.
No Cloud Shell, atualize a variável do nome do projeto.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
No Cloud Shell 2, execute SSH para a instância nat-client.
gcloud compute ssh --zone "us-central1-a" "nat-client" --project "$projectid"
Na próxima seção, você vai criar um arquivo instances.json usando o editor sudo VI ou nano e inserir a string de dados usada para receber uma previsão do modelo implantado.
No SO nat-client, crie um arquivo instances.json com a string de dados abaixo:
{"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]]}
Exemplo:
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:$
Acesse o ID do endpoint de previsão on-line no console do Cloud para usar nas próximas etapas.
Acesse VERTEX AI → PREDICIONAMENTO ON-LINE
No SO nat-client, crie as seguintes variáveis:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"
Exemplo:
ENDPOINT_ID="3328226095324463104"
No sistema operacional nat-client, execute um curl para obter uma resposta do modelo.
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
Por exemplo, observe a previsão bem-sucedida.
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. Validação: acesso à API Vertex pela Internet
Agora que você executou a previsão, vamos dar uma olhada nos resultados do TCPDUMP (terminal 1) que indicam que a instância nat-client (192.168.10.2) está executando uma consulta DNS ao servidor DNS local 169.254.169.254 para o domínio us-central1-aiplatform.googleapis.com da Vertex AI. O resultado da consulta DNS são endereços IP virtuais (VIPS) públicos para APIs Vertex, conforme observado abaixo:
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. Ative o acesso privado às APIs da Vertex
Na seção a seguir, você vai acessar as APIs Vertex usando o Private Service Connect em uma rede híbrida (VPN de alta disponibilidade) para alcançar a previsão on-line de maneira particular. No exemplo usado no tutorial, você vai atualizar o arquivo /etc/hosts na instância private-client.
No seu ambiente local, atualizar um ou vários arquivos de máquinas /etc/hosts para teste é apropriado. No entanto, para ambientes de grande escala e produção, é melhor criar uma nova zona de encaminhamento usando o FQDN do endpoint do PSC.
Por exemplo, o endpoint psc criado no tutorial é chamado de pscvertex, que se traduz em pscvertex.p.googleapis.com, ao usar o endpoint para anexar o FQDN com o serviço, por exemplo, us-central1-aiplatform-pscvertex.p.googleapis.com.
Atualizar o DNS local com o endpoint PSC também requer a refatoração de aplicativos locais para chamar o FDQN, por exemplo, us-central1-aiplatform-pscvertex.p.googleapis.com em vez do endpoint público nativo us-central1-aiplatform.googleapis.com.
Os clientes que podem ser configurados para usar um endpoint personalizado podem usar os nomes DNS de p.googleapis.com para enviar solicitações a um endpoint.
Consulte a documentação do seu cliente ou biblioteca cliente para informações sobre como configurá-lo para usar endpoints personalizados. Exemplo:
- Python: é possível configurar o api_endpoint na classe de opções do cliente no pacote google-api-core.
- Go: você pode configurar o WithEndpoint no pacote de opções do cliente no pacote da API.
- gcloud: é possível configurar api_endpoint_overrides
Abra um novo terminal do Cloud Shell selecionando o "+". Quando a nova guia for aberta, atualize a variável do nome do projeto.
Do Cloud Shell.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
Faça login no cliente privado usando o IAP em um novo Cloud Shell para validar a conectividade com a API Vertex. Para isso, faça uma análise no domínio de vértice us-central1-aiplatform.googleapis.com
No Cloud Shell, faça login na instância do SO de cliente privado.
gcloud compute ssh private-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
Execute a dig.
dig us-central1-aiplatform.googleapis.com
Por exemplo, observe os IPs públicos com base na resposta 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
Atualize a instância de cliente privado /etc/hosts usando o nano ou o editor sudo VI para criar um registro do FQDN da Vertex AI us-central1-aiplatform.googleapis.com que aponta para o endpoint PSC 100.100.10.10. Não é preciso fazer mais alterações.
Exemplo:
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
No SO de cliente particular, faça uma PING no endpoint da API Vertex.
ping us-central1-aiplatform.googleapis.com
Por exemplo, a PING retorna o IP do endpoint do PSC, mas nenhuma resposta é esperada.
user@private-client:~$ ping us-central1-aiplatform.googleapis.com
PING us-central1-aiplatform.googleapis.com (100.100.10.10) 56(84) bytes of data.
No SO de cliente privado, execute tcpdump para validar a resolução de DNS e o caminho de dados do IP para o endpoint do PSC ao realizar um curl na previsão on-line.
sudo tcpdump -i any port 53 -n or host 100.100.10.10
Abra um quarto terminal do Cloud Shell selecionando o "+". Quando a nova guia for aberta, atualize a variável do nome do projeto.
No Cloud Shell, atualize a variável do nome do projeto.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
No Cloud Shell quatro, execute um SSH para a instância private-client.
gcloud compute ssh --zone "us-central1-a" "private-client" --project "$projectid"
Na próxima seção, você vai criar um arquivo instances.json usando o editor sudo VI ou nano e inserir a string de dados usada para receber uma previsão do modelo implantado.
No SO de cliente privado, crie um arquivo instances.json com a string de dados abaixo:
{"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]]}
Exemplo:
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:$
No SO private-client, crie as seguintes variáveis:
gcloud config list project
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"
Exemplo:
ENDPOINT_ID="3328226095324463104"
No SO de cliente privado no quarto Cloud Shell, execute um curl para receber uma resposta do modelo.
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. Validação: acesso particular à API Vertex
No SO de cliente privado do Cloud Shell quatro, observe que o IP do endpoint do PSC (100.100.10.10) foi usado para acessar a API Vertex.
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
Do terminal TCPDUMP no Cloud Shell três, podemos validar que uma busca DNS para us-central1-aiplatform.googleapis.com não foi observada, já que o arquivo /etc/host teve precedência, mas o endereço IP do PSC 100.100.10.10 foi usado no caminho dos dados.
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
Você validou a conexão com a previsão on-line usando um endpoint público pela Internet e de forma particular com o uso de redes híbridas e o Private Service Connect (googleapis). Saia do SO e volte ao comando do Cloud Shell.
20. Limpar
Exclua os componentes do tutorial no Cloud Shell.
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
Excluir componentes Vertex
Para excluir a imagem do contêiner, acesse o Artifact Registry, escolha o repositório que você criou e clique em Excluir.
Para excluir o bucket do Storage, use o menu de navegação do console do Cloud, acesse o Storage, selecione o bucket e clique em Excluir:
Cancelar a implantação do modelo do endpoint. Acesse Vertex AI → Previsão on-line → Selecione diamonds-cpr_endpoint → Cancelar implantação do modelo no endpoint → Cancelar implantação
Exclua o modelo. Acesse Vertex AI → Model Registry → Excluir modelo
Exclua o endpoint de previsão on-line. Acesse Vertex AI → Previsão on-line → Selecionar diamonds-cpr_endpoint → Excluir endpoint
21. Parabéns
Parabéns! Você configurou e validou a conexão com a previsão on-line de maneira nativa usando a Internet e de forma privada com o Private Service Connect e a rede híbrida.
Você criou um nat-client e um private-client e usou o TCPDUMP para validar os endereços IP usados para alcançar as APIs Vertex. Além disso, você aprendeu sobre o Private Service Connect (googleapis) e como ele pode ser usado para isolar aplicativos no local e em várias nuvens aproveitando um endpoint PSC do cliente.
Cosmopup acha os tutoriais incríveis!!
Qual é a próxima etapa?
Confira alguns desses tutoriais...
- Private Service Connect para APIs do Google
- A Vertex AI cria um notebook seguro gerenciado pelo usuário
Leia mais e Vídeos
- Visão geral do Private Service Connect
- O que é o Private Service Connect?
- Como fazer previsões de um modelo de ML
- O que é a Vertex AI?