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:
- Requieren latencia baja y una conexión segura con los backends de entrega de Vector Search.
- Tienen espacio de IP limitado para la reserva de intercambio de tráfico de VPC exclusiva.
- 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=<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 comandogcloud 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.
- 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
- Aparecerá una lista de los índices activos.
- Selecciona el nombre del índice que deseas implementar. Se abrirá la página de detalles del índice.
- En la página de detalles del índice, haz clic en Implementar en el extremo. Se abrirá el panel de implementación de índices.
- Ingresa un nombre visible. Este nombre actúa como un ID y no se puede actualizar.
- 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.
- Opcional: en el campo Tipo de máquina, selecciona estándar o capacidad de memoria alta.
- 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.
- 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 dirección de procesamiento y una regla de reenvío en el proyecto de VPC que se oriente al adjunto de servicio mediante la dirección de procesamiento creada. Para crear una dirección de procesamiento, usa el siguiente ejemplo:
gcloud compute addresses create ${ADDRESS_NAME:?} \
--region=${REGION:?} \
--subnet=${SUBNET_NAME:?} \
--project=${VPC_PROJECT:?}
Para crear una regla de reenvío que se oriente al URI del adjunto de servicio mediante la dirección de procesamiento creada, usa el siguiente ejemplo:
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?
- Obtén más información sobre cómo actualizar y volver a compilar el índice.
- Obtén más información sobre cómo supervisar el extremo del índice.