Usar endpoints particulares dedicados com base no Private Service Connect para inferência on-line

Com o Private Service Connect, é possível acessar inferências on-line da Vertex AI com segurança de vários projetos de consumidor e redes VPC sem precisar de endereços IP públicos, acesso à Internet pública ou intervalo de endereços IP internos com peering explícito.

Recomendamos o Private Service Connect para uso de inferência on-line casos que têm os seguintes requisitos:

  • Exigir conexões particulares e seguras
  • Requer baixa latência
  • Não precisam ser acessíveis publicamente

O Private Service Connect usa uma regra de encaminhamento na sua rede VPC para enviar tráfego unidirecionalmente ao serviço de inferência on-line da Vertex AI. A regra de encaminhamento se conecta a uma anexo de serviço que expõe o serviço Vertex AI à sua rede VPC. Para mais informações, consulte Sobre o acesso aos serviços da Vertex AI usando o Private Service Connect. Para saber mais sobre como configurar o Private Service Connect, consulte a Visão geral do Private Service Connect na documentação da nuvem privada virtual (VPC).

Endpoints particulares dedicados são compatíveis com os protocolos de comunicação HTTP e gRPC. Para solicitações gRPC, o cabeçalho x-vertex-ai-endpoint-id precisa ser incluído para a identificação adequada do endpoint. Há suporte para as seguintes APIs:

  • Prever
  • RawPredict
  • StreamRawPredict
  • Conclusão de chat (somente no Model Garden)

É possível enviar solicitações de inferência on-line para um endpoint particular dedicado usando o SDK da Vertex AI para Python. Para mais detalhes, consulte Receber inferências on-line.

Funções exigidas

Para receber a permissão necessária para criar um endpoint do Private Service Connect, peça ao administrador para conceder a você o papel do IAM de Usuário da Vertex AI (roles/aiplatform.user) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém a permissão aiplatform.endpoints.create, que é necessária para criar um endpoint do Private Service Connect.

Também é possível conseguir essa permissão com papéis personalizados ou outros papéis predefinidos.

Para mais informações sobre os papéis e permissões da Vertex AI, consulte Controle de acesso da Vertex AI com IAM e Permissões do IAM da Vertex AI.

Criar o endpoint de inferência on-line

Use um dos métodos a seguir para criar um endpoint de inferência on-line com o Private Service Connect ativado.

O tempo limite padrão de solicitação para um endpoint do Private Service Connect é de 10 minutos. No SDK da Vertex AI para Python, é possível especificar um tempo limite de solicitação diferente ao definir um novo valor de inference_timeout, conforme mostrado no exemplo a seguir. O valor máximo do tempo limite é de 3.600 segundos (1 hora).

Console

  1. No console Google Cloud , na Vertex AI, acesse a página Previsão on-line.

    Acessar a previsão on-line

  2. Clique em Criar.

  3. Forneça um nome de exibição para o endpoint.

  4. Selecione Privado.

  5. Selecione Private Service Connect.

  6. Clique em Selecionar IDs do projeto.

  7. Selecione projetos para adicionar à lista de permissões do endpoint.

  8. Clique em Continuar.

  9. Escolha as especificações do seu modelo. Para mais informações, consulte Implantar um modelo em um endpoint.

  10. Clique em Criar. para criar o endpoint e implantar o modelo nele.

  11. Anote o ID do endpoint na resposta.

API

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • VERTEX_AI_PROJECT_ID: o ID do projeto do Google Cloud em que você está criando o endpoint de previsão on-line.
  • REGION: a região em que você está usando a Vertex AI.
  • VERTEX_AI_ENDPOINT_NAME: o nome de exibição da previsão on-line. endpoint de API.
  • ALLOWED_PROJECTS: uma lista separada por vírgulas de IDs de projetos Google Cloud , cada um entre aspas, por exemplo, ["PROJECTID1", "PROJECTID2"]. Se um projeto não estiver nesta lista, você não poderá enviar solicitações de previsão. para o endpoint da Vertex AI. Não se esqueça de incluir VERTEX_AI_PROJECT_ID nessa lista para chamar o endpoint no mesmo projeto em que está.
  • INFERENCE_TIMEOUT_SECS: (opcional) número de segundos no campo opcional inferenceTimeout.

Método HTTP e URL:

POST https://REGION-aiplatform.googleapis.com/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints

Corpo JSON da solicitação:

{
  "displayName": "VERTEX_AI_ENDPOINT_NAME",
  "privateServiceConnectConfig": {
    "enablePrivateServiceConnect": true,
    "projectAllowlist": ["ALLOWED_PROJECTS"],
    "clientConnectionConfig": {
      "inferenceTimeout": {
        "seconds": INFERENCE_TIMEOUT_SECS
      }
    }
  }
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "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"
    }
  }
}
Anote o ENDPOINT_ID.

Python

Antes de testar esse exemplo, siga as instruções de configuração para Python no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Python.

Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

Substitua:

  • VERTEX_AI_PROJECT_ID: o ID do Google Cloud projeto em que você está criando o endpoint de inferência on-line
  • REGION: a região em que você está usando a Vertex AI.
  • VERTEX_AI_ENDPOINT_NAME: o nome de exibição do endpoint de inferência on-line
  • ALLOWED_PROJECTS: uma lista separada por vírgulas de IDs de projetos do Google Cloud, cada um entre aspas. Por exemplo, ["PROJECTID1", "PROJECTID2"]. Se um projeto não estiver nesta lista, você não poderá enviar solicitações de inferência. para o endpoint da Vertex AI. Não se esqueça de incluir VERTEX_AI_PROJECT_ID nessa lista para chamar o endpoint no mesmo projeto em que está.
  • INFERENCE_TIMEOUT_SECS: (opcional) número de segundos no valor opcional inference_timeout.
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,
)

Anote o ENDPOINT_ID no final da URI do endpoint:

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')

Criar o endpoint de inferência on-line com automação do PSC (prévia)

A inferência on-line se integra à automação de conectividade de serviço, que permite configurar endpoints de inferência com a automação do PSC. Isso simplifica o processo criando automaticamente endpoints de PSC e é particularmente útil para desenvolvedores de ML que não têm permissões para criar recursos de rede, como regras de encaminhamento em um projeto.

Para começar, o administrador de rede precisa estabelecer uma política de conexão de serviço. Essa política é uma configuração única por projeto e rede que permite que a Vertex AI (classe de serviço gcp-vertexai) gere endpoints do PSC nos seus projetos e redes.

Em seguida, crie endpoints usando a configuração de automação do PSC e implante seus modelos. Quando a implantação for concluída, as informações relevantes do endpoint PSC estarão acessíveis nos endpoints.

Limitações

  • O VPC Service Controls não é compatível.
  • Um limite regional de 500 endpoints se aplica às configurações de automação do PSC.
  • Os resultados da automação do PSC são excluídos quando nenhum modelo é implantado ou está em processo de implantação no endpoint. Após a limpeza e a implantação do modelo, os novos resultados de automação apresentam endereços IP e regras de encaminhamento distintos.

Criar uma política de conexão de serviço

Você precisa ser um administrador de rede para criar a política de conexão de serviço. Uma política de conexão de serviço é necessária para permitir que a Vertex AI crie endpoints do PSC nas suas redes. Sem uma política válida, a automação falha com um erro CONNECTION_POLICY_MISSING.

  1. Crie sua política de conexão de serviço.

    • POLICY_NAME: um nome especificado pelo usuário para a política.
    • PROJECT_ID: o ID do projeto de serviço em que você está criando recursos da Vertex AI.

    • VPC_PROJECT: o ID do projeto em que a VPC do cliente está localizada. Para a configuração de uma única VPC, é igual a $PROJECT. Para a configuração da VPC compartilhada, esse é o projeto host da VPC.

    • NETWORK_NAME: o nome da rede a ser implantada.

    • REGION: a região da rede.

    • PSC_SUBNETS: as sub-redes do Private Service Connect a serem usadas.

    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
    
  2. Acesse a política de conexão de serviço.

    gcloud network-connectivity service-connection-policies list \
        --project=VPC_PROJECT -region=REGION

    Para uma configuração de VPC única, um exemplo é assim:

        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

Criar o endpoint de inferência on-line com a configuração de automação do PSC

No PSCAutomationConfig, verifique se o projectId está na lista de permissões.

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • REGION: a região em que você está usando a Vertex AI.
  • VERTEX_AI_PROJECT_ID: o ID do projeto Google Cloud em que você está criando o endpoint de inferência on-line.
  • VERTEX_AI_ENDPOINT_NAME: o nome de exibição do endpoint de previsão on-line.
  • 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 da solicitação:

{
  {
    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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "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"
    }
  }
}
Anote o ENDPOINT_ID.

Python

Antes de testar esse exemplo, siga as instruções de configuração para Python no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Python.

Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

Substitua:

  • VERTEX_AI_PROJECT_ID: o ID do Google Cloud projeto em que você está criando o endpoint de inferência on-line
  • REGION: a região em que você está usando a Vertex AI.
  • VERTEX_AI_ENDPOINT_NAME: o nome de exibição do endpoint de inferência on-line
  • NETWORK_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,
)

Implantar o modelo

Depois de criar o endpoint de inferência on-line com Private Service Connect ativado, implante seu modelo nele, seguindo as as etapas descritas em Implantar um modelo em um endpoint.

Criar endpoint do PSC manualmente

Acessar o URI do anexo de serviço

Quando você implanta o modelo, um anexo de serviço é criado para o endpoint de inferência on-line. Esse anexo de serviço representa o serviço de inferência on-line da Vertex AI que está sendo exposto à sua rede VPC. Execute o comando Comando gcloud ai endpoints describe para receber o URI do anexo de serviço.

  1. Liste apenas o valor serviceAttachment dos detalhes do endpoint:

    gcloud ai endpoints describe ENDPOINT_ID \
    --project=VERTEX_AI_PROJECT_ID \
    --region=REGION \
    | grep -i serviceAttachment
    

    Substitua:

    • ENDPOINT_ID: o ID do endpoint de inferência on-line
    • VERTEX_AI_PROJECT_ID: o ID do projeto Google Cloud em que você criou o endpoint de inferência on-line
    • REGION: a região desta solicitação

    O resultado será assim:

    serviceAttachment: projects/ac74a9f84c2e5f2a1-tp/regions/us-central1/serviceAttachments/gkedpm-c6e6a854a634dc99472bb802f503c1
    
  2. Anote toda a string no campo serviceAttachment. Isto é o URI do anexo de serviço.

Criar uma regra de encaminhamento

É possível reservar um endereço IP interno e criar uma regra de encaminhamento a esse endereço. Para criar a regra de encaminhamento, você precisa do URI do anexo de serviço da etapa anterior.

  1. 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:

    • ADDRESS_NAME: um nome para o endereço IP interno
    • VPC_PROJECT_ID: o ID do projeto Google Cloud que hospeda sua rede VPC. Se o endpoint de inferência on-line e regra de encaminhamento do Private Service Connect são hospedados no mesmo projeto, use VERTEX_AI_PROJECT_ID para esse parâmetro.
    • REGION: a região Google Cloud em que a regra de encaminhamento do Private Service Connect será criada
    • SUBNETWORK: o nome da sub-rede VPC que contém o endereço IP
    • INTERNAL_IP_ADDRESS: o endereço IP interno de reservar. Este parâmetro é opcional.

      • Se esse parâmetro for especificado, o endereço IP deverá estar dentro do do intervalo de endereços IP primário da sub-rede. O endereço IP pode ser um endereço RFC 1918 ou uma sub-rede com intervalos não RFC.
      • Se esse parâmetro for omitido, um endereço IP interno é alocado automaticamente.
      • Para mais informações, consulte Reserve um novo endereço IPv4 ou IPv6 interno estático.
  2. 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 o endereço IP tem um status RESERVED.

  3. Para criar a regra de encaminhamento e apontá-la para o anexo de serviço de inferência on-line, 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:

    • PSC_FORWARDING_RULE_NAME: um nome para a regra de encaminhamento
    • VPC_NETWORK_NAME: o nome da rede VPC em que o endpoint será criado
    • SERVICE_ATTACHMENT_URI: o anexo de serviço que você criou. observação
  4. Para verificar se o anexo de serviço aceita o endpoint, 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 um status ACCEPTED aparece para o campo pscConnectionStatus.

Opcional: ver o endereço IP interno

Se você não especificou um valor para INTERNAL_IP_ADDRESS quando criar a regra de encaminhamento, é possível coletar o endereço alocado automaticamente usando a 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:

  • VERTEX_AI_PROJECT_ID: ID do projeto
  • REGION: o nome da região da solicitação.

Opcional: extrair o endpoint do PSC do resultado da automação do PSC

É possível conseguir o endereço IP gerado e a regra de encaminhamento do endpoint de inferência. Veja 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"
    },
  ]
}

Confira alguns detalhes sobre o tratamento de erros.

  • A falha Automation não afeta o resultado da implantação do modelo.
  • O sucesso ou a falha da operação é indicado no estado.
    • Se a operação for bem-sucedida, o endereço IP e a regra de encaminhamento serão exibidos.
    • Se não for possível, uma mensagem de erro será exibida.
  • As configurações Automation são removidas quando não há modelos implantados ou em processo de implantação no endpoint. Isso resulta em uma mudança no endereço IP e na regra de encaminhamento se um modelo for implantado posteriormente.
  • A automação com falha não será recuperada. Em caso de falha, ainda é possível criar o endpoint do PSC manualmente. Consulte Criar endpoint do PSC manualmente.

Receber inferências on-line

Como receber inferências on-line de um endpoint com o Private Service Connect é semelhante a receber inferências on-line de endpoints públicos, exceto conforme as seguintes considerações:

  • A solicitação precisa ser enviada de um projeto especificado no projectAllowlist quando o endpoint de inferência on-line foi criado.
  • Se o acesso global não estiver ativado, a solicitação precisa ser enviada da mesma região.
  • Há duas portas abertas: 443 com TLS usando certificado autoassinado e 80 sem TLS. As duas portas são compatíveis com HTTP e GRPC. Todo o tráfego vai estar em uma rede privada e não vai passar pela Internet pública.
  • Para receber inferências, uma conexão precisa ser estabelecida usando o endereço IP estático do endpoint, a menos que um registro DNS seja criado para o endereço IP interno. Por exemplo, envie as solicitações predict para o seguinte endpoint:

    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 você reservou anteriormente.

  • Para solicitações gRPC: Para garantir a identificação adequada do endpoint para solicitações gRPC, é necessário incluir o cabeçalho x-vertex-ai-endpoint-id. Isso é necessário porque as informações do endpoint não são transmitidas no caminho da solicitação para comunicação gRPC.

  • Conexões seguras (porta 443): ao estabelecer conexões seguras usando a porta 443, o servidor usa um certificado autoassinado. Para continuar com a conexão, recomendamos uma das seguintes abordagens:

    • Opção 1: ignorar a validação de certificado: configure o cliente para ignorar a validação de certificado e estabelecer a conexão usando o endereço IP do servidor ou um método de resolução de DNS preferido.
    • Opção 2: integração do repositório de confiança: obtenha o certificado autoassinado do servidor, adicione-o ao repositório de confiança local do sistema cliente e use o nome de DNS no formato *.prediction.p.vertexai.goog para estabelecer a conexão. Esse método garante a comunicação segura por meio da validação de certificado.

As seções a seguir mostram exemplos de como enviar a predict solicitação usando 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 arquivo JSON. que contém a entrada da solicitação.

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#at-lifetime

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 registro DNS para o endereço IP interno

Recomendamos que você crie um registro DNS para receber inferências on-line do endpoint sem precisar especificar o endereço IP interno.

Para mais informações, consulte Outras maneiras de configurar o DNS.

  1. Crie uma zona DNS particular usando o comando gcloud dns managed-zones create. Essa zona está associada à rede VPC em que 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:

    • ZONE_NAME: o nome da zona de DNS.
  2. Para criar um registro 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:

    • VERTEX_AI_PROJECT_NUMBER: o número do projeto VERTEX_AI_PROJECT_ID. Você pode localizar esse número do projeto no console Google Cloud . Para mais informações, consulte Identificar projetos.
    • INTERNAL_IP_ADDRESS: o endereço IP interno do seu endpoint de inferência on-line

    Agora você pode enviar suas solicitações 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
    

Este é um exemplo de como enviar a predict solicitação para a zona de DNS usando 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 especificado no comando gcloud dns record-sets create.

Limitações

Os endpoints da Vertex AI com o Private Service Connect estão sujeitos à as seguintes limitações:

  • A implantação de modelos ajustados do Gemini não é compatível.
  • Não há suporte para saída particular de dentro do endpoint. Porque As regras de encaminhamento do Private Service Connect são unidirecionais, outro privado As cargas de trabalho doGoogle Cloud não são acessíveis dentro do contêiner.
  • Não é possível mudar o valor de projectAllowlist de um endpoint.
  • Não há suporte para a Vertex Explainable AI.
  • Antes de excluir um endpoint, é necessário cancelar a implantação do modelo dele.
  • Se todos os modelos forem cancelados por mais de 10 minutos, o anexo de serviço poderá ser excluído. Verifique o status da conexão do Private Service Connect. Se for CLOSED, recrie a regra de encaminhamento.
  • Depois de excluir o endpoint, não será possível reutilizar o nome dele por até sete dias.
  • Um projeto pode ter até 10 valores projectAllowlist diferentes nas configurações do Private Service Connect.

A seguir