Private Service Connect di Vector Search

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:

  1. Richiedi bassa latenza e una connessione sicura ai backend di pubblicazione di Vector Search.
  2. Disporre di spazio IP limitato per la prenotazione di peering VPC esclusiva.
  3. È 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: il progetto di servizio in cui stai creando le risorse Vertex AI.
  • VPC_PROJECT: il progetto in cui si trova il VPC del tuo cliente. Per una semplice configurazione di VPC, sarà uguale a $PROJECT. Per la configurazione di un VPC condiviso, sarà il progetto host del 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`" \
      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 comando gcloud 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.

    1. Nella sezione Vertex AI della console Google Cloud, vai alla sezione Deployment e utilizzo. Seleziona Ricerca vettoriale.

      Vai a Vector Search

    2. Viene visualizzato un elenco dei tuoi indici attivi.
    3. Seleziona il nome dell'indice di cui vuoi eseguire il deployment. Si apre la pagina dei dettagli dell'indice.
    4. Nella pagina dei dettagli dell'indice, fai clic su Esegui il deployment nell'endpoint. Si apre il riquadro di deployment dell'indice.
    5. Inserisci un nome visualizzato, che funge da ID e non può essere aggiornato.
    6. 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.
    7. (Facoltativo) Nel campo Tipo di macchina, seleziona Standard o con memoria elevata.
    8. 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.
    9. 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