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:
- Die eine niedrige Latenz und eine sichere Verbindung zu Bereitstellungs-Back-Ends der Vektorsuche erfordern.
- Die nur limitierte IP-Bereiche für exklusive VPC-Peering-Reservierungen haben.
- 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. Das entspricht ungefähr dem Erstellen anderer Endpunkte in Vertex AI.
REST
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'"] }}'
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Optionen für die Indexbereitstellung
Sie können Ihren Index mit automatischer oder manueller Dienstverbindung bereitstellen.
- Mit Private Service Connect-Automatisierung bereitstellen: Richten Sie eine Richtlinie für Dienstverbindungen ein und stellen Sie Ihre Indexe bereit. Wenn Sie eine Richtlinie für Dienstverbindungen einrichten, können Sie in einem bestimmten Netzwerk bereitstellen, ohne jedes Mal eine Compute-Adresse und eine Weiterleitungsregel zu erstellen.
- Mit manueller Verbindung bereitstellen: Sie können Ihren Index bereitstellen und eine Compute-Adresse und eine Weiterleitungsregel manuell erstellen. Diese Option können Sie auswählen, wenn Sie mehrere IP-Adressen verwenden müssen.
Bereitstellung mit Private Service Connect-Automatisierung
Sie können eine Richtlinie für Dienstverbindungen einrichten, damit Sie nach jeder Indexbereitstellung nicht manuell eine Compute-Adresse und eine Weiterleitungsregel erstellen müssen.
- Erstellen Sie zuerst eine Richtlinie für Dienstverbindungen, in der das Netzwerk, die Dienstklasse und die Region angegeben werden, in denen Indexe bereitgestellt werden sollen. Diese Einrichtung ist nur einmal erforderlich. Wenn Sie dies bereits getan haben, fahren Sie mit dem nächsten Schritt fort.
- Stellen Sie den Index bereit.
Beschränkungen
Bei der Automatisierung ist nur eine IP-Adresse pro Projekt und Netzwerk zulässig. Wenn Sie mehrere IP-Adressen verwenden müssen, lesen Sie den Hilfeartikel Index manuell bereitstellen.
Richtlinie für Dienstverbindungen erstellen
Sie müssen Netzwerkadministrator sein, um eine Richtlinie für Dienstverbindungen zum Automatisieren der Indexbereitstellung zu erstellen.
So automatisieren Sie die Indexbereitstellung:
Erstellen Sie die Richtlinie für Dienstverbindungen.
- PROJECT: Das Dienstprojekt, in dem Sie Vertex AI-Ressourcen erstellen.
- VPC_PROJECT: Das Projekt, in dem sich die Client-VPC befindet. Bei der Einrichtung einer einzelnen VPC entspricht dies $PROJECT. Bei der Einrichtung einer freigegebene VPC ist dies das VPC-Hostprojekt.
-
NETWORK_NAME: Der Name des Netzwerks, in dem die Bereitstellung erfolgen soll, im Format
projects/
./global/networks/ - REGION: Die Netzwerkregion.
- PSC_SUBNETS: Das zu verwendende Private Service Connect-Subnetz.
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>
Rufen Sie die Richtlinie für Dienstverbindungen auf.
gcloud network-connectivity service-connection-policies list --project=<vpc_project> -–region=<region>
Index bereitstellen
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.
- NETWORK_1: Der Name des Compute Engine-Netzwerks, in dem dieser Indexendpunkt bereitgestellt wird.
- NETWORK_2: (Optional) Ein zusätzlicher Compute Engine-Netzwerkname, in dem dieser Endpunkt bereitgestellt werden soll.
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 \ --psc-automation-configs=project-id=PROJECT_ID,network=NETWORK_1 \ --psc-automation-configs=project-id=PROJECT_ID,network=NETWORK_2
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 ` --psc-automation-configs=project-id=PROJECT_ID,network=NETWORK_1 ` --psc-automation-configs=project-id=PROJECT_ID,network=NETWORK_2
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 ^ --psc-automation-configs=project-id=PROJECT_ID,network=NETWORK_1 ^ --psc-automation-configs=project-id=PROJECT_ID,network=NETWORK_2
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.
- NETWORK_1: Der Name des Compute Engine-Netzwerks, in dem dieser Indexendpunkt bereitgestellt wird.
- NETWORK_2: (Optional) Ein zusätzlicher Compute Engine-Netzwerkname, in dem dieser Endpunkt bereitgestellt werden soll.
- 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" "psc_automation_configs": [ {"project_id": "PROJECT_ID", "network": "NETWORK_1"}, {"project_id": "PROJECT_ID", "network": "NETWORK_2" }] } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese 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" } }
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Richtlinie für Dienstverbindungen löschen
Wenn Sie die Dienstverbindungsrichtlinie löschen möchten, führen Sie den folgenden Befehl aus:
gcloud network-connectivity service-connection-policies delete --project=<vpc_project> –-region=<region> <policy_name>
Mit manueller Verbindung bereitstellen
Stellen Sie den Index bereit und erstellen Sie eine Weiterleitungsregel in Ihrem VPC-Projekt.
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 Befehlgcloud 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 eine JSON-Antwort ähnlich wie diese 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" } }
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Console
Folgen Sie dieser Anleitung, um Ihren Index bereitzustellen.
- Wechseln Sie im Abschnitt „Vertex AI“ der Google Cloud Console zum Abschnitt Bereitstellen und verwenden. Wählen Sie Vektorsuche
- Eine Liste Ihrer aktiven Indexe wird angezeigt.
- Wählen Sie den Namen des Index aus, den Sie bereitstellen möchten. Die Seite mit den Indexdetails wird geöffnet.
- Klicken Sie auf der Seite mit den Indexdetails auf „In Endpunkt bereitstellen“. Das Steuerfeld für die Indexbereitstellung wird geöffnet.
- Geben Sie einen Anzeigenamen ein. Dieser Name dient als ID und kann nicht aktualisiert werden.
- 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.
- Optional: Wählen Sie im Feld Maschinentyp entweder „Standard“ oder „Großer Speicher“ aus.
- 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.
- Klicken Sie auf Bereitstellen, um Ihren Index auf dem Endpunkt bereitzustellen. Hinweis: Die Bereitstellung dauert ungefähr 30 Minuten.
Weiterleitungsregel im VPC-Projekt erstellen
Nach der Indexbereitstellung gibt der Indexendpunkt einen URI für den Dienstanhang anstelle einer IP-Adresse 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:?}
Im folgenden Beispiel wird eine Weiterleitungsregel mit der erstellten Compute-Adresse erstellt, die auf den URI des Dienstanhangs ausgerichtet ist:
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 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.