Private Service Connect permite el consumo privado de servicios en las redes de VPC que pertenecen a distintos grupos, equipos, proyectos y 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
Debes habilitar Private Service Connect cuando crees tu extremo. Este procedimiento es similar a crear otros extremos en Vertex AI.
REST
PROJECT: Es el ID del proyecto de servicio en el que creas recursos de Vertex AI.
REGION: Es la región de la red.
DISPLAY_NAME: Es un nombre visible para el extremo. Este nombre se usa para crear un ID para el extremo y no se puede actualizar más adelante.
VPC_PROJECTS: Para la configuración de la VPC compartida, esta es una lista separada por comas de proyectos host de VPC. Para la configuración de VPC independiente, esto es lo mismo que PROJECT.
PROJECT=PROJECT_ID
VPC_PROJECT=VPC_PROJECT_ID
REGION=us-central1
VERTEX_ENDPOINT=REGION-aiplatform.googleapis.com
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/REGION/indexEndpoints \
-d '{
"displayName": "DISPLAY_NAME",
"privateServiceConnectConfig": {
"enablePrivateServiceConnect": true,
"projectAllowlist": [ "VPC_PROJECT_1", "VPC_PROJECT_2", "VPC_PROJECT_N"]
}
}
Console
Para crear tu extremo, sigue estos pasos:
Haz clic en el siguiente botón para ir a Vector Search en la consola de Google Cloud. Aparecerá una lista de tus índices activos.
Selecciona la pestaña Extremos de índice. Aparecerán tus extremos de índice.
Haz clic en
Crear extremo nuevo. Se abrirá el panel Crear un extremo de índice nuevo.En Nombre visible, ingresa un nombre visible para el extremo de índice. Este nombre se usa para crear un ID para el extremo y no se puede actualizar más adelante.
Selecciona una región del menú desplegable Región.
En Acceso, haz clic en Private Service Connect (versión preliminar).
Aparecerá un campo de texto en el que puedes especificar qué proyectos de VPC usar. Agrega los IDs o números de los proyectos de VPC que desees usar.
Haz clic en Crear.
Acerca de las opciones de implementación de índices
Puedes implementar tu índice con conectividad de servicio automática o manual.
- Implementa con la automatización de Private Service Connect: Configura una política de conexión de servicio y, luego, implementa tus índices. Configurar una política de conexión de servicio te permite implementar en una red específica sin crear una dirección de procesamiento y una regla de reenvío cada vez.
- Implementación con conexión manual: Implementa tu índice y crea manualmente una dirección de procesamiento y una regla de reenvío. Puedes elegir esta opción si necesitas usar varias direcciones IP para el mismo URI de archivo adjunto del servicio, aunque este no es un caso de uso común.
Implementa con la automatización de Private Service Connect
Puedes configurar una política de conexión de servicio para que no tengas que crear manualmente una dirección de procesamiento y una regla de reenvío después de cada implementación de índice.
- Primero, crea una política de conexión de servicio que especifique la red, la clase de servicio y la región en la que se implementarán los índices. Esta es una configuración que solo deberás realizar una vez. Si ya lo hiciste, ve al siguiente procedimiento.
- Implementa el índice.
Limitaciones
La automatización solo permite una dirección IP por proyecto y por red. Si necesitas usar varias direcciones IP, consulta Cómo implementar el índice de forma manual.
Crea una política de conexión de servicio
Debes ser administrador de red para crear una política de conexión de servicio que automatice la implementación de índices.
Para automatizar la implementación de índices, sigue estos pasos:
Crea tu política de conexión de servicio.
PROJECT: Es el proyecto de servicio en el que creas recursos de Vertex AI.
VPC_PROJECT: Es el proyecto en el que se encuentra tu VPC cliente. Para una configuración de VPC única, es igual a $PROJECT. Para la configuración de la VPC compartida, este es el proyecto host de VPC.
NETWORK_NAME: Es el nombre de la red en la que se implementará, en el formato
projects/
./global/networks/ REGION: Es la región de la red.
PSC_SUBNETS: Son las subredes de Private Service Connect que se usarán.
gcloud network-connectivity service-connection-policies create <policy_name> \ --project=<vpc_project> --network=<network_name> # in the format projects/<project_id>/global/networks/<network_name> \ --service-class=gcp-vertexai --region=<region> --subnets=<psc subnets>
Consulta tu política de conexión de servicio.
gcloud network-connectivity service-connection-policies list --project=<vpc_project> -–region=<region>
Para obtener más información sobre las políticas de conexión de servicios, consulta Configura las políticas de conexión de servicios.
Implementa el índice
REST
PROJECT: Es el proyecto de servicio en el que creas recursos de Vertex AI.
VPC_PROJECT: Es el proyecto en el que se encuentra tu VPC cliente. Para la configuración de la VPC compartida, este es el proyecto host de VPC.
DISPLAY_NAME: Es un nombre visible para el extremo. Este nombre se usa para crear un ID para el extremo y no se puede actualizar más adelante.
NETWORK_NAME: Es el nombre de la red en la que se implementará, en el formato
projects/
./global/networks/ REGION: Es la región de la red.
PSC_SUBNETS: Es la subred de Private Service Connect que se usará.
PROJECT=PROJECT
VPC_PROJECTS=VPC_PROJECTS
REGION=REGION
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "Content-Type: application/json; charset=utf-8" "https://REGIONAL_ENDPOINT.googleapis.com/v1/projects/PROJECT_NUMBER/locations/REGION/indexEndpoints/INDEX_ENDPOINT_ID:deployIndex"
-d '{
"deployedIndex": {
"id": "DEPLOYED_INDEX_ID",
"index": "projects/PROJECT/locations/us-central1/indexes/INDEX_ID ",
"displayName": "DISPLAY_NAME",
"psc_automation_configs": [
{ "project_id": "PROJECT_1", "network": "NETWORK_NAME_1" },
{ "project_id": "PROJECT_2", "network": "NETWORK_NAME_2" },
{ "project_id": "PROJECT_N", "network": "NETWORK_NAME_N" }]
}
}'
Console
Para implementar tu extremo, haz lo siguiente:
Haz clic en el siguiente botón para ir a Vector Search en la consola de Google Cloud. Aparecerá una lista de tus índices activos.
Haz clic en el botón Implementar del extremo de Vector Search habilitado para Private Service Connect que deseas implementar. Aparecerá el panel deslizante Deploy index.
En Nombre visible, ingresa un nombre visible para el índice implementado. Este nombre se usa para crear el ID y no se puede actualizar más adelante.
Haz clic en Extremo y elige el extremo de índice en el que deseas implementarlo.
De forma opcional, haz clic en Tipo de máquina para elegir manualmente el tipo de máquina en el que se implementará el índice. De forma predeterminada, el tipo de máquina se selecciona automáticamente según el tamaño del fragmento del índice.
Ahora debes agregar parámetros de configuración de automatización de Private Service Connect. Para ello, deberás hacer lo siguiente:
En la sección Parámetros de configuración de automatización de PSC, haz clic en
Agregar configuración nueva.Ingresa el nombre del proyecto de VPC con el que te quieres conectar.
Ingresa el nombre de la red del proyecto de VPC al que te quieres conectar. Debe tener el formato
projects/
<project_number>
/global/networks/
<network_name>
.De manera opcional, haz clic en
Agregar nueva configuración y continúa agregando parámetros de configuración de automatización de Private Service Connect.Haz clic en Implementar para terminar.
Borra la política de conexión de servicio
Si necesitas borrar la política de conexión de servicio, ejecuta el siguiente comando:
gcloud network-connectivity service-connection-policies delete --project=<vpc_project> –-region=<region> <policy_name>
Para obtener más información sobre las políticas de conexión de servicios, consulta Configura las políticas de conexión de servicios.
Implementa con conexión manual
Implementa el índice y crea una regla de reenvío en tu proyecto de VPC.
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, 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 Google Cloud ID de tu proyecto.
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 Google Cloud ID de tu proyecto.
- 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" } }
Terraform
En el siguiente ejemplo, se usa el recurso vertex_ai_index_endpoint_deployed_index
de Terraform para crear un extremo de índice implementado.
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
SDK de Vertex AI para Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación del SDK de Vertex AI de referencia de la API de Vertex para Python.
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
Ve a Búsqueda de vectores. 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.