Private Service Connect für die Vektorsuche

Private Service Connect ermöglicht die private Nutzung von Diensten in VPC-Netzwerken, die zu verschiedenen Gruppen, Teams, Projekten oder Organisationen gehören. Sie können Dienste mit von Ihnen definierten IP-Adressen in Ihrem VPC-Netzwerk veröffentlichen und nutzen. Außerdem können dadurch Vektorsuchendpunkte Suchvorgänge nach Vektorübereinstimmungen durchführen.

Das Aktivieren von Private Service Connect auf einem Vektorsuchendpunkt ist für Anwendungsfälle geeignet:

  1. Die eine niedrige Latenz und eine sichere Verbindung zu Bereitstellungs-Back-Ends der Vektorsuche erfordern.
  2. Die nur limitierte IP-Bereiche für exklusive VPC-Peering-Reservierungen haben.
  3. Die über mehrere Nutzer-VPC-Netzwerke auf die Bereitstellungs-Back-Ends zugreifen müssen.

Weitere Informationen zum Einrichten von Private Service Connect finden Sie unter Private Service Connect – Übersicht in der Virtual Private Cloud-Dokumentation (VPC).

Indexendpunkt erstellen

Wenn Sie einen Endpunkt mit aktiviertem Private Service Connect erstellen möchten, müssen Sie das beim Erstellen des Endpunkts definieren. Dies ähnelt dem Erstellen anderer Endpunkte in Vertex AI.

  • PROJECT: Das Dienstprojekt, in dem Sie Vertex AI Ressourcen erstellen .
  • VPC_PROJECT: Das Projekt, in dem sich die Client-VPC befindet. Für einfache VPC-Einrichtung Entspricht dies $PROJECT. Bei der Einrichtung einer freigegebenen VPC wird dies das VPC-Hostprojekt sein.
  • 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'"] }}'
    

    Index bereitstellen

    Nachdem der Index nun bereit ist, stellen Sie ihn in diesem Schritt auf dem Endpunkt bereit, den Sie erstellt haben und zwar mit aktiviertem Private Service Connect.

    gcloud

    In diesem Beispiel wird der Befehl gcloud ai index-endpoints deploy-index verwendet.

    Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

    • INDEX_ENDPOINT_ID: Die ID des Indexendpunkts.
    • DEPLOYED_INDEX_ID: Ein vom Nutzer angegebener String zur eindeutigen Identifizierung des bereitgestellten Index. Er muss mit einem Buchstaben beginnen und darf nur Buchstaben, Zahlen oder Unterstriche enthalten. Formatrichtlinien finden Sie im Artikel zu DeployedIndex.id.
    • DEPLOYED_INDEX_ENDPOINT_NAME: Der Anzeigename des bereitgestellten Indexendpunkts
    • INDEX_ID: Die ID des Index.
    • LOCATION: Die Region, in der Sie Vertex AI verwenden.
    • PROJECT_ID: Ihre Google Cloud-Projekt-ID.

    Führen Sie folgenden Befehl aus:

    Linux, macOS oder 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

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • INDEX_ENDPOINT_ID: Die ID des Indexendpunkts.
    • DEPLOYED_INDEX_ID: Ein vom Nutzer angegebener String zur eindeutigen Identifizierung des bereitgestellten Index. Er muss mit einem Buchstaben beginnen und darf nur Buchstaben, Zahlen oder Unterstriche enthalten. Formatrichtlinien finden Sie im Artikel zu DeployedIndex.id.
    • DEPLOYED_INDEX_ENDPOINT_NAME: Der Anzeigename des bereitgestellten Indexendpunkts
    • INDEX_ID: Die ID des Index.
    • LOCATION: Die Region, in der Sie Vertex AI verwenden.
    • PROJECT_ID: Ihre Google Cloud-Projekt-ID.
    • PROJECT_NUMBER: Die automatisch generierte Projektnummer Ihres Projekts.

    HTTP-Methode und URL:

    POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/indexEndpoints/INDEX_ENDPOINT_ID:deployIndex
    

    JSON-Text anfordern:

    {
     "deployedIndex": {
       "id": "DEPLOYED_INDEX_ID",
       "index": "projects/PROJECT_ID/locations/LOCATION/indexes/INDEX_ID",
       "displayName": "DEPLOYED_INDEX_ENDPOINT_NAME"
     }
    }
    

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    {
     "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

    Folgen Sie dieser Anleitung, um Ihren Index bereitzustellen.

    1. Wechseln Sie im Abschnitt „Vertex AI“ der Google Cloud Console zum Abschnitt Bereitstellen und verwenden. Wählen Sie Vektorsuche

      Zur Vektorsuche

    2. Eine Liste Ihrer aktiven Indexe wird angezeigt.
    3. Wählen Sie den Namen des Index aus, den Sie bereitstellen möchten. Die Seite mit den Indexdetails wird geöffnet.
    4. Klicken Sie auf der Seite mit den Indexdetails auf Auf Endpunkt bereitstellen Das Feld für die Indexbereitstellung wird geöffnet.
    5. Geben Sie einen Anzeigenamen ein. Dieser Name dient als ID und kann nicht aktualisiert werden.
    6. Wählen Sie im Drop-down-Menü Endpunkt den Endpunkt aus, auf dem Sie diesen Index bereitstellen möchten. Hinweis: Der Endpunkt ist nicht verfügbar, wenn der Index bereits auf ihm bereitgestellt ist.
    7. Optional: Wählen Sie im Feld Maschinentyp entweder „Standard“ oder „Großer Speicher“ aus.
    8. Optional. Wählen Sie Autoscaling aktivieren aus, um die Anzahl der Knoten automatisch an die Anforderungen Ihrer Arbeitslasten anzupassen. Die Standardanzahl von Replikaten ist 2, wenn Autoscaling deaktiviert ist.
    9. Klicken Sie auf Bereitstellen, um Ihren Index auf dem Endpunkt bereitzustellen. Hinweis: Die Bereitstellung dauert ungefähr 30 Minuten.

    Erstellen Sie eine Weiterleitungsregel im VPC-Projekt.

    Nach Abschluss der Indexbereitstellung gibt der Indexendpunkt anstelle einer IP-Adresse einen URI für den Dienstanhang zurück. Sie müssen eine Compute-Adresse sowie eine Weiterleitungsregel im VPC-Projekt erstellen, das den Dienstanhang mithilfe der erstellten Compute-Adresse als Ziel hat. Verwenden Sie das folgende Beispiel, um eine Compute-Adresse zu erstellen:

    gcloud compute addresses create ${ADDRESS_NAME:?} \
        --region=${REGION:?} \
        --subnet=${SUBNET_NAME:?} \
        --project=${VPC_PROJECT:?}
    

    Verwenden Sie das folgende Beispiel, um mithilfe der erstellten Compute-Adresse eine Weiterleitungsregel für den URI des Dienstanhangs zu erstellen:

    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:?}
    

    (Optional) DNS-Eintrag für die IP-Adresse erstellen

    Wenn Sie eine Verbindung herstellen und einen Ladevorgang ausführen möchten, ohne sich die tatsächliche IP-Adresse merken zu müssen, können Sie einen DNS-Eintrag erstellen. Dieser Schritt ist optional.

    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:?}
    

    Abfragen an den Indexendpunkt senden

    Nachdem Sie einen Endpunkt mit Private Service Connect erstellt und den Index erstellt haben, können Sie Abfragen ausführen.

    Informationen zum Abfragen des Index finden Sie unter Indexe abfragen, um den nächsten Nachbarn abzurufen.

    Nächste Schritte