Private Service Connect do Vector Search

O Private Service Connect permite o consumo privado de serviços em redes VPC que pertencem a diferentes grupos, equipes, projetos ou organizações. É possível publicar e consumir serviços usando endereços IP definidos por você e internos à sua rede VPC para que os endpoints do Vector Search realizem pesquisas de semelhança vetorial.

A ativação do Private Service Connect em um endpoint do Vector Search é adequada para casos de uso que:

  1. Exigem baixa latência e uma conexão segura com os back-ends de exibição do Vector Search.
  2. Têm espaço IP limitado para reservas exclusivas de peering de VPC.
  3. É preciso acessar os back-ends de exibição em redes VPC de vários usuários.

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

Criar o endpoint do índice

Para criar um endpoint com o Private Service Connect ativado, defina-o ao criar o endpoint. Isso é semelhante à criação de outros endpoints na Vertex AI.

  • PROJECT: o projeto de serviço em que você está criando recursos da Vertex AI.
  • VPC_PROJECT: o projeto em que a VPC do cliente reside. Para a configuração simples da VPC, será o mesmo que $PROJECT. Para a configuração da VPC compartilhada, será o projeto host da VPC.
  • PROJECT=<your-service-project>
    VPC_PROJECT=<your-vpc-project>
    REGION=us-central1
    VERTEX_ENDPOINT=$REGION-aiplatform.googleapis.com
    curl -H "Content-Type: application/json" \
      -H "Authorization: Bearer `gcloud auth print-access-token`" \
      https://$VERTEX_ENDPOINT/v1/projects/$PROJECT/locations/$REGION/indexEndpoints \
      -d '{displayName: "<your-index-endpoint-name>", privateServiceConnectConfig:
      { enablePrivateServiceConnect: true, projectAllowlist: ["'$VPC_PROJECT'", "'$PROJECT'"] }}'
    

    Implantar o índice

    Agora que o índice está pronto, nesta etapa, implante o índice no endpoint criado com o Private Service Connect ativado.

    gcloud

    O exemplo a seguir usa o comando gcloud ai index-endpoints deploy-index.

    Antes de usar os dados do comando abaixo, faça estas substituições:

    • INDEX_ENDPOINT_ID: o ID do endpoint do índice.
    • DEPLOYED_INDEX_ID: uma string especificada pelo usuário para identificar de maneira exclusiva o índice implantado. Ela precisa começar com uma letra e conter apenas letras, números ou sublinhados. Consulte DeployedIndex.id para ver as diretrizes de formato.
    • DEPLOYED_INDEX_ENDPOINT_NAME: nome de exibição do endpoint do índice implantado.
    • INDEX_ID: o ID do índice.
    • LOCATION: a região em que você está usando a Vertex AI.
    • PROJECT_ID: o ID do projeto do Google Cloud.

    Execute o este comando:

    Linux, macOS ou Cloud Shell

    gcloud ai index-endpoints deploy-index INDEX_ENDPOINT_ID \
        --deployed-index-id=DEPLOYED_INDEX_ID \
        --display-name=DEPLOYED_INDEX_ENDPOINT_NAME \
        --index=INDEX_ID \
        --region=LOCATION \
        --project=PROJECT_ID

    Windows (PowerShell)

    gcloud ai index-endpoints deploy-index INDEX_ENDPOINT_ID `
        --deployed-index-id=DEPLOYED_INDEX_ID `
        --display-name=DEPLOYED_INDEX_ENDPOINT_NAME `
        --index=INDEX_ID `
        --region=LOCATION `
        --project=PROJECT_ID

    Windows (cmd.exe)

    gcloud ai index-endpoints deploy-index INDEX_ENDPOINT_ID ^
        --deployed-index-id=DEPLOYED_INDEX_ID ^
        --display-name=DEPLOYED_INDEX_ENDPOINT_NAME ^
        --index=INDEX_ID ^
        --region=LOCATION ^
        --project=PROJECT_ID

    REST

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

    • INDEX_ENDPOINT_ID: o ID do endpoint do índice.
    • DEPLOYED_INDEX_ID: uma string especificada pelo usuário para identificar de maneira exclusiva o índice implantado. Ela precisa começar com uma letra e conter apenas letras, números ou sublinhados. Consulte DeployedIndex.id para ver as diretrizes de formato.
    • DEPLOYED_INDEX_ENDPOINT_NAME: nome de exibição do endpoint do índice implantado.
    • INDEX_ID: o ID do índice.
    • LOCATION: a região em que você está usando a Vertex AI.
    • PROJECT_ID: o ID do projeto do Google Cloud.
    • PROJECT_NUMBER: o número do projeto gerado automaticamente.

    Método HTTP e URL:

    POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID:deployIndex
    

    Corpo JSON da solicitação:

    {
     "deployedIndex": {
       "id": "DEPLOYED_INDEX_ID",
       "index": "projects/PROJECT_ID/locations/LOCATION/indexes/INDEX_ID",
       "displayName": "DEPLOYED_INDEX_ENDPOINT_NAME"
     }
    }
    

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

    Você receberá uma resposta JSON semelhante a esta:

    {
     "name": "projects/PROJECT_NUMBER/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID",
     "metadata": {
       "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployIndexOperationMetadata",
       "genericMetadata": {
         "createTime": "2022-10-19T17:53:16.502088Z",
         "updateTime": "2022-10-19T17:53:16.502088Z"
       },
       "deployedIndexId": "DEPLOYED_INDEX_ID"
     }
    }
    

    Console

    Use estas instruções para implantar seu índice.

    1. Na seção Vertex AI do console do Google Cloud, acesse a seção Implantar e usar. Selecione Pesquisa de vetor

      Acessar a Vector Search

    2. Uma lista dos índices ativos será exibida.
    3. Selecione o nome do índice que você quer implantar. A página de detalhes do índice é aberta.
    4. Na página de detalhes do índice, clique em Implantar no endpoint. O painel de implantação do índice será aberto.
    5. Insira um nome de exibição. Ele funciona como um ID e não pode ser atualizado.
    6. No menu suspenso Endpoint, selecione o endpoint em que você quer implantar esse índice. Observação: o endpoint ficará indisponível se o índice já estiver implantado nele.
    7. Opcional: no campo Tipo de máquina, selecione "Padrão" ou "Alta memória".
    8. Opcional. Selecione Ativar escalonamento automático para redimensionar automaticamente o número de nós com base nas demandas das cargas de trabalho. Se o escalonamento automático estiver desativado, o número padrão de réplicas será 2.
    9. Clique em Implantar para implantar o modelo no endpoint. Observação: a implantação leva cerca de 30 minutos.

    Criar uma regra de encaminhamento no projeto VPC

    Após a conclusão da implantação do índice, o endpoint do índice retorna um URI de anexo de serviço em vez de um endereço IP. Você precisa criar um endereço de computação e uma regra de encaminhamento no projeto de VPC direcionado ao anexo de serviço usando o endereço de computação criado. Para criar um endereço de computação, use o exemplo a seguir:

    gcloud compute addresses create ${ADDRESS_NAME:?} \
        --region=${REGION:?} \
        --subnet=${SUBNET_NAME:?} \
        --project=${VPC_PROJECT:?}
    

    Para criar uma regra de encaminhamento que segmenta o URI do anexo de serviço usando o endereço de computação criado, use o exemplo a seguir:

    SERVICE_ATTACHMENT_URI=`gcloud ai index-endpoints describe {INDEX_ENDPOINT_ID}
    --format="value(deployedIndexes.privateEndpoints.serviceAttachment)"`
    
    gcloud compute forwarding-rules create ${ENDPOINT_NAME:?} \
        --network=${NETWORK_NAME:?} \
        --address=${ADDRESS_NAME:?} \
        --target-service-attachment=${SERVICE_ATTACHMENT_URI:?} \
        --project=${VPC_PROJECT:?} \
        --region=${REGION:?}
    

    (Opcional) Criar um registro DNS para o endereço IP

    Se você quiser se conectar e carregar sem memorizar o endereço IP real, crie um registro DNS. Esta etapa é opcional.

    DNS_NAME_SUFFIX=matchingengine.vertexai.goog. # Don't forget the "." in the end.
    DNS_NAME=${INDEX_ENDPOINT_ID:?}.${REGION:?}.${DNS_NAME_SUFFIX:?}
    
    gcloud dns managed-zones create ${DNS_ZONE_NAME:?} \
        --dns-name=${DNS_NAME_SUFFIX:?} \
        --visibility=private \
        --project=${VPC_PROJECT:?} \
        --region=${REGION:?}
    
    gcloud dns record-sets create ${DNS_NAME:?} \
        --rrdatas=${IP_ADDRESS:?} \
        --type=A --ttl=60 \
        --zone=${DNS_ZONE_NAME:?} \
        --project=${VPC_PROJECT:?} \
        --region=${REGION:?}
    

    Enviar consultas para o endpoint do índice

    Agora que você criou um endpoint com o Private Service Connect e criou o índice, é possível começar a executar consultas.

    Para consultar o índice, acesse Consultar índices para saber os vizinhos mais próximos.

    A seguir