Mit Private Service Connect können Sie sicher von mehreren Nutzerprojekten und VPC-Netzwerken aus auf Vertex AI-Onlinevorhersagen zugreifen, ohne dass öffentliche IP-Adressen, ein öffentlicher Internetzugang oder ein expliziter interner Peering-IP-Adressbereich erforderlich sind.
Wir empfehlen Private Service Connect für Anwendungsfälle der Onlinevorhersage mit folgenden Anforderungen:
- Private und sichere Verbindungen erforderlich machen
- Niedrige Latenz erforderlich
- Sie müssen nicht öffentlich zugänglich sein.
Private Service Connect verwendet eine Weiterleitungsregel in Ihrem VPC-Netzwerk, um Traffic unidirektional an den Vertex AI-Onlinevorhersagedienst zu senden. Die Weiterleitungsregel stellt eine Verbindung zu einem Dienstanhang her, der den Vertex AI-Dienst für Ihr VPC-Netzwerk verfügbar macht. Weitere Informationen finden Sie unter Zugriff auf Vertex AI-Dienste über Private Service Connect. Weitere Informationen zum Einrichten von Private Service Connect finden Sie unter Private Service Connect – Übersicht in der Virtual Private Cloud-Dokumentation (VPC).
Endpunkt für Onlinevorhersagen erstellen
Verwenden Sie eine der folgenden Methoden, um einen Onlinevorhersage-Endpunkt mit aktiviertem Private Service Connect zu erstellen:
Console
Rufen Sie in der Google Cloud Console in Vertex AI die Seite Onlinevorhersage auf.
Klicken Sie auf Erstellen.
Geben Sie einen Anzeigenamen für den Endpunkt an.
Klicken Sie auf
Privat.Wählen Sie
Private Service Connect aus.Klicken Sie auf Projekt-IDs auswählen.
Wählen Sie Projekte aus, die der Zulassungsliste für den Endpunkt hinzugefügt werden sollen.
Klicken Sie auf Weiter.
Wählen Sie die Modellspezifikationen aus. Weitere Informationen finden Sie unter Modell auf einem Endpunkt bereitstellen.
Klicken Sie auf Erstellen. um den Endpunkt zu erstellen und das Modell darauf bereitzustellen.
Notieren Sie sich die Endpunkt-ID aus der Antwort.
API
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
VERTEX_AI_PROJECT_ID
: die ID des Google Cloud-Projekts, in dem Sie den Endpunkt für Onlinevorhersagen erstellen.REGION
: Die Region, in der Sie Vertex AI verwenden.VERTEX_AI_ENDPOINT_NAME
: Der Anzeigename für den Endpunkt der Onlinevorhersage.ALLOWED_PROJECTS
: eine durch Kommas getrennte Liste von Google Cloud-Projekt-IDs, die jeweils in Anführungszeichen gesetzt sind, z. B.["PROJECTID1", "PROJECTID2"]
. Wenn ein Projekt nicht in dieser Liste enthalten ist, können Sie von dort keine Vorhersageanfragen an den Vertex AI-Endpunkt senden. Achten Sie darauf, dass VERTEX_AI_PROJECT_ID in diese Liste aufgenommen wird, damit Sie den Endpunkt aus demselben Projekt aufrufen können, in dem er sich befindet.
HTTP-Methode und URL:
POST https://REGION-aiplatform.googleapis.com/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints
JSON-Text anfordern:
{ "displayName": "VERTEX_AI_ENDPOINT_NAME", "privateServiceConnectConfig": { "enablePrivateServiceConnect": true, "projectAllowlist": ["ALLOWED_PROJECTS"] } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/VERTEX_AI_PROJECT_NUMBER/locations/REGION/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateEndpointOperationMetadata", "genericMetadata": { "createTime": "2020-11-05T17:45:42.812656Z", "updateTime": "2020-11-05T17:45:42.812656Z" } } }
ENDPOINT_ID
.
Python
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PROJECT_ID = "VERTEX_AI_PROJECT_ID"
REGION = "REGION"
VERTEX_AI_ENDPOINT_NAME = "VERTEX_AI_ENDPOINT_NAME"
from google.cloud import aiplatform
aiplatform.init(project=PROJECT_ID, location=REGION)
# Create the forwarding rule in the consumer project
psc_endpoint = aiplatform.PrivateEndpoint.create(
display_name=VERTEX_AI_ENDPOINT_NAME,
project=PROJECT_ID,
location=REGION,
private_service_connect_config=aiplatform.PrivateEndpoint.PrivateServiceConnectConfig(
project_allowlist=["ALLOWED_PROJECTS"],
),
)
Ersetzen Sie dabei Folgendes:
VERTEX_AI_PROJECT_ID
: die ID des Google Cloud-Projekts, in dem Sie den Endpunkt für Onlinevorhersagen erstellenREGION
: Die Region, in der Sie Vertex AI verwenden.VERTEX_AI_ENDPOINT_NAME
: Der Anzeigename für den Endpunkt der Onlinevorhersage.ALLOWED_PROJECTS
: eine durch Kommas getrennte Liste von Google Cloud-Projekt-IDs, die jeweils in Anführungszeichen gesetzt sind. Beispiel:["PROJECTID1", "PROJECTID2"]
Wenn ein Projekt nicht in dieser Liste enthalten ist, können Sie von dort keine Vorhersageanfragen an den Vertex AI-Endpunkt senden. Achten Sie darauf, dass VERTEX_AI_PROJECT_ID in diese Liste aufgenommen wird, damit Sie den Endpunkt aus demselben Projekt aufrufen können, in dem er sich befindet.
Notieren Sie sich die ENDPOINT_ID
am Ende des zurückgegebenen Endpunkt-URIs:
INFO:google.cloud.aiplatform.models:To use this PrivateEndpoint in another session:
INFO:google.cloud.aiplatform.models:endpoint = aiplatform.PrivateEndpoint('projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID')
Modell bereitstellen
Nachdem Sie Ihren Onlinevorhersage-Endpunkt mit aktiviertem Private Service Connect erstellt haben, stellen Sie Ihr Modell darauf bereit. Führen Sie dazu die Schritte unter Modell auf einem Endpunkt bereitstellen aus.
URI des Dienstanhangs abrufen
Wenn Sie das Modell bereitstellen, wird für den Endpunkt der Onlinevorhersage ein Dienstanhang erstellt. Dieser Dienstanhang stellt den Vertex AI-Onlinevorhersagedienst dar, der für Ihr VPC-Netzwerk verfügbar gemacht wird. Führen Sie den Befehl gcloud ai endpoints describe
aus, um den URI des Dienstanhangs abzurufen.
Listen Sie nur den Wert
serviceAttachment
aus den Endpunktdetails auf:gcloud ai endpoints describe ENDPOINT_ID \ --project=VERTEX_AI_PROJECT_ID \ --region=REGION \ | grep -i serviceAttachment
Ersetzen Sie dabei Folgendes:
ENDPOINT_ID
: die ID Ihres Endpunkts für OnlinevorhersagenVERTEX_AI_PROJECT_ID
: die ID des Google Cloud-Projekts, in dem Sie den Endpunkt für Onlinevorhersagen erstellt habenREGION
: Die Region für diese Anfrage
Die Ausgabe sieht in etwa so aus:
serviceAttachment: projects/ac74a9f84c2e5f2a1-tp/regions/us-central1/serviceAttachments/gkedpm-c6e6a854a634dc99472bb802f503c1
Notieren Sie sich den gesamten String im Feld
serviceAttachment
. Dies ist der URI des Dienstanhangs.
Erstellen Sie eine Weiterleitungsregel.
Sie können eine interne IP-Adresse reservieren und eine Weiterleitungsregel mit dieser Adresse erstellen. Sie benötigen den URI des Dienstanhangs aus dem vorherigen Schritt, um die Weiterleitungsregel zu erstellen.
Zum Reservieren einer internen IP-Adresse für die Weiterleitungsregel verwenden Sie den Befehl
gcloud compute addresses create
:gcloud compute addresses create ADDRESS_NAME \ --project=VPC_PROJECT_ID \ --region=REGION \ --subnet=SUBNETWORK \ --addresses=INTERNAL_IP_ADDRESS
Ersetzen Sie dabei Folgendes:
ADDRESS_NAME
: ein Name für die interne IP-AdresseVPC_PROJECT_ID
ist die ID des Google Cloud-Projekts, in dem Ihr VPC-Netzwerk gehostet wird. Wenn der Endpunkt für Onlinevorhersagen und die Private Service Connect-Weiterleitungsregel im selben Projekt gehostet werden, verwenden Sie für diesen ParameterVERTEX_AI_PROJECT_ID
.REGION
: die Google Cloud-Region, in der die Private Service Connect-Weiterleitungsregel erstellt werden sollSUBNETWORK
: der Name des VPC-Subnetzes, das die IP-Adresse enthältINTERNAL_IP_ADDRESS
: die interne IP-Adresse, die reserviert werden soll. Der Parameter ist optional.- Wenn dieser Parameter angegeben ist, muss sich die IP-Adresse innerhalb des primären IP-Adressbereichs des Subnetzes befinden. Die IP-Adresse kann eine RFC 1918-Adresse oder ein Subnetz mit Nicht-RFC-Bereichen sein.
- Wenn Sie diesen Parameter nicht angeben, wird automatisch eine interne IP-Adresse zugewiesen.
- Weitere Informationen finden Sie unter Neue statische interne IPv4- oder IPv6-Adresse reservieren.
Prüfen Sie mit dem Befehl
gcloud compute addresses list
, ob die IP-Adresse reserviert ist:gcloud compute addresses list --filter="name=(ADDRESS_NAME)" \ --project=VPC_PROJECT_ID
Prüfen Sie in der Antwort, ob für die IP-Adresse der Status
RESERVED
angezeigt wird.Verwenden Sie den Befehl
gcloud compute forwarding-rules create
, um die Weiterleitungsregel zu erstellen und auf den Anhang des Onlinevorhersagediensts zu verweisen:gcloud compute forwarding-rules create PSC_FORWARDING_RULE_NAME \ --address=ADDRESS_NAME \ --project=VPC_PROJECT_ID \ --region=REGION \ --network=VPC_NETWORK_NAME \ --target-service-attachment=SERVICE_ATTACHMENT_URI
Ersetzen Sie dabei Folgendes:
PSC_FORWARDING_RULE_NAME
ist ein Name für die Weiterleitungsregel.VPC_NETWORK_NAME
: der Name des VPC-Netzwerks, in dem der Endpunkt erstellt werden sollSERVICE_ATTACHMENT_URI
: den Dienstanhang, den Sie zuvor notiert haben.
Prüfen Sie mit dem Befehl
gcloud compute forwarding-rules describe
, ob der Dienstanhang den Endpunkt akzeptiert:gcloud compute forwarding-rules describe PSC_FORWARDING_RULE_NAME \ --project=VPC_PROJECT_ID \ --region=REGION
Prüfen Sie in der Antwort, ob für das Feld
pscConnectionStatus
der StatusACCEPTED
angezeigt wird.
Optional: Interne IP-Adresse abrufen
Wenn Sie beim Erstellen der Weiterleitungsregel keinen Wert für INTERNAL_IP_ADDRESS
angegeben haben, erhalten Sie die automatisch zugewiesene Adresse mit dem Befehl gcloud compute forwarding-rules describe
:
gcloud compute forwarding-rules describe PSC_FORWARDING_RULE_NAME \
--project=VERTEX_AI_PROJECT_ID \
--region=REGION \
| grep -i IPAddress
Ersetzen Sie dabei Folgendes:
VERTEX_AI_PROJECT_ID
: Ihre Projekt-ID.REGION
ist der Name der Region für diese Anfrage.
Onlinevorhersagen abrufen
Das Abrufen von Onlinevorhersagen von einem Endpunkt mit Private Service Connect ähnelt dem Abrufen von Onlinevorhersagen von öffentlichen Endpunkten, mit folgenden Ausnahmen:
- Die Anfrage muss von einem Projekt gesendet werden, das in
projectAllowlist
angegeben wurde, als der Endpunkt für die Onlinevorhersage erstellt wurde. - Wenn der globale Zugriff nicht aktiviert ist, muss die Anfrage aus derselben Region gesendet werden.
Zum Abrufen von Vorhersagen mit REST müssen Sie eine Verbindung über die statische IP-Adresse des Endpunkts herstellen, es sei denn, Sie erstellen einen DNS-Eintrag für die interne IP-Adresse. Sie müssen Ihre
predict
-Anfragen beispielsweise an den folgenden Endpunkt senden:https://INTERNAL_IP_ADDRESS/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict
Ersetzen Sie
INTERNAL_IP_ADDRESS
durch die zuvor reservierte interne IP-Adresse.Im folgenden Beispiel wird gezeigt, wie Sie die predict-Anfrage mit Python senden:
REQUEST_FILE = "PATH_TO_INPUT_FILE" import json import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) with open(REQUEST_FILE) as json_file: data = json.load(json_file) response = psc_endpoint.predict( instances=data["instances"], endpoint_override=INTERNAL_IP_ADDRESS ) print(response)
Ersetzen Sie
PATH_TO_INPUT_FILE
durch den Pfad zu einer JSON-Datei, die die Anfrage enthält.
Optional: DNS-Eintrag für die interne IP-Adresse erstellen
Wir empfehlen, einen DNS-Eintrag zu erstellen, damit Sie Onlinevorhersagen von Ihrem Endpunkt erhalten können, ohne die interne IP-Adresse angeben zu müssen.
Weitere Informationen finden Sie unter Andere Möglichkeiten zur Konfiguration von DNS.
Erstellen Sie mit dem Befehl
gcloud dns managed-zones create
eine private DNS-Zone. Diese Zone ist dem VPC-Netzwerk zugeordnet, in dem die Weiterleitungsregel erstellt wurde.DNS_NAME_SUFFIX="prediction.p.vertexai.goog." # DNS names have "." at the end. gcloud dns managed-zones create ZONE_NAME \ --project=VPC_PROJECT_ID \ --dns-name=$DNS_NAME_SUFFIX \ --networks=VPC_NETWORK_NAME \ --visibility=private \ --description="A DNS zone for Vertex AI endpoints using Private Service Connect."
Ersetzen Sie dabei Folgendes:
ZONE_NAME
: der Name der DNS-Zone
Verwenden Sie zum Erstellen eines DNS-Eintrags in der Zone den Befehl
gcloud dns record-sets create
:DNS_NAME=ENDPOINT_ID.REGION-VERTEX_AI_PROJECT_NUMBER.$DNS_NAME_SUFFIX gcloud dns record-sets create $DNS_NAME \ --rrdatas=INTERNAL_IP_ADDRESS \ --zone=ZONE_NAME \ --type=A \ --ttl=60 \ --project=VPC_PROJECT_ID
Ersetzen Sie dabei Folgendes:
VERTEX_AI_PROJECT_NUMBER
ist IhreVERTEX_AI_PROJECT_ID
Projektnummer. Sie finden diese Projektnummer in der Google Cloud Console. Weitere Informationen finden Sie unter Projekte identifizieren.INTERNAL_IP_ADDRESS
: die interne IP-Adresse Ihres Endpunkts für Online-Vorhersagen
Jetzt können Sie Ihre
predict
-Anfragen an folgende VMs senden:https://ENDPOINT_ID.REGION-VERTEX_AI_PROJECT_NUMBER.prediction.p.vertexai.goog/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict
Im folgenden Beispiel wird gezeigt, wie Sie die predict-Anfrage mit Python an die DNS-Zone senden:
REQUEST_FILE = "PATH_TO_INPUT_FILE"
import json
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
with open(REQUEST_FILE) as json_file:
data = json.load(json_file)
response = psc_endpoint.predict(
instances=data["instances"], endpoint_override=DNS_NAME
)
print(response)
Ersetzen Sie DNS_NAME
durch den DNS-Namen, den Sie im Befehl gcloud dns record-sets create
angegeben haben.
Beschränkungen
Vertex AI-Endpunkte mit Private Service Connect unterliegen den folgenden Einschränkungen:
- Privater ausgehender Traffic innerhalb des Endpunkts wird nicht unterstützt. Da Private Service Connect-Weiterleitungsregeln unidirektional sind, sind andere private Google Cloud-Arbeitslasten in Ihrem Container nicht zugänglich.
- Die
projectAllowlist
-Konfiguration eines Endpunkts kann nicht geändert werden. - Zugriffs-Logging wird nicht unterstützt.
- Das Anfrage- und Antwort-Logging wird nicht unterstützt.
- Vertex Explainable AI wird nicht unterstützt.
Vorschau Einschränkungen
In der Vorschau gelten die folgenden zusätzlichen Einschränkungen:
- Wenn Sie die Bereitstellung aller Private Service Connect-Modelle aufheben und sie noch einmal bereitstellen, müssen Sie die Weiterleitungsregel neu erstellen, auch wenn der Name des Dienstanhangs identisch ist.
- Alle Endpunkte müssen dieselbe
projectAllowlist
-Konfiguration haben.