O Private Service Connect permite-lhe aceder às inferências online da Vertex AI em segurança a partir de vários projetos de consumidor e redes VPC sem necessidade de endereços IP públicos, acesso público à Internet ou um intervalo de endereços IP internos com peering explícito.
Recomendamos o Private Service Connect para exemplos de utilização de inferência online que tenham os seguintes requisitos:
- Exija ligações privadas e seguras
- Exigir latência baixa
- Não precisam de ser acessíveis publicamente
O Private Service Connect usa uma regra de encaminhamento na sua rede VPC para enviar tráfego unidirecionalmente para o serviço de inferência online do Vertex AI. A regra de encaminhamento liga-se a uma associação de serviço que expõe o serviço Vertex AI à sua rede VPC. Para mais informações, consulte o artigo Acerca do acesso aos serviços da Vertex AI através do Private Service Connect. Para saber como configurar o Private Service Connect, consulte a vista geral do Private Service Connect na documentação da Virtual Private Cloud (VPC).
Os pontos finais privados dedicados suportam os protocolos de comunicação HTTP e gRPC. Para pedidos gRPC, o cabeçalho x-vertex-ai-endpoint-id tem de ser incluído para a identificação adequada do ponto final. As seguintes APIs são suportadas:
- Prever
- RawPredict
- StreamRawPredict
- Conclusão de chat (apenas no Model Garden)
Pode enviar pedidos de inferência online para um ponto final privado dedicado através do SDK Vertex AI para Python. Para ver detalhes, consulte o artigo Obtenha inferências online.
Funções necessárias
Para receber a autorização
necessária para criar um ponto final do Private Service Connect,
peça ao seu administrador para lhe conceder a função de IAM
utilizador do Vertex AI (roles/aiplatform.user
)
no seu projeto.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Esta função predefinida contém a autorização
aiplatform.endpoints.create
, que é necessária para
criar um ponto final do Private Service Connect.
Também pode obter esta autorização com funções personalizadas ou outras funções predefinidas.
Para mais informações sobre as funções e as autorizações da Vertex AI, consulte os artigos Controlo de acesso da Vertex AI com a IAM e Autorizações da IAM da Vertex AI.
Crie o ponto final de inferência online
Use um dos seguintes métodos para criar um ponto final de inferência online com o Private Service Connect ativado.
O limite de tempo predefinido do pedido para um ponto final do Private Service Connect é de 10 minutos.
No SDK do Vertex AI para Python, pode especificar opcionalmente um tempo limite de pedido diferente especificando um novo valor, conforme mostrado no exemplo seguinte.inference_timeout
O valor de tempo limite máximo é de 3600 segundos (1 hora).
Consola
Na Google Cloud consola, no Vertex AI, aceda à página Previsão online.
Clique em Criar.
Indique um nome a apresentar para o ponto final.
Selecione
Privado.Selecione
Private Service Connect.Clique em Selecionar IDs dos projetos.
Selecione os projetos a adicionar à lista de autorizações do ponto final.
Clique em Continuar.
Escolha as especificações do modelo. Para mais informações, consulte o artigo Implemente um modelo num ponto final.
Clique em Criar para criar o seu ponto final e implementar o modelo no mesmo.
Tome nota do ID do ponto final na resposta.
API
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
VERTEX_AI_PROJECT_ID
: o ID do projeto Google Cloud onde está a criar o ponto final de previsão online.REGION
: a região onde está a usar o Vertex AI.VERTEX_AI_ENDPOINT_NAME
: o nome a apresentar para o ponto final de previsão online.ALLOWED_PROJECTS
: uma lista separada por vírgulas de Google Cloud IDs de projetos, cada um entre aspas, por exemplo,["PROJECTID1", "PROJECTID2"]
. Se um projeto não estiver incluído nesta lista, não vai poder enviar pedidos de previsão para o ponto final da Vertex AI a partir dele. Certifique-se de que inclui VERTEX_AI_PROJECT_ID nesta lista para poder chamar o ponto final a partir do mesmo projeto em que se encontra.- INFERENCE_TIMEOUT_SECS: (Opcional) Número de segundos no campo
inferenceTimeout
opcional.
Método HTTP e URL:
POST https://REGION-aiplatform.googleapis.com/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints
Corpo JSON do pedido:
{ "displayName": "VERTEX_AI_ENDPOINT_NAME", "privateServiceConnectConfig": { "enablePrivateServiceConnect": true, "projectAllowlist": ["ALLOWED_PROJECTS"], "clientConnectionConfig": { "inferenceTimeout": { "seconds": INFERENCE_TIMEOUT_SECS } } } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/VERTEX_AI_PROJECT_NUMBER/locations/REGION/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateEndpointOperationMetadata", "genericMetadata": { "createTime": "2020-11-05T17:45:42.812656Z", "updateTime": "2020-11-05T17:45:42.812656Z" } } }
ENDPOINT_ID
.
Python
Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Python Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Substitua o seguinte:
VERTEX_AI_PROJECT_ID
: o ID do Google Cloud projeto onde está a criar o ponto final de inferência onlineREGION
: a região onde está a usar o Vertex AIVERTEX_AI_ENDPOINT_NAME
: o nome a apresentar do ponto final de inferência onlineALLOWED_PROJECTS
: uma lista separada por vírgulas de Google Cloud IDs de projetos, cada um entre aspas. Por exemplo,["PROJECTID1", "PROJECTID2"]
. Se um projeto não estiver incluído nesta lista, não vai poder enviar pedidos de inferência para o endpoint do Vertex AI a partir dele. Certifique-se de que inclui VERTEX_AI_PROJECT_ID nesta lista para poder chamar o ponto final a partir do mesmo projeto em que se encontra.INFERENCE_TIMEOUT_SECS
: (Opcional) Número de segundos no valorinference_timeout
opcional.
PROJECT_ID = "VERTEX_AI_PROJECT_ID"
REGION = "REGION"
VERTEX_AI_ENDPOINT_NAME = "VERTEX_AI_ENDPOINT_NAME"
INFERENCE_TIMEOUT_SECS = "INFERENCE_TIMEOUT_SECS"
from google.cloud import aiplatform
aiplatform.init(project=PROJECT_ID, location=REGION)
# Create the forwarding rule in the consumer project
psc_endpoint = aiplatform.PrivateEndpoint.create(
display_name=VERTEX_AI_ENDPOINT_NAME,
project=PROJECT_ID,
location=REGION,
private_service_connect_config=aiplatform.PrivateEndpoint.PrivateServiceConnectConfig(
project_allowlist=["ALLOWED_PROJECTS"],
),
inference_timeout=INFERENCE_TIMEOUT_SECS,
)
Tome nota do ENDPOINT_ID
no final do URI do ponto final devolvido:
INFO:google.cloud.aiplatform.models:To use this PrivateEndpoint in another session:
INFO:google.cloud.aiplatform.models:endpoint = aiplatform.PrivateEndpoint('projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID')
Crie o ponto final de inferência online com a automatização do PSC (pré-visualização)
A inferência online integra-se com a automatização da conetividade de serviços, o que lhe permite configurar pontos finais de inferência com a automatização do PSC. Isto simplifica o processo através da criação automática de pontos finais do PSC e é particularmente benéfico para os programadores de ML que não têm autorizações para criar recursos de rede, como regras de encaminhamento, num projeto.
Para começar, o administrador de rede tem de estabelecer uma política de ligação de serviços. Esta política é uma configuração única por projeto e rede que permite à Vertex AI (classe de serviço gcp-vertexai
) gerar pontos finais PSC nos seus projetos e redes.
Em seguida, pode criar pontos finais através da configuração de automatização do PSC e, depois, implementar os seus modelos. Assim que a implementação estiver concluída, as informações relevantes do ponto final do PSC estão acessíveis nos pontos finais.
Limitações
- Os VPC Service Controls não são suportados.
- É aplicado um limite regional de 500 pontos finais às configurações de automatização do PSC.
- Os resultados da automatização do PSC são eliminados quando não é implementado nenhum modelo ou quando está em processo de implementação no ponto final. Após a limpeza e a implementação subsequente do modelo, os novos resultados da automatização apresentam endereços IP distintos e regras de encaminhamento.
Crie uma política de ligação de serviço
Tem de ser um administrador de rede para criar a política de ligação de serviço.
É necessária uma política de ligação de serviço para permitir que a Vertex AI crie pontos finais PSC nas suas redes. Sem uma política válida, a automatização falha com um erro CONNECTION_POLICY_MISSING
.
Crie a política de ligação do serviço.
- POLICY_NAME: um nome especificado pelo utilizador para a política.
PROJECT_ID: o ID do projeto de serviço onde está a criar recursos do Vertex AI.
VPC_PROJECT: o ID do projeto onde se encontra a sua VPC do cliente. Para a configuração de uma única VPC, isto é o mesmo que
$PROJECT
. Para a configuração da VPC partilhada, este é o projeto anfitrião da VPC.NETWORK_NAME: o nome da rede para a qual fazer a implementação.
REGION: a região da rede.
PSC_SUBNETS: as sub-redes do Private Service Connect a usar.
gcloud network-connectivity service-connection-policies create POLICY_NAME \ --project=VPC_PROJECT \ --network=projects/PROJECT_ID/global/networks/NETWORK_NAME \ --service-class=gcp-vertexai --region=REGION --subnets=PSC_SUBNETS
Veja a sua política de ligação de serviços.
gcloud network-connectivity service-connection-policies list \ --project=VPC_PROJECT -–region=REGION
Para uma configuração de uma única VPC, um exemplo tem o seguinte aspeto:
gcloud network-connectivity service-connection-policies create test-policy \ --network=default \ --project=YOUR_PROJECT_ID \ --region=us-central1 \ --service-class=gcp-vertexai \ --subnets=default \ --psc-connection-limit=500 \ --description=test
Crie o ponto final de inferência online com a configuração de automatização do PSC
Na app PSCAutomationConfig
, verifique se o projectId
está na lista de autorizações.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- REGION: a região onde está a usar o Vertex AI.
- VERTEX_AI_PROJECT_ID: o ID do Google Cloud projeto onde está a criar o ponto final de inferência online.
- VERTEX_AI_ENDPOINT_NAME: o nome a apresentar do ponto final de previsão online.
- NETWORK_NAME: o nome completo do recurso, incluindo o ID do projeto, em vez do número do projeto.
Método HTTP e URL:
POST https://REGION-aiplatform.googleapis.com/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints
Corpo JSON do pedido:
{ { displayName: "VERTEX_AI_ENDPOINT_NAME", privateServiceConnectConfig: { enablePrivateServiceConnect: true, projectAllowlist: ["VERTEX_AI_PROJECT_ID"], pscAutomationConfigs: [ { "project_id": "VERTEX_AI_PROJECT_ID", "network": "projects/VERTEX_AI_PROJECT_ID/global/networks/NETWORK_NAME" }, ], }, },
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/VERTEX_AI_PROJECT_NUMBER/locations/REGION/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateEndpointOperationMetadata", "genericMetadata": { "createTime": "2020-11-05T17:45:42.812656Z", "updateTime": "2020-11-05T17:45:42.812656Z" } } }
ENDPOINT_ID
.
Python
Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Python Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Substitua o seguinte:
VERTEX_AI_PROJECT_ID
: o ID do Google Cloud projeto onde está a criar o ponto final de inferência onlineREGION
: a região onde está a usar o Vertex AIVERTEX_AI_ENDPOINT_NAME
: o nome a apresentar do ponto final de inferência onlineNETWORK_NAME
: o nome completo do recurso, incluindo o ID do projeto, em vez do número do projeto.
PROJECT_ID = "VERTEX_AI_PROJECT_ID"
REGION = "REGION"
VERTEX_AI_ENDPOINT_NAME = "VERTEX_AI_ENDPOINT_NAME"
from google.cloud import aiplatform
aiplatform.init(project=PROJECT_ID, location=REGION)
config =
aiplatform.compat.types.service_networking.PrivateServiceConnectConfig(
enable_private_service_connect=True,
project_allowlist="VERTEX_AI_PROJECT_ID"
psc_automation_configs=[
aiplatform.compat.types.service_networking.PSCAutomationConfig(
project_id="VERTEX_AI_PROJECT_ID"
network=projects/"VERTEX_AI_PROJECT_ID"/global/networks/"NETWORK_NAME",
)
]
)
psc_endpoint = aiplatform.PrivateEndpoint.create(
display_name="VERTEX_AI_ENDPOINT_NAME"
private_service_connect_config=config,
)
Implemente o modelo
Depois de criar o ponto final de inferência online com o Private Service Connect ativado, implemente o modelo no mesmo seguindo os passos descritos em Implemente um modelo num ponto final.
Crie um ponto final do PSC manualmente
Obtenha o URI do anexo de serviço
Quando implementa o modelo, é criado um anexo de serviço para o ponto final de inferência online. Esta associação de serviço representa o serviço de inferência online do Vertex AI que está a ser exposto à sua rede VPC. Execute o comando para obter o URI do anexo de serviço.gcloud ai endpoints describe
Apresente apenas o valor
serviceAttachment
dos detalhes do ponto final:gcloud ai endpoints describe ENDPOINT_ID \ --project=VERTEX_AI_PROJECT_ID \ --region=REGION \ | grep -i serviceAttachment
Substitua o seguinte:
ENDPOINT_ID
: o ID do seu ponto final de inferência onlineVERTEX_AI_PROJECT_ID
: o ID do Google Cloud projeto onde criou o seu ponto final de inferência onlineREGION
: a região para este pedido
O resultado é semelhante ao seguinte:
serviceAttachment: projects/ac74a9f84c2e5f2a1-tp/regions/us-central1/serviceAttachments/gkedpm-c6e6a854a634dc99472bb802f503c1
Tome nota da string completa no campo
serviceAttachment
. Este é o URI do anexo de serviço.
Crie uma regra de encaminhamento
Pode reservar um endereço IP interno e criar uma regra de encaminhamento com esse endereço. Para criar a regra de encaminhamento, precisa do URI do anexo de serviço do passo anterior.
Para reservar um endereço IP interno para a regra de encaminhamento, use o comando
gcloud compute addresses create
:gcloud compute addresses create ADDRESS_NAME \ --project=VPC_PROJECT_ID \ --region=REGION \ --subnet=SUBNETWORK \ --addresses=INTERNAL_IP_ADDRESS
Substitua o seguinte:
ADDRESS_NAME
: um nome para o endereço IP internoVPC_PROJECT_ID
: o ID do Google Cloud projeto que aloja a sua rede VPC. Se o ponto final de inferência online e a regra de encaminhamento do Private Service Connect estiverem alojados no mesmo projeto, useVERTEX_AI_PROJECT_ID
para este parâmetro.REGION
: a Google Cloud região onde a regra de encaminhamento do Private Service Connect vai ser criadaSUBNETWORK
: o nome da sub-rede da VPC que contém o endereço IPINTERNAL_IP_ADDRESS
: o endereço IP interno a reservar. Este parâmetro é opcional.- Se este parâmetro for especificado, o endereço IP tem de estar dentro do intervalo de endereços IP principal da sub-rede. O endereço IP pode ser um endereço RFC 1918 ou uma sub-rede com intervalos não RFC.
- Se este parâmetro for omitido, é atribuído automaticamente um endereço IP interno.
- Para mais informações, consulte o artigo Reserve um novo endereço IPv4 ou IPv6 interno estático.
Para verificar se o endereço IP está reservado, use o comando
gcloud compute addresses list
:gcloud compute addresses list --filter="name=(ADDRESS_NAME)" \ --project=VPC_PROJECT_ID
Na resposta, verifique se é apresentado o estado
RESERVED
para o endereço IP.Para criar a regra de encaminhamento e direcioná-la para o anexo do serviço de inferência online, use o comando
gcloud compute forwarding-rules create
:gcloud compute forwarding-rules create PSC_FORWARDING_RULE_NAME \ --address=ADDRESS_NAME \ --project=VPC_PROJECT_ID \ --region=REGION \ --network=VPC_NETWORK_NAME \ --target-service-attachment=SERVICE_ATTACHMENT_URI
Substitua o seguinte:
PSC_FORWARDING_RULE_NAME
: um nome para a regra de encaminhamentoVPC_NETWORK_NAME
: o nome da rede da VPC onde o ponto final vai ser criadoSERVICE_ATTACHMENT_URI
: o anexo de serviço que anotou anteriormente
Para verificar se a associação de serviço aceita o ponto final, use o comando
gcloud compute forwarding-rules describe
:gcloud compute forwarding-rules describe PSC_FORWARDING_RULE_NAME \ --project=VPC_PROJECT_ID \ --region=REGION
Na resposta, verifique se é apresentado um estado
ACCEPTED
no campopscConnectionStatus
.
Opcional: obtenha o endereço IP interno
Se não especificou um valor para INTERNAL_IP_ADDRESS
quando criou a regra de encaminhamento, pode obter o endereço que foi atribuído automaticamente através do comando gcloud compute forwarding-rules describe
:
gcloud compute forwarding-rules describe PSC_FORWARDING_RULE_NAME \
--project=VERTEX_AI_PROJECT_ID \
--region=REGION \
| grep -i IPAddress
Substitua o seguinte:
VERTEX_AI_PROJECT_ID
: o ID do seu projetoREGION
: o nome da região para este pedido
Opcional: obtenha o ponto final do PSC a partir do resultado da automatização do PSC
Pode obter o endereço IP gerado e a regra de encaminhamento a partir do ponto final de inferência. Segue-se um exemplo:
"privateServiceConnectConfig": {
"enablePrivateServiceConnect": true,
"projectAllowlist": [
"your-project-id",
],
"pscAutomationConfigs": [
{
"projectId": "your-project-id",
"network": "projects/your-project-id/global/networks/default",
"ipAddress": "10.128.15.209",
"forwardingRule": "https://www.googleapis.com/compute/v1/projects/your-project-id/regions/us-central1/forwardingRules/sca-auto-fr-47b0d6a4-eaff-444b-95e6-e4dc1d10101e",
"state": "PSC_AUTOMATION_STATE_SUCCESSFUL"
},
]
}
Seguem-se alguns detalhes de processamento de erros.
- A falha da automatização não afeta o resultado da implementação do modelo.
- O êxito ou a falha da operação é indicado no estado.
- Se for bem-sucedida, é apresentado o endereço IP e a regra de encaminhamento.
- Se não for bem-sucedida, é apresentada uma mensagem de erro.
- As configurações de automatização são removidas quando não existem modelos implementados ou em processo de implementação no ponto final. Isto resulta numa alteração ao endereço IP e à regra de encaminhamento se um modelo for implementado mais tarde.
- A automatização com falhas não é recuperada. Em caso de falha, pode continuar a criar o ponto final do PSC manualmente. Consulte o artigo Crie o ponto final do PSC manualmente.
Obtenha inferências online
A obtenção de inferências online a partir de um ponto final com o Private Service Connect é semelhante à obtenção de inferências online a partir de pontos finais públicos, exceto pelas seguintes considerações:
- O pedido tem de ser enviado a partir de um projeto que foi especificado no
projectAllowlist
quando o ponto final de inferência online foi criado. - Se o acesso global não estiver ativado, o pedido tem de ser enviado a partir da mesma região.
- Existem duas portas abertas, a 443 com TLS a usar um certificado autoassinado e a 80 sem TLS. Ambas as portas suportam HTTP e GRPC. Todo o tráfego vai estar na rede privada e não vai passar pela Internet pública.
Para obter inferências, tem de ser estabelecida uma ligação através do endereço IP estático do ponto final, a menos que seja criado um registo DNS para o endereço IP interno. Por exemplo, envie os pedidos
predict
para o seguinte ponto final:https://INTERNAL_IP_ADDRESS/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict
Substitua
INTERNAL_IP_ADDRESS
pelo endereço IP interno que reservou anteriormente.Para pedidos gRPC: Para garantir a identificação adequada do ponto final para pedidos gRPC, é necessário incluir o cabeçalho
x-vertex-ai-endpoint-id
. Isto é necessário porque as informações do ponto final não são transmitidas no caminho do pedido para a comunicação gRPC.Ligações seguras (porta 443): quando estabelece ligações seguras através da porta 443, o servidor usa um certificado autoassinado. Para continuar com a associação, recomendamos uma das seguintes abordagens:
- Opção 1: ignorar a validação de certificados: configure o cliente para ignorar a validação de certificados e estabelecer a ligação através do endereço IP do servidor ou de um método de resolução de DNS preferencial.
- Opção 2: integração do repositório fidedigno: obtenha o certificado autoassinado do servidor, adicione-o ao repositório fidedigno local do sistema cliente e use o nome DNS no formato
*.prediction.p.vertexai.goog
para estabelecer a ligação. Este método garante a comunicação segura através da validação de certificados.
As secções seguintes fornecem exemplos de como pode enviar o pedido predict com Python.
Primeiro exemplo
psc_endpoint = aiplatform.PrivateEndpoint("projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID")
REQUEST_FILE = "PATH_TO_INPUT_FILE"
import json
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
with open(REQUEST_FILE) as json_file:
data = json.load(json_file)
response = psc_endpoint.predict(
instances=data["instances"], endpoint_override=INTERNAL_IP_ADDRESS
)
print(response)
Substitua PATH_TO_INPUT_FILE
por um caminho para um ficheiro JSON
que contenha a entrada do pedido.
Segundo exemplo
import json
import requests
import urllib3
import google.auth.transport.requests
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
REQUEST_FILE = "PATH_TO_INPUT_FILE"
# Programmatically get credentials and generate an access token
creds, project = google.auth.default()
auth_req = google.auth.transport.requests.Request()
creds.refresh(auth_req)
access_token = creds.token
# Note: the credential lives for 1 hour by default
# After expiration, it must be refreshed
# See https://cloud.google.com/docs/authentication/token-types#access-tokens
# for token lifetimes.
with open(REQUEST_FILE) as json_file:
data = json.load(json_file)
url = "https://INTERNAL_IP_ADDRESS/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {access_token}" # Add access token to headers
}
payload = {
"instances": data["instances"],
}
response = requests.post(url, headers=headers, json=payload, verify=False)
print(response.json())
Opcional: crie um registo de DNS para o endereço IP interno
Recomendamos que crie um registo DNS para poder obter inferências online a partir do seu ponto final sem ter de especificar o endereço IP interno.
Para mais informações, consulte o artigo Outras formas de configurar o DNS.
Crie uma zona DNS privada com o comando
gcloud dns managed-zones create
. Esta zona está associada à rede da VPC na qual a regra de encaminhamento foi criada.DNS_NAME_SUFFIX="prediction.p.vertexai.goog." # DNS names have "." at the end. gcloud dns managed-zones create ZONE_NAME \ --project=VPC_PROJECT_ID \ --dns-name=$DNS_NAME_SUFFIX \ --networks=VPC_NETWORK_NAME \ --visibility=private \ --description="A DNS zone for Vertex AI endpoints using Private Service Connect."
Substitua o seguinte:
ZONE_NAME
: o nome da zona DNS
Para criar um registo DNS na zona, use o comando
gcloud dns record-sets create
:DNS_NAME=ENDPOINT_ID-REGION-VERTEX_AI_PROJECT_NUMBER.$DNS_NAME_SUFFIX gcloud dns record-sets create $DNS_NAME \ --rrdatas=INTERNAL_IP_ADDRESS \ --zone=ZONE_NAME \ --type=A \ --ttl=60 \ --project=VPC_PROJECT_ID
Substitua o seguinte:
VERTEX_AI_PROJECT_NUMBER
: o número do projeto do seu projetoVERTEX_AI_PROJECT_ID
. Pode localizar este número do projeto na Google Cloud consola. Para mais informações, consulte o artigo Identificar projetos.INTERNAL_IP_ADDRESS
: o endereço IP interno do seu ponto final de inferência online
Agora, pode enviar os seus pedidos de
predict
para:https://ENDPOINT_ID-REGION-VERTEX_AI_PROJECT_NUMBER.prediction.p.vertexai.goog/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict
Segue-se um exemplo de como pode enviar o pedido predict para a zona DNS através do Python:
REQUEST_FILE = "PATH_TO_INPUT_FILE"
import json
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
with open(REQUEST_FILE) as json_file:
data = json.load(json_file)
response = psc_endpoint.predict(
instances=data["instances"], endpoint_override=DNS_NAME
)
print(response)
Substitua DNS_NAME
pelo nome DNS que especificou no comando
gcloud dns record-sets create
.
Limitações
Os pontos finais da Vertex AI com o Private Service Connect estão sujeitos às seguintes limitações:
- A implementação de modelos do Gemini otimizados não é suportada.
- A saída privada a partir do ponto final não é suportada. Uma vez que as regras de encaminhamento do Private Service Connect são unidirecionais, não é possível aceder a outras cargas de trabalho privadas no seu contentor.Google Cloud
- Não é possível alterar o valor de
projectAllowlist
de um ponto final. - O Vertex Explainable AI não é suportado.
- Antes de eliminar um ponto final, tem de anular a implementação do modelo nesse ponto final.
- Se todos os modelos não forem implementados durante mais de 10 minutos, a associação de serviço pode ser eliminada. Verifique o
estado da ligação do Private Service Connect;
se for
CLOSED
, recrie a regra de encaminhamento. - Depois de eliminar o seu ponto final, não pode reutilizar esse nome de ponto final durante um período máximo de 7 dias.
- Um projeto pode ter até 10 valores
projectAllowlist
diferentes nas respetivas configurações do Private Service Connect.