Private Service Connect consente il consumo privato dei servizi nelle reti VPC appartenenti a gruppi, team, progetti od organizzazioni diversi. Puoi pubblicare e utilizzare servizi utilizzando indirizzi IP da te definiti e interni alla tua rete VPC e consentire agli endpoint Vector Search di eseguire ricerche di somiglianze vettoriali.
L'abilitazione di Private Service Connect su un endpoint Vector Search è adatta ai casi d'uso che:
- Richiedi bassa latenza e una connessione sicura ai backend di pubblicazione di Vector Search.
- Disporre di spazio IP limitato per la prenotazione di peering VPC esclusiva.
- È necessario accedere ai backend di gestione da più reti VPC utente.
Per saperne di più sulla configurazione di Private Service Connect, consulta la panoramica di Private Service Connect nella documentazione di Virtual Private Cloud (VPC).
Crea l'endpoint indice
Per creare un endpoint con Private Service Connect abilitato, devi definirlo quando crei l'endpoint. È un processo simile alla creazione di altri endpoint in 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`" \
http://$VERTEX_ENDPOINT/v1/projects/$PROJECT/locations/$REGION/indexEndpoints \
-d '{displayName: "<your-index-endpoint-name>", privateServiceConnectConfig:
{ enablePrivateServiceConnect: true, projectAllowlist: ["'$VPC_PROJECT'", "'$PROJECT'"] }}'
Esegui il deployment dell'indice
Ora che l'indice è pronto, in questo passaggio eseguirai il deployment dell'indice nell'endpoint che hai creato con Private Service Connect abilitato.
gcloud
In questo esempio viene utilizzato il comandogcloud ai index-endpoints deploy-index
.
Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:
- INDEX_ENDPOINT_ID: l'ID dell'endpoint indice.
- DEPLOYED_INDEX_ID: una stringa specificata dall'utente per identificare in modo univoco l'indice di cui è stato eseguito il deployment. Deve iniziare con una lettera e contenere solo lettere, numeri o trattini bassi. Consulta DeployedIndex.id per le linee guida sul formato.
- DEPLOYED_INDEX_ENDPOINT_NAME: nome visualizzato dell'endpoint indice di cui è stato eseguito il deployment.
- INDEX_ID: l'ID dell'indice.
- LOCATION: la regione in cui utilizzi Vertex AI.
- PROJECT_ID: il tuo ID progetto Google Cloud.
Esegui questo 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
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- INDEX_ENDPOINT_ID: l'ID dell'endpoint indice.
- DEPLOYED_INDEX_ID: una stringa specificata dall'utente per identificare in modo univoco l'indice di cui è stato eseguito il deployment. Deve iniziare con una lettera e contenere solo lettere, numeri o trattini bassi. Consulta DeployedIndex.id per le linee guida sul formato.
- DEPLOYED_INDEX_ENDPOINT_NAME: nome visualizzato dell'endpoint indice di cui è stato eseguito il deployment.
- INDEX_ID: l'ID dell'indice.
- LOCATION: la regione in cui utilizzi Vertex AI.
- PROJECT_ID: il tuo ID progetto Google Cloud.
- PROJECT_NUMBER: il numero di progetto generato automaticamente dal progetto.
Metodo HTTP e URL:
POST http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID:deployIndex
Corpo JSON della richiesta:
{ "deployedIndex": { "id": "DEPLOYED_INDEX_ID", "index": "projects/PROJECT_ID/locations/LOCATION/indexes/INDEX_ID", "displayName": "DEPLOYED_INDEX_ENDPOINT_NAME" } }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Utilizza queste istruzioni per eseguire il deployment dell'indice.
- Nella sezione Vertex AI della console Google Cloud, vai alla sezione Deployment e utilizzo. Seleziona Ricerca vettoriale.
- Viene visualizzato un elenco dei tuoi indici attivi.
- Seleziona il nome dell'indice di cui vuoi eseguire il deployment. Si apre la pagina dei dettagli dell'indice.
- Nella pagina dei dettagli dell'indice, fai clic su Esegui il deployment nell'endpoint. Si apre il riquadro di deployment dell'indice.
- Inserisci un nome visualizzato, che funge da ID e non può essere aggiornato.
- Dal menu a discesa Endpoint, seleziona l'endpoint in cui vuoi eseguire il deployment dell'indice. Nota: l'endpoint non è disponibile se è già stato eseguito il deployment dell'indice.
- (Facoltativo) Nel campo Tipo di macchina, seleziona Standard o con memoria elevata.
- Facoltativo. Seleziona Abilita scalabilità automatica per ridimensionare automaticamente il numero di nodi in base alle esigenze dei tuoi carichi di lavoro. Il numero predefinito di repliche è 2 se la scalabilità automatica è disabilitata.
- Fai clic su Esegui il deployment per eseguire il deployment dell'indice nell'endpoint. Nota: il deployment richiede circa 30 minuti.
Crea una regola di forwarding nel progetto VPC
Al termine del deployment dell'indice, l'endpoint indice restituisce un URI del collegamento a un servizio anziché un indirizzo IP. Devi creare un indirizzo di computing e una regola di forwarding nel progetto VPC che ha come target il collegamento al servizio utilizzando l'indirizzo di computing creato. Per creare un indirizzo di computing, utilizza l'esempio seguente:
gcloud compute addresses create ${ADDRESS_NAME:?} \
--region=${REGION:?} \
--subnet=${SUBNET_NAME:?} \
--project=${VPC_PROJECT:?}
Per creare una regola di forwarding che abbia come target l'URI del collegamento al servizio utilizzando l'indirizzo di computing creato, utilizza l'esempio seguente:
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:?}
(Facoltativo) Crea un record DNS per l'indirizzo IP
Se vuoi connetterti e caricare contenuti senza memorizzare l'indirizzo IP effettivo, puoi creare un record DNS. Questo passaggio è facoltativo.
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:?}
Invia query all'endpoint indice
Ora che hai creato un endpoint con Private Service Connect e hai creato l'indice, puoi iniziare a eseguire le query.
Per eseguire query sull'indice, vedi Eseguire query sugli indici per ottenere i vicini più prossimi.
Passaggi successivi
- Scopri come aggiornare e ricreare l'indice
- Scopri come monitorare l'endpoint indice