Private Service Connect permet la consommation privée de services sur des réseaux VPC appartenant à différents groupes, équipes, projets ou organisations. Vous pouvez publier et consommer des services à l'aide d'adresses IP que vous définissez et qui sont internes à votre réseau VPC, et pour que les points de terminaison Vector Search effectuent des recherches de similarité vectorielle.
L'activation de Private Service Connect sur un point de terminaison Vector Search est adaptée aux cas d'utilisation suivants :
- Nécessité d'une faible latence et d'une connexion sécurisée aux backends de livraison Vector Search.
- Espace d'adresses IP limité pour une réservation d'appairage de VPC exclusive.
- Accès requis aux backends de livraison à partir de plusieurs réseaux VPC utilisateur.
Pour en savoir plus sur la configuration de Private Service Connect, consultez la présentation de Private Service Connect dans la documentation du cloud privé virtuel (VPC).
Créer le point de terminaison d'index
Vous devez activer Private Service Connect lorsque vous créez votre point de terminaison. Cette opération s'apparente à la création d'autres points de terminaison dans Vertex AI.
REST
PROJECT : ID du projet de service dans lequel vous créez des ressources Vertex AI.
REGION : région du réseau.
DISPLAY_NAME : nom à afficher pour le point de terminaison. Ce nom est utilisé pour créer un ID pour le point de terminaison et ne peut pas être modifié ultérieurement.
VPC_PROJECTS : pour la configuration de VPC partagé, il s'agit d'une liste de projets hôtes de VPC séparés par une virgule. Pour une configuration de VPC autonome, cette valeur est identique à 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
Pour créer votre point de terminaison :
Cliquez sur le bouton suivant pour accéder à Vector Search dans la console Google Cloud . La liste de vos index actifs s'affiche.
Sélectionnez l'onglet Points de terminaison d'index. Les points de terminaison de votre index s'affichent.
Cliquez sur
Créer un point de terminaison. Le panneau Créer un point de terminaison d'index s'ouvre.Dans Nom à afficher, entrez un nom à afficher pour le point de terminaison d'index. Ce nom est utilisé pour créer un ID pour le point de terminaison et ne peut pas être modifié ultérieurement.
Sélectionnez une région dans le menu déroulant Région.
Sous Accès, cliquez sur Private Service Connect (Preview).
Un champ de texte s'affiche. Vous pouvez y spécifier les projets de VPC à utiliser. Ajoutez les ID ou les numéros des projets de VPC que vous souhaitez utiliser.
Cliquez sur Créer.
À propos des options de déploiement d'index
Vous pouvez déployer votre index avec une connectivité de service automatique ou manuelle.
- Déployer avec l'automatisation Private Service Connect : configurez une règle de connexion de service et déployez vos index. La configuration d'une règle de connexion de service vous permet de déployer sur un réseau spécifique sans créer d'adresse de calcul ni de règle de transfert à chaque fois.
- Déployer avec une connexion manuelle : déployez votre index, et créez manuellement une adresse de calcul et une règle de transfert. Vous pouvez choisir cette option si vous devez utiliser plusieurs adresses IP pour le même URI d'association de service, bien que ce ne soit pas un cas d'utilisation courant.
Déployer avec l'automatisation Private Service Connect
Vous pouvez configurer une règle de connexion de service pour ne pas avoir à créer manuellement une adresse de calcul et une règle de transfert après chaque déploiement d'index.
- Commencez par créer une règle de connexion de service qui spécifie le réseau, la classe de service et la région sur lesquels déployer les index. Il s'agit d'une configuration unique. Si vous l'avez déjà fait, passez à la procédure suivante.
- Déployez l'index.
Limites
L'automatisation n'autorise qu'une seule adresse IP par projet et par réseau. Si vous devez utiliser plusieurs adresses IP, consultez Déployer manuellement l'index.
Créer une règle de connexion de service
Vous devez être administrateur réseau pour créer une règle de connexion de service afin d'automatiser le déploiement de l'index.
Pour automatiser le déploiement de l'index, procédez comme suit :
Créez votre règle de connexion de service.
PROJECT : projet de service dans lequel vous créez des ressources Vertex AI.
VPC_PROJECT : projet dans lequel se trouve votre VPC client. Pour une configuration de VPC unique, il s'agit de la même valeur que $PROJECT. Pour une configuration de VPC partagé, il s'agit du projet hôte du VPC.
NETWORK_NAME : nom du réseau sur lequel le déploiement sera effectué, au format
projects/
./global/networks/ REGION : région du réseau.
PSC_SUBNETS : sous-réseaux Private Service Connect à utiliser.
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>
Affichez votre règle de connexion de service.
gcloud network-connectivity service-connection-policies list --project=<vpc_project> -–region=<region>
Pour en savoir plus sur les règles de connexion de service, consultez Configurer des règles de connexion de service.
Déployer l'index
REST
PROJECT : projet de service dans lequel vous créez des ressources Vertex AI.
VPC_PROJECT : projet dans lequel se trouve votre VPC client. Pour une configuration de VPC partagé, il s'agit du projet hôte du VPC.
DISPLAY_NAME : nom à afficher pour le point de terminaison. Ce nom est utilisé pour créer un ID pour le point de terminaison et ne peut pas être modifié ultérieurement.
NETWORK_NAME : nom du réseau sur lequel le déploiement sera effectué, au format
projects/
./global/networks/ REGION : région du réseau.
PSC_SUBNETS : sous-réseau Private Service Connect à utiliser.
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
Pour déployer votre point de terminaison :
Cliquez sur le bouton suivant pour accéder à Vector Search dans la console Google Cloud . La liste de vos index actifs s'affiche.
Cliquez sur le bouton Déployer du point de terminaison Vector Search compatible avec Private Service Connect que vous souhaitez déployer. Le panneau latéral Déployer l'index s'affiche.
Dans Nom à afficher, entrez un nom à afficher pour l'index déployé. Ce nom est utilisé pour créer l'ID et ne peut pas être modifié ultérieurement.
Cliquez sur Point de terminaison, puis sélectionnez le point de terminaison de l'index sur lequel vous souhaitez effectuer le déploiement.
Si vous le souhaitez, cliquez sur Type de machine pour choisir manuellement le type de machine sur lequel déployer l'index. Par défaut, le type de machine est sélectionné automatiquement en fonction de la taille du segment d'index.
Vous devez maintenant ajouter des configurations d'automatisation Private Service Connect. Pour ce faire :
Dans la section Configurations d'automatisation PSC, cliquez sur
Ajouter une configuration.Saisissez le nom du projet VPC auquel vous souhaitez vous connecter.
Indiquez le nom du réseau du projet VPC à connecter. Il doit être au format
projects/
<project_number>
/global/networks/
<network_name>
.Vous pouvez également cliquer sur
Ajouter une configuration et continuer à ajouter des configurations d'automatisation Private Service Connect.Cliquez sur Déployer pour terminer.
Supprimer la règle de connexion de service
Si vous devez supprimer la règle de connexion de service, exécutez la commande suivante :
gcloud network-connectivity service-connection-policies delete --project=<vpc_project> –-region=<region> <policy_name>
Pour en savoir plus sur les règles de connexion de service, consultez Configurer des règles de connexion de service.
Déployer avec une connexion manuelle
Déployez l'index et créez une règle de transfert dans votre projet VPC.
Déployer l'index
Maintenant que l'index est prêt, vous pouvez, à cette étape, le déployer sur le point de terminaison que vous avez créé avec Private Service Connect activé.
gcloud
Cet exemple utilise la commandegcloud ai index-endpoints deploy-index
.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- INDEX_ENDPOINT_ID : ID du point de terminaison de l'index.
- DEPLOYED_INDEX_ID : chaîne spécifiée par l'utilisateur pour identifier de manière unique l'index déployé. Ce nom doit commencer par une lettre et ne peut contenir que des lettres, des chiffres ou des traits de soulignement. Consultez DeployedIndex.id pour connaître les consignes de format.
- DEPLOYED_INDEX_ENDPOINT_NAME : nom à afficher du point de terminaison de l'index déployé.
- INDEX_ID : ID de l'index.
- LOCATION : région dans laquelle vous utilisez Vertex AI.
- PROJECT_ID : ID de votre projet Google Cloud .
Exécutez la commande suivante :
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
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- INDEX_ENDPOINT_ID : ID du point de terminaison de l'index.
- DEPLOYED_INDEX_ID : chaîne spécifiée par l'utilisateur pour identifier de manière unique l'index déployé. Ce nom doit commencer par une lettre et ne peut contenir que des lettres, des chiffres ou des traits de soulignement. Consultez DeployedIndex.id pour connaître les consignes de format.
- DEPLOYED_INDEX_ENDPOINT_NAME : nom à afficher du point de terminaison de l'index déployé.
- INDEX_ID : ID de l'index.
- LOCATION : région dans laquelle vous utilisez Vertex AI.
- PROJECT_ID : ID de votre projet Google Cloud .
- PROJECT_NUMBER : numéro de projet généré automatiquement pour votre projet.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID:deployIndex
Corps JSON de la requête :
{ "deployedIndex": { "id": "DEPLOYED_INDEX_ID", "index": "projects/PROJECT_ID/locations/LOCATION/indexes/INDEX_ID", "displayName": "DEPLOYED_INDEX_ENDPOINT_NAME" } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "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
L'exemple suivant utilise la ressource Terraform vertex_ai_index_endpoint_deployed_index
pour créer un point de terminaison d'index déployé.
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
SDK Vertex AI pour Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API SDK Vertex AI pour Python.
Console
Suivez les instructions ci-dessous pour déployer votre index.
- Dans la section Vertex AI de la console Google Cloud , accédez à la section Déployer et utiliser. Sélectionnez Vector Search.
Accéder à Vector Search La liste de vos index actifs s'affiche.
- Sélectionnez le nom de l'index que vous souhaitez déployer. La page d'informations de l'index s'affiche.
- Sur la page d'informations de l'index, cliquez sur Déployer sur un point de terminaison. Le panneau de déploiement d'index s'ouvre.
- Entrez un nom à afficher. Il sert d'identifiant et ne peut pas être modifié par la suite.
- Dans le menu déroulant Point de terminaison, sélectionnez le point de terminaison sur lequel vous souhaitez déployer cet index. Remarque : le point de terminaison n'est pas disponible si l'index y est déjà déployé.
- Facultatif : dans le champ Type de machine, sélectionnez une mémoire standard ou élevée.
- Facultatif. Sélectionnez Activer l'autoscaling pour redimensionner automatiquement le nombre de nœuds en fonction des demandes de vos charges de travail. Le nombre d'instances répliquées par défaut est de 2 si l'autoscaling est désactivé.
- Cliquez sur Déployer pour déployer votre index sur le point de terminaison. Remarque : le déploiement prend environ 30 minutes.
Créer une règle de transfert dans le projet VPC
Une fois le déploiement d'index terminé, le point de terminaison d'index renvoie un URI de rattachement de service à la place d'une adresse IP. Vous devez créer une adresse de calcul, ainsi qu'une règle de transfert dans le projet VPC ciblant le rattachement de service à l'aide de l'adresse de calcul créée. Pour créer une adresse de calcul, utilisez l'exemple suivant :
gcloud compute addresses create ${ADDRESS_NAME:?} \
--region=${REGION:?} \
--subnet=${SUBNET_NAME:?} \
--project=${VPC_PROJECT:?}
Pour créer une règle de transfert ciblant l'URI du rattachement de service à l'aide de l'adresse de calcul créée, utilisez l'exemple suivant :
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:?}
(Facultatif) Créer un enregistrement DNS pour l'adresse IP
Si vous souhaitez vous connecter et charger sans mémoriser l'adresse IP réelle, vous pouvez créer un enregistrement DNS. Cette étape est facultative.
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:?}
Envoyer des requêtes au point de terminaison de l'index
Maintenant que vous avez créé un point de terminaison avec Private Service Connect et créé l'index, vous pouvez commencer à exécuter des requêtes.
Pour interroger votre index, consultez Interroger les index pour obtenir les voisins les plus proches.
Étapes suivantes
- Découvrez comment modifier et recompiler votre index.
- Apprenez à surveiller le point de terminaison de l'index.