Private Service Connect de Vector Search

Private Service Connect permite el consumo privado de servicios en las redes de VPC que pertenecen a distintos grupos, equipos, proyectos u organizaciones. Puedes publicar y consumir servicios usando direcciones IP que definas y que sean internas a tu red de VPC, y para que los extremos de Vector Search realicen búsquedas de similitud de vectores.

La habilitación de Private Service Connect en un extremo de Vector Search es adecuada para casos de uso que tienen las siguientes características:

  1. Se requiere una latencia baja y una conexión segura con los backends de entrega de Vector Search.
  2. Tienen espacio de IP limitado para la reserva de intercambio de tráfico de VPC exclusiva.
  3. Deben acceder a los backends activos desde varias redes de VPC de usuario.

Para obtener más información sobre cómo configurar Private Service Connect, consulta la Descripción general de Private Service Connect en la documentación de la nube privada virtual (VPC).

Crea el extremo del índice

Para crear un extremo con Private Service Connect habilitado, debes definirlo cuando crees el extremo. Esto es similar a crear otros extremos en Vertex AI.

  • PROJECT: Es el proyecto de servicio en el que creas recursos de Vertex AI.
  • VPC_PROJECT: El proyecto en el que reside tu VPC cliente. Para una configuración de VPC simple, será igual a $PROJECT. Para la configuración de la VPC compartida, este será el proyecto host de 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'"] }}'
    

    Implementa el índice

    Ahora que el índice está listo, en este paso, implementarás el índice en el extremo que creaste con Private Service Connect habilitado.

    {

    gcloud

    En este ejemplo, se usa el comando gcloud ai index-endpoints deploy-index.

    Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:

    • INDEX_ENDPOINT_ID: Es el ID del extremo del índice.
    • DEPLOYED_INDEX_ID: Una cadena especificada por el usuario para identificar de forma inequívoca el índice implementado. Debe comenzar con una letra y contener solo letras, números o guiones bajos. Consulta DeployedIndex.id para obtener lineamientos de formato.
    • DEPLOYED_INDEX_ENDPOINT_NAME: nombre visible del extremo de índice implementado.
    • INDEX_ID: Es el ID del índice.
    • LOCATION: la región en la que usas Vertex AI.
    • PROJECT_ID: El ID del proyecto de Google Cloud.

    Ejecuta el siguiente comando:

    Linux, macOS o 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 cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • INDEX_ENDPOINT_ID: Es el ID del extremo del índice.
    • DEPLOYED_INDEX_ID: Una cadena especificada por el usuario para identificar de forma inequívoca el índice implementado. Debe comenzar con una letra y contener solo letras, números o guiones bajos. Consulta DeployedIndex.id para obtener lineamientos de formato.
    • DEPLOYED_INDEX_ENDPOINT_NAME: nombre visible del extremo de índice implementado.
    • INDEX_ID: Es el ID del índice.
    • LOCATION: la región en la que usas Vertex AI.
    • PROJECT_ID: El ID del proyecto de Google Cloud.
    • PROJECT_NUMBER: el número de proyecto de tu proyecto generado de forma automática.

    HTTP method and URL:

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

    Cuerpo JSON de la solicitud:

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

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

    {
     "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

    Usa estas instrucciones para implementar tu índice.

    1. En la sección de Vertex AI de la consola de Google Cloud, ve a la sección Implementación y uso. Elige Vector Search

      Ir a Búsqueda de vectores

    2. Aparecerá una lista de los índices activos.
    3. Selecciona el nombre del índice que deseas implementar. Se abrirá la página de detalles del índice.
    4. En la página de detalles del índice, haz clic en Implementar en el extremo. Se abrirá el panel de implementación de índices.
    5. Ingresa un nombre visible. Este nombre actúa como un ID y no se puede actualizar.
    6. En el menú desplegable Extremo, selecciona el extremo en el que deseas implementar este índice. Nota: El extremo no estará disponible si el índice ya se implementó en él.
    7. Opcional: en el campo Tipo de máquina, selecciona estándar o capacidad de memoria alta.
    8. Opcional. Selecciona Habilitar ajuste de escala automático para cambiar el tamaño de la cantidad de nodos automáticamente según las demandas de tus cargas de trabajo. La cantidad predeterminada de réplicas es 2 si el ajuste de escala automático está inhabilitado.
    9. Haz clic en Implementar para implementar el modelo en el extremo. Nota: La implementación demora alrededor de 30 minutos.

    Crea una regla de reenvío en el proyecto de VPC

    Una vez completada la implementación del índice, el extremo del índice muestra un URI de adjunto del servicio en lugar de una dirección IP. Debes crear una regla de reenvío en el proyecto de VPC que se oriente al adjunto de servicio. Para crear una regla de reenvío, usa el siguiente ejemplo:

    gcloud compute addresses create ${ADDRESS_NAME:?} \
        --region=${REGION:?} \
        --subnet=${SUBNET_NAME:?} \
        --project=${VPC_PROJECT:?}
    
    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) Crea un registro DNS para la dirección IP

    Si deseas conectarte y cargar sin memorizar la dirección IP real, puedes crear un registro DNS. Este paso es 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:?}
    

    Envía consultas al extremo del índice

    Ahora que creaste un extremo con Private Service Connect y creaste el índice, puedes comenzar a ejecutar consultas.

    Para consultar tu índice, consulta Índices de consulta para obtener los vecinos más cercanos.

    ¿Qué sigue?