Os anfitriões no local podem alcançar a IA generativa no Vertex AI através da Internet pública ou de forma privada através de uma arquitetura de rede híbrida que usa o Private Service Connect (PSC) através do Cloud VPN ou do Cloud Interconnect. Ambas as opções oferecem encriptação SSL/TLS. No entanto, a opção privada oferece um desempenho muito melhor e, por isso, é recomendada para aplicações críticas.
Neste tutorial, vai usar a VPN de alta disponibilidade (VPN de HA) para aceder à IA generativa no Vertex AI publicamente, através do Cloud NAT, e de forma privada, entre duas redes da nuvem virtual privada (VPC) que podem servir de base para a conetividade privada multinuvem e no local.
Este tutorial destina-se a administradores de redes empresariais, cientistas de dados e investigadores que estão familiarizados com o Vertex AI, a VPC, a Google Cloud consola e oCloud Shell. A familiaridade com a IA generativa no Vertex AI é útil, mas não obrigatória.
Objetivos
- Crie duas redes VPC, conforme mostrado no diagrama
anterior:
- Um (
onprem-vpc
) representa uma rede no local. - O outro (
vertex-networking-vpc
) destina-se a aceder à API REST para IA generativa no Vertex AI.
- Um (
- Implemente gateways de VPN de alta disponibilidade, túneis de Cloud VPN e Cloud Routers para ligar
vertex-networking-vpc
eonprem-vpc
. - Crie um ponto final do Private Service Connect (PSC) para encaminhar pedidos para a API REST GenAI.
- Configure um trajeto anunciado personalizado do Cloud Router em
vertex-networking-vpc
para anunciar trajetos para o ponto final do Private Service Connect paraonprem-vpc
. - Crie uma instância de VM do Compute Engine em
onprem-vpc
para representar uma aplicação cliente que envia pedidos para a API REST GenAI através da VPN de HA.
Custos
Neste documento, usa os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custos com base na sua utilização projetada,
use a calculadora de preços.
Quando terminar as tarefas descritas neste documento, pode evitar a faturação contínua eliminando os recursos que criou. Para mais informações, consulte o artigo Limpe.
Antes de começar
-
In the Google Cloud console, go to the project selector page.
-
Select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Se não for o proprietário do projeto, este tem de lhe conceder a função de IAM.
roles/resourcemanager.projectIamAdmin
Tem de ter esta função para conceder funções e autorizações da IAM a si próprio e a contas de serviço. - Abra o Cloud Shell para executar os comandos indicados neste tutorial. O Cloud Shell é um ambiente de shell interativo para Google Cloud que lhe permite gerir os seus projetos e recursos a partir do navegador de Internet.
- No Cloud Shell, defina o projeto atual para o seu
Google Cloud ID do projeto e armazene o mesmo
ID do projeto na variável do shell
projectid
: Substitua PROJECT_ID pelo ID do seu projeto. Se necessário, pode localizar o ID do projeto na Google Cloud consola. Para mais informações, consulte o artigo Encontre o ID do seu projeto.projectid="PROJECT_ID" gcloud config set project ${projectid}
-
Make sure that you have the following role or roles on the project: roles/compute.instanceAdmin.v1, roles/compute.networkAdmin, roles/compute.securityAdmin, roles/dns.admin, roles/iap.tunnelResourceAccessor, roles/iam.serviceAccountCreator, roles/iam.serviceAccountUser, roles/iam.serviceAccountDeleter, roles/resourcemanager.projectIamAdmin, roles/servicedirectory.editor, roles/servicemanagement.quotaAdmin, roles/aiplatform.user
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Aceder ao IAM - Selecione o projeto.
- Clique em Conceder acesso.
-
No campo Novos responsáveis, introduza o identificador do utilizador. Normalmente, este é o endereço de email de uma Conta Google.
- Na lista Selecionar uma função, selecione uma função.
- Para conceder funções adicionais, clique em Adicionar outra função e adicione cada função adicional.
- Clique em Guardar.
Enable the DNS, IAM, Compute Engine, Service Usage, and Vertex AI APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Crie duas redes VPC: vertex-networking-vpc
e onprem-vpc
Nesta secção, vai criar duas redes VPC: uma para ser a rede principal para aceder à API de IA generativa (também conhecida como IA gen) da Vertex AI e a outra para simular a rede no local.
Crie as redes VPC
Crie a rede VPC para aceder à API GenAI (
vertex-networking-vpc
):gcloud compute networks create vertex-networking-vpc --subnet-mode custom
Crie a rede da VPC para simular a rede no local (
onprem-vpc
):gcloud compute networks create onprem-vpc --subnet-mode custom
Na rede
onprem-vpc
, crie uma sub-rede denominadaonprem-vpc-subnet1
com um intervalo IPv4 principal de172.16.10.0/24
:gcloud compute networks subnets create onprem-vpc-subnet1 \ --range 172.16.10.0/24 \ --network onprem-vpc \ --region us-central1
Na Google Cloud consola, aceda ao separador Redes no projeto atual na página Rede de VPC.
Na lista de redes VPC, verifique se as duas redes foram criadas:
vertex-networking-vpc
eonprem-vpc
.Na página Rede VPC, clique no separador Sub-redes no projeto atual.
Na lista de sub-redes VPC, verifique se a sub-rede
onprem-vpc-subnet1
foi criada na redeonprem-vpc
.
Configure a conetividade híbrida
Nesta secção, cria dois gateways de VPN de alta disponibilidade que estão ligados entre si. Uma reside na
vertex-networking-vpc
rede VPC. O outro reside na rede VPC onprem-vpc
.
Cada gateway contém um Cloud Router e um par de túneis VPN.
Crie os gateways de VPN de alta disponibilidade
No Cloud Shell, crie o gateway de VPN de alta disponibilidade para a rede VPC
vertex-networking-vpc
:gcloud compute vpn-gateways create vertex-networking-vpn-gw1 \ --network vertex-networking-vpc \ --region us-central1
Crie o gateway de VPN de alta disponibilidade para a rede VPC:
onprem-vpc
gcloud compute vpn-gateways create onprem-vpn-gw1 \ --network onprem-vpc \ --region us-central1
Na Google Cloud consola, aceda ao separador Gateways de VPN do Cloud na página VPN.
Na lista de gateways de VPN, verifique se os dois gateways (
vertex-networking-vpn-gw1
eonprem-vpn-gw1
) foram criados e se cada um tem dois endereços IP.
Crie Cloud Routers
No Cloud Shell, crie um Cloud Router para a rede VPC:
vertex-networking-vpc
gcloud compute routers create vertex-networking-vpc-router1 \ --region us-central1\ --network vertex-networking-vpc \ --asn 65001
Crie um Cloud Router para a rede de VPC
onprem-vpc
:gcloud compute routers create onprem-vpc-router1 \ --region us-central1\ --network onprem-vpc\ --asn 65002
Adicione uma gateway do Cloud NAT à onprem-vpc
rede de VPC
Neste passo, adiciona um gateway Cloud NAT ao Cloud Router para a rede VPC onprem-vpc
.
Um gateway Cloud NAT oferece conetividade de saída para instâncias de máquinas virtuais (VM) do Compute Engine que não têm endereços IP externos.
No Cloud Shell, adicione uma gateway do Cloud NAT ao
onprem-vpc-router1
Cloud Router:gcloud compute routers nats create us-central-cloudnat-onprem \ --router=onprem-vpc-router1 \ --auto-allocate-nat-external-ips \ --nat-all-subnet-ip-ranges \ --region us-central1
Na Google Cloud consola, aceda à página Routers na nuvem.
Na lista de routers na nuvem, verifique se
vertex-networking-vpc-router1
eonprem-vpc-router1
foram criados. Pode ter de atualizar o separador do navegador da Google Cloud consola para ver os novos valores.Na lista do Cloud Router, clique em
onprem-vpc-router1
.Na página Detalhes do router, verifique se o gateway
us-central-cloudnat-onprem
Cloud NAT foi criado.
Crie túneis de VPN
Na rede
vertex-networking-vpc
, crie um túnel de VPN denominadovertex-networking-vpc-tunnel0
:gcloud compute vpn-tunnels create vertex-networking-vpc-tunnel0 \ --peer-gcp-gateway onprem-vpn-gw1 \ --region us-central1 \ --ike-version 2 \ --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \ --router vertex-networking-vpc-router1 \ --vpn-gateway vertex-networking-vpn-gw1 \ --interface 0
Na rede
vertex-networking-vpc
, crie um túnel de VPN denominadovertex-networking-vpc-tunnel1
:gcloud compute vpn-tunnels create vertex-networking-vpc-tunnel1 \ --peer-gcp-gateway onprem-vpn-gw1 \ --region us-central1 \ --ike-version 2 \ --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \ --router vertex-networking-vpc-router1 \ --vpn-gateway vertex-networking-vpn-gw1 \ --interface 1
Na rede
onprem-vpc
, crie um túnel de VPN denominadoonprem-vpc-tunnel0
:gcloud compute vpn-tunnels create onprem-vpc-tunnel0 \ --peer-gcp-gateway vertex-networking-vpn-gw1 \ --region us-central1\ --ike-version 2 \ --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \ --router onprem-vpc-router1 \ --vpn-gateway onprem-vpn-gw1 \ --interface 0
Na rede
onprem-vpc
, crie um túnel de VPN denominadoonprem-vpc-tunnel1
:gcloud compute vpn-tunnels create onprem-vpc-tunnel1 \ --peer-gcp-gateway vertex-networking-vpn-gw1 \ --region us-central1\ --ike-version 2 \ --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \ --router onprem-vpc-router1 \ --vpn-gateway onprem-vpn-gw1 \ --interface 1
Na Google Cloud consola, aceda à página VPN.
Na lista de túneis VPN, verifique se os quatro túneis VPN foram criados.
Estabeleça sessões de BGP
O Cloud Router usa o protocolo de gateway de fronteira (BGP) para trocar rotas entre a sua rede VPC (neste caso, vertex-networking-vpc
) e a sua rede nas instalações (representada por onprem-vpc
). No Cloud Router, configura uma interface e um par BGP para o seu router nas instalações.
A interface e a configuração do par BGP formam em conjunto uma sessão de BGP.
Nesta secção, cria duas sessões BGP para vertex-networking-vpc
e duas para onprem-vpc
.
Depois de configurar as interfaces e os pares BGP entre os routers, estes começam automaticamente a trocar rotas.
Estabeleça sessões de BGP para vertex-networking-vpc
No Cloud Shell, na rede
vertex-networking-vpc
, crie uma interface BGP paravertex-networking-vpc-tunnel0
:gcloud compute routers add-interface vertex-networking-vpc-router1 \ --interface-name if-tunnel0-to-onprem \ --ip-address 169.254.0.1 \ --mask-length 30 \ --vpn-tunnel vertex-networking-vpc-tunnel0 \ --region us-central1
Na rede
vertex-networking-vpc
, crie um par BGP parabgp-onprem-tunnel0
:gcloud compute routers add-bgp-peer vertex-networking-vpc-router1 \ --peer-name bgp-onprem-tunnel0 \ --interface if-tunnel0-to-onprem \ --peer-ip-address 169.254.0.2 \ --peer-asn 65002 \ --region us-central1
Na rede
vertex-networking-vpc
, crie uma interface BGP paravertex-networking-vpc-tunnel1
:gcloud compute routers add-interface vertex-networking-vpc-router1 \ --interface-name if-tunnel1-to-onprem \ --ip-address 169.254.1.1 \ --mask-length 30 \ --vpn-tunnel vertex-networking-vpc-tunnel1 \ --region us-central1
Na rede
vertex-networking-vpc
, crie um par BGP parabgp-onprem-tunnel1
:gcloud compute routers add-bgp-peer vertex-networking-vpc-router1 \ --peer-name bgp-onprem-tunnel1 \ --interface if-tunnel1-to-onprem \ --peer-ip-address 169.254.1.2 \ --peer-asn 65002 \ --region us-central1
Estabeleça sessões de BGP para onprem-vpc
Na rede
onprem-vpc
, crie uma interface BGP paraonprem-vpc-tunnel0
:gcloud compute routers add-interface onprem-vpc-router1 \ --interface-name if-tunnel0-to-vertex-networking-vpc \ --ip-address 169.254.0.2 \ --mask-length 30 \ --vpn-tunnel onprem-vpc-tunnel0 \ --region us-central1
Na rede
onprem-vpc
, crie um par BGP parabgp-vertex-networking-vpc-tunnel0
:gcloud compute routers add-bgp-peer onprem-vpc-router1 \ --peer-name bgp-vertex-networking-vpc-tunnel0 \ --interface if-tunnel0-to-vertex-networking-vpc \ --peer-ip-address 169.254.0.1 \ --peer-asn 65001 \ --region us-central1
Na rede
onprem-vpc
, crie uma interface BGP paraonprem-vpc-tunnel1
:gcloud compute routers add-interface onprem-vpc-router1 \ --interface-name if-tunnel1-to-vertex-networking-vpc \ --ip-address 169.254.1.2 \ --mask-length 30 \ --vpn-tunnel onprem-vpc-tunnel1 \ --region us-central1
Na rede
onprem-vpc
, crie um par BGP parabgp-vertex-networking-vpc-tunnel1
:gcloud compute routers add-bgp-peer onprem-vpc-router1 \ --peer-name bgp-vertex-networking-vpc-tunnel1 \ --interface if-tunnel1-to-vertex-networking-vpc \ --peer-ip-address 169.254.1.1 \ --peer-asn 65001 \ --region us-central1
Valide a criação da sessão de BGP
Na Google Cloud consola, aceda à página VPN.
Na lista de túneis VPN, verifique se o valor na coluna Estado da sessão de BGP de cada um dos túneis mudou de Configurar sessão de BGP para BGP estabelecido. Pode ter de atualizar o separador do navegador da Google Cloud consola para ver os novos valores.
Crie o ponto final do Private Service Connect (PSC)
Nesta secção, cria um ponto final do Private Service Connect (PSC) para as APIs Google que as instâncias de VM na rede onprem-vpc
vão usar para aceder à API GenAI a partir da sua rede onprem-vpc
.
Um ponto final do Private Service Connect (PSC) é um endereço IP interno na rede onprem-vpc
que pode ser acedido diretamente pelos clientes nessa rede. Este ponto final é criado implementando uma regra de encaminhamento que direciona o tráfego de rede que corresponde ao endereço IP do ponto final do PSC para um pacote de APIs Google: especificamente, o pacote all-apis.
O endereço IP do ponto final do PSC (192.168.0.1
) é anunciado a partir do
vertex-networking-vpc-router
Cloud Router como uma rota anunciada personalizada
para a rede onprem-vpc
num passo posterior.
Reserve um endereço IP interno global para atribuir ao ponto final:
gcloud compute addresses create psc-googleapi-ip \ --global \ --purpose=PRIVATE_SERVICE_CONNECT \ --addresses=192.168.0.1 \ --network=vertex-networking-vpc
Crie o ponto final, juntamente com uma regra de encaminhamento que ligue o ponto final às APIs e aos serviços Google:
gcloud compute forwarding-rules create pscvertex \ --global \ --network=vertex-networking-vpc\ --address=psc-googleapi-ip \ --target-google-apis-bundle=all-apis
Liste os pontos finais do PSC configurados e verifique se o ponto final
pscvertex
foi criado:gcloud compute forwarding-rules list \ --filter target="(all-apis OR vpc-sc)" --global
Obtenha os detalhes do ponto final do PSC configurado e verifique se o endereço IP é
192.168.0.1
:gcloud compute forwarding-rules describe \ pscvertex --global
Crie anúncios de rotas personalizadas para vertex-networking-vpc
Nesta secção, cria uma
rota anunciada personalizada
para vertex-networking-vpc-router1
(o Cloud Router para
vertex-networking-vpc
) anunciar o endereço IP do ponto final do PSC
à rede onprem-vpc
.
Na Google Cloud consola, aceda à página Routers na nuvem.
Na lista do Cloud Router, clique em
vertex-networking-vpc-router1
.Na página Detalhes do router, clique em
Editar.Na secção Rotas anunciadas, para Rotas, selecione Criar rotas personalizadas.
Selecione a caixa de verificação Anunciar todas as sub-redes visíveis para o Cloud Router para continuar a anunciar as sub-redes disponíveis para o Cloud Router. A ativação desta opção imita o comportamento do Cloud Router no modo de anúncio predefinido.
Clique em Adicionar um trajeto personalizado.
Para Origem, selecione Intervalo de IPs personalizado.
Para o Intervalo de endereços IP, introduza o seguinte endereço IP:
192.168.0.1
Em Descrição, introduza o seguinte texto:
Custom route to advertise Private Service Connect endpoint IP address
Clique em Concluído e, de seguida, clique em Guardar.
Valide se onprem-vpc
aprendeu os trajetos anunciados
Na Google Cloud consola, aceda à página Rotas.
No separador Rotas eficazes, faça o seguinte:
- Para Rede, escolha
onprem-vpc
. - Para Região, escolha
us-central1 (Iowa)
. - Clique em Ver.
Na lista de rotas, verifique se existem entradas cujos nomes começam por
onprem-vpc-router1-bgp-vertex-networking-vpc-tunnel0
eonprem-vpc-router1-bgp-vfertex-networking-vpc-tunnel1
e se ambas têm um intervalo de IPs de destino de192.168.0.1/32
. (192.168.0.1
é o endereço IP do ponto final do PSC.)Se estas entradas não aparecerem imediatamente, aguarde alguns minutos e, em seguida, atualize o separador do navegador da consola Google Cloud .
- Para Rede, escolha
Configure uma instância de VM na rede no local
Nesta secção, cria uma instância de VM do Compute Engine na rede de VPC onprem-vpc
. Esta instância de VM simula um cliente no local que se liga ao ponto final do PSC e acede à API GenAI.
Crie uma conta de serviço gerida pelo utilizador
No Cloud Shell, execute os seguintes comandos, substituindo PROJECT_ID pelo ID do seu projeto:
projectid=PROJECT_ID gcloud config set project ${projectid}
Crie a conta de serviço:
gcloud iam service-accounts create user-managed-sa
Atribua a função IAM Utilizador da Vertex AI (
roles/aiplatform.user
) à conta de serviço:gcloud projects add-iam-policy-binding $projectid \ --member="serviceAccount:user-managed-sa@$projectid.iam.gserviceaccount.com" \ --role="roles/aiplatform.user"
Crie a instância de VM on-prem-client
Neste passo, cria a instância de VM, que usa o endereço IP do Private Service Connect (192.168.0.1
) para aceder às APIs Google através da VPN de alta disponibilidade.
Para permitir que o Identity-Aware Proxy (IAP) se ligue às suas instâncias de VM, crie uma regra de firewall que:
- Aplica-se a todas as instâncias de VM que quer tornar acessíveis através do IAP. (Neste caso, só existe
on-prem-client
.) - Permite o tráfego TCP através da porta 22 a partir do intervalo de IP
35.235.240.0/20
. Este intervalo contém todos os endereços IP que o IAP usa para o encaminhamento TCP.
Crie a instância de VM
on-prem-client
. O comando seguinte também instala os pacotestcpdump
ednsutils
, que contêm as utilidadestcpdump
edig
que vai usar mais tarde para validar os pedidos da API:gcloud compute instances create on-prem-client \ --zone=us-central1-a \ --image-family=debian-11 \ --image-project=debian-cloud \ --subnet=onprem-vpc-subnet1 \ --scopes=https://www.googleapis.com/auth/cloud-platform \ --no-address \ --shielded-secure-boot \ --service-account=user-managed-sa@$projectid.iam.gserviceaccount.com \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install tcpdump dnsutils -y"
Crie uma regra de firewall do IAP com o nome
ssh-iap-on-prem-vpc
:gcloud compute firewall-rules create ssh-iap-on-prem-vpc \ --network onprem-vpc \ --allow tcp:22 \ --source-ranges=35.235.240.0/20
Valide o acesso público à Internet à IA generativa na Vertex AI
Nesta secção, inicia sessão na instância de VM on-prem-client
através do Identity-Aware Proxy e, em seguida, valida a conetividade pública com as APIs Vertex AI (incluindo a IA gen) executando o comando dig
no domínio público da Vertex AI (us-central1-aiplatform.googleapis.com
).
No Cloud Shell (separador um), execute os seguintes comandos, substituindo PROJECT_ID pelo ID do seu projeto:
projectid=PROJECT_ID gcloud config set project ${projectid}
Inicie sessão na
on-prem-client
instância de VM através do IAP:gcloud compute ssh on-prem-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
Execute o comando
dig
:dig us-central1-aiplatform.googleapis.com
Deverá ver um resultado
dig
semelhante ao seguinte, em que os endereços IP na secção de resposta são endereços IP públicos:; <<>> DiG 9.16.44-Debian <<>> us-central1.aiplatfom.googleapis.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42506 ;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;us-central1.aiplatfom.googleapis.com. IN A ;; ANSWER SECTION: us-central1.aiplatfom.googleapis.com. 300 IN A 173.194.192.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.250.152.95 us-central1.aiplatfom.googleapis.com. 300 IN A 172.217.219.95 us-central1.aiplatfom.googleapis.com. 300 IN A 209.85.146.95 us-central1.aiplatfom.googleapis.com. 300 IN A 209.85.147.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.250.125.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.250.136.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.250.148.95 us-central1.aiplatfom.googleapis.com. 300 IN A 209.85.200.95 us-central1.aiplatfom.googleapis.com. 300 IN A 209.85.234.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.251.171.95 us-central1.aiplatfom.googleapis.com. 300 IN A 108.177.112.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.250.128.95 us-central1.aiplatfom.googleapis.com. 300 IN A 142.251.6.95 us-central1.aiplatfom.googleapis.com. 300 IN A 172.217.212.95 us-central1.aiplatfom.googleapis.com. 300 IN A 74.125.124.95 ;; Query time: 8 msec ;; SERVER: 169.254.169.254#53(169.254.169.254) ;; WHEN: Wed Sep 27 04:10:16 UTC 2023 ;; MSG SIZE rcvd: 321
Configure e valide o acesso privado à IA generativa na Vertex AI
Nesta secção, configura o acesso privado à IA generativa na Vertex AI para que, quando envia pedidos para o ponto final do serviço público (us-central1-aiplatform.googleapis.com
), estes sejam redirecionados para o seu ponto final do PSC. Por sua vez, o ponto final da PSC encaminha o pedido para
Atualize o ficheiro /etc/hosts
para apontar para o ponto final do PSC
Neste passo, adiciona uma linha ao ficheiro /etc/hosts
que faz com que os pedidos
enviados para o ponto final do serviço público (us-central1-aiplatform.googleapis.com
)
sejam redirecionados para o ponto final do PSC (192.168.0.1
).
Na
on-prem-client
instância de VM (separador um), use um editor de texto, como ovim
ou onano
para abrir o ficheiro/etc/hosts
:sudo vim /etc/hosts
Adicione a seguinte linha ao ficheiro:
192.168.0.1 us-central1-aiplatform.googleapis.com
Esta linha atribui o endereço IP do ponto final do PSC (
192.168.0.1
) ao nome de domínio totalmente qualificado para a API Google Vertex AI (us-central1-aiplatform.googleapis.com
).O ficheiro editado deve ter o seguinte aspeto:
127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters 192.168.0.1 us-central1-aiplatform.googleapis.com # Added by you 172.16.10.6 on-prem-client.us-central1-a.c.vertex-genai-400103.internal on-prem-client # Added by Google 169.254.169.254 metadata.google.internal # Added by Google
Guarde o ficheiro da seguinte forma:
- Se estiver a usar o
vim
, prima a teclaEsc
e, de seguida, escreva:wq
para guardar o ficheiro e sair. - Se estiver a usar o
nano
, escrevaControl+O
e primaEnter
para guardar o ficheiro e, de seguida, escrevaControl+X
para sair.
- Se estiver a usar o
Envie um ping para o ponto final do Vertex AI da seguinte forma:
ping us-central1-aiplatform.googleapis.com
O comando
ping
deve devolver o seguinte resultado.192.168.0.1
é o endereço IP do ponto final do PSC:PING us-central1-aiplatform.googleapis.com (192.168.0.1) 56(84) bytes of data.
Escreva
Control+C
para sair deping
.Execute o seguinte comando
tcpdump
para validar a resolução de DNS e o caminho dos dados de IP quando envia um pedido de previsão online para o ponto final:sudo tcpdump -i any port 53 -n or host 192.168.0.1
Crie o pedido privado
Neste passo, cria um ficheiro de texto denominado request.json
que contém o payload de um pedido curl
de exemplo que envia para a API REST de IA generativa.
Para mais informações acerca de pedidos de exemplo, consulte o artigo
Pedido de exemplo.
Mantendo o comando
tcpdump
em execução no separador um, abra uma nova sessão do Cloud Shell (separador dois) clicando em abrir um novo separador no Cloud Shell.Na nova sessão do Cloud Shell (separador dois), execute os seguintes comandos, substituindo PROJECT_ID pelo ID do seu projeto:
projectid=PROJECT_ID gcloud config set project ${projectid}
Inicie sessão na
on-prem-client
instância de VM através do IAP:gcloud compute ssh on-prem-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
Execute os seguintes comandos, substituindo PROJECT_ID pelo ID do seu projeto:
projectid=PROJECT_ID gcloud config set project ${projectid}
Use um editor de texto, como o
vim
ou onano
, para criar um novo ficheiro denominadorequest.json
que contenha o seguinte texto:{ "instances": [ { "prompt": "Give me ten interview questions for the role of program manager."} ], "parameters": { "temperature": 0.2, "maxOutputTokens": 256, "topK": 40, "topP": 0.95 } }
Execute o seguinte comando para enviar um pedido para o ponto final do PSC, que encaminha o pedido para a API GenAI. Quando o ponto final recebe a resposta, reencaminha-a para a VM
on-prem-client
:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://us-central1-aiplatform.googleapis.com/v1/projects/$projectid/locations/us-central1/publishers/google/models/text-bison:predict"
Deverá ver uma resposta semelhante ao exemplo seguinte:
{ "predictions": [ { "content": " 1. **What is your experience in managing programs?**\n2. **What are your strengths and weaknesses as a program manager?**\n3. **What is your approach to managing a program?**\n4. **How do you handle risks and challenges in a program?**\n5. **How do you communicate with stakeholders in a program?**\n6. **How do you measure the success of a program?**\n7. **What is your experience in working with cross-functional teams?**\n8. **What is your experience in managing budgets and resources?**\n9. **What is your experience in managing change in a program?**\n10. **What are your career goals as a program manager?**", "citationMetadata": { "citations": [] }, "safetyAttributes": { "categories": [ "Finance", "Health" ], "blocked": false, "scores": [ 0.6, 0.1 ] } } ], "metadata": { "tokenMetadata": { "outputTokenCount": { "totalBillableCharacters": 505, "totalTokens": 153 }, "inputTokenCount": { "totalBillableCharacters": 54, "totalTokens": 12 } } } }
No separador Um, verifique se o endereço IP do ponto final PSC (
192.168.0.1
) foi usado para aceder às APIs Vertex AI a partir da instância de VMon-prem-client
(sub-rede172.16.10.0/28
).No terminal
tcpdump
no separador 1 do Cloud Shell, pode ver que não é necessária uma procura de DNS paraus-central1-aiplatform.googleapis.com
, porque a linha que adicionou ao ficheiro/etc/hosts
tem precedência e o endereço IP do ponto final do PSC (192.168.0.1
) é usado no caminho de dados.Deverá ver um resultado
tcpdump
semelhante ao seguinte:23:48:49.938797 ens4 Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [P.], seq 2054:2093, ack 6264, win 501, options [nop,nop,TS val 2943864305 ecr 2340789954], length 39 23:48:49.938947 ens4 Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [P.], seq 2093:2117, ack 6264, win 501, options [nop,nop,TS val 2943864305 ecr 2340789954], length 24 23:48:49.939839 ens4 Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [F.], seq 2117, ack 6264, win 501, options [nop,nop,TS val 2943864306 ecr 2340789954], length 0 23:48:49.940292 ens4 In IP 192.168.0.1.443 > 172.16.10.9.38578: Flags [.], ack 2117, win 272, options [nop,nop,TS val 2340789958 ecr 2943864305], length 0 23:48:49.940437 ens4 In IP 192.168.0.1.443 > 172.16.10.9.38578: Flags [F.], seq 6264, ack 2117, win 272, options [nop,nop,TS val 2340789958 ecr 2943864305], length 0 23:48:49.940442 ens4 Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [.], ack 6265, win 501, options [nop,nop,TS val 2943864307 ecr 2340789958], length 0 23:48:49.941193 ens4 In IP 192.168.0.1.443 > 172.16.10.9.38578: Flags [.], ack 2118, win 272, options [nop,nop,TS val 2340789959 ecr 2943864306], length 0
Limpar
Para evitar incorrer em custos na sua Google Cloud conta pelos recursos usados neste tutorial, elimine o projeto que contém os recursos ou mantenha o projeto e elimine os recursos individuais.
Pode eliminar os recursos individuais no projeto executando os seguintes comandos no Cloud Shell:
projectid=PROJECT_ID
gcloud config set project ${projectid}
gcloud compute firewall-rules delete ssh-iap-on-prem-vpc --quiet
gcloud compute instances delete on-prem-client --zone=us-central1-a --quiet
gcloud iam service-accounts delete user-managed-sa@$projectid.iam.gserviceaccount.com --quiet
gcloud compute forwarding-rules delete pscvertex --global --quiet
gcloud compute addresses delete psc-googleapi-ip --global --quiet
gcloud compute vpn-tunnels delete vertex-networking-vpc-tunnel0 vertex-networking-vpc-tunnel1 onprem-vpc-tunnel0 onprem-vpc-tunnel1 --region=us-central1 --quiet
gcloud compute routers nats delete us-central-cloudnat-onprem --router=onprem-vpc-router1 --region=us-central1 --quiet
gcloud compute routers delete vertex-networking-vpc-router1 onprem-vpc-router1 --region=us-central1 --quiet
gcloud compute vpn-gateways delete vertex-networking-vpn-gw1 onprem-vpn-gw1 --region=us-central1 --quiet
gcloud compute networks subnets delete onprem-vpc-subnet1 --region=us-central1 --quiet
gcloud compute networks delete onprem-vpc --quiet
gcloud compute networks delete vertex-networking-vpc --quiet
O que se segue?
- Saiba mais sobre as opções de rede empresarial para aceder aos serviços e pontos finais do Vertex AI
- Saiba como aceder a serviços publicados através de pontos finais.
- Saiba como funciona o Private Service Connect e por que motivo oferece vantagens significativas em termos de desempenho.
- Saiba mais Acerca do acesso às APIs Google através de pontos finais.
- Saiba como e por que motivo
usar uma zona de encaminhamento de DNS
em vez de atualizar o ficheiro
/etc/hosts
em grande escala e ambientes de produção. - Saiba mais acerca das rotas anunciadas personalizadas.