Die Private Service Connect-Schnittstelle wird für private Verbindungen empfohlen, da sie die Wahrscheinlichkeit einer IP-Erschöpfung verringert und transitives Peering ermöglicht.
Private Service Connect-Schnittstellen werden für benutzerdefinierte Vertex AI-Jobs und persistente Ressourcen unterstützt.
Übersicht
Private Service Connect-Schnittstellen werden für benutzerdefinierte Jobs und persistente Ressourcen in Vertex AI Training unterstützt. Wenn Sie eine Private Service Connect-Schnittstelle verwenden möchten, müssen Sie in Ihrem Nutzerprojekt ein VPC-Netzwerk, ein Subnetzwerk und einen Netzwerkanhang einrichten. Weitere Informationen finden Sie unter Private Service Connect-Schnittstelle einrichten. Der Name des Netzwerkanhangs muss in der Anfrage zum Erstellen eines benutzerdefinierten Jobs oder einer persistenten Ressource enthalten sein, um die Private Service Connect-Schnittstelle zu aktivieren.
Ausgehende Vertex AI Private Service Connect-Verbindungen zu anderen Netzwerken
In Vertex AI wurden die von Private Service Connect unterstützten Egress-Netzwerkverbindungen (siehe Verbindung zu Arbeitslasten in anderen Netzwerken herstellen) mit den folgenden architektonischen Verhaltensweisen integriert.
Google APIs und Dienste nur für interne Nutzer erreichen
Wenn Vertex AI Traffic an Google APIs sendet, wird dieser lokal in der Producer-Umgebung aufgelöst und verwendet nicht die Einstellungen für den privater Google-Zugriff oder das Routing Ihres Consumer-VPC-Netzwerk.
Hinweis:
- VPC-Identitätsanforderung: Da die lokale Auflösung den VPC-Netzwerkpfad des Nutzers umgeht, enthält der Traffic nicht die Identität Ihres VPC-Netzwerk. Dadurch schlagen Anfragen an reine interne Google-Dienste, z. B. Cloud Run-Dienste, die mit internem Ingress konfiguriert sind, mit einem 404- oder 403-Fehler fehl.
- Private Service Connect-Endpunktlösung: Wenn Sie privat auf diese internen Dienste zugreifen möchten, müssen Sie einen Private Service Connect-Endpunkt für Google APIs in Ihrem VPC-Netzwerk konfigurieren.
- DNS-Konfiguration: Sie müssen dafür sorgen, dass die Dienstdomain (z.B. *.run.app) wird in die interne IP-Adresse Ihres Private Service Connect-Endpunkts aufgelöst, damit der Traffic auf einem rein privaten Pfad bleibt.
Ausgehender Internettraffic und Cloud NAT
Standardmäßig verwendet Vertex AI von Google verwaltete Internetgateways für ausgehenden Traffic anstelle der Routen Ihres VPC-Netzwerk. Ausgehender Traffic über das Cloud NAT-Gateway eines Nutzers wird nur verwendet, wenn das Projekt Teil eines VPC Service Controls-Perimeters ist.
Dieser Perimeter blockiert den Standard-Internetzugriff und erzwingt, dass der Traffic über die Private Service Connect-Schnittstelle und die Routingregeln Ihres VPC-Netzwerk geleitet wird. Wenn Sie VPC Service Control nicht verwenden, wird ausgehender Internet-Traffic Ihr VPC-Netzwerk und Cloud NAT-Gateway vollständig umgehen.
Beschränkungen
Informationen zu den Funktionen und Einschränkungen von Private Service Connect-Schnittstellen finden Sie unter Zugriff auf Vertex AI-Dienste über Private Service Connect-Schnittstellen.
Preise
Die Preise für Private Service Connect-Schnittstellen werden auf der Seite Alle Netzwerkpreise im Abschnitt „Private Service Connect-Schnittstelle für den Zugriff auf ein Produzenten- oder Nutzer-VPC-Netzwerk verwenden“ beschrieben.
Hinweise
Ressourcen für die Private Service Connect-Schnittstelle in Ihrem Nutzerprojekt einrichten.
Serverlosen Vertex AI-Trainingsjob mit einer Private Service Connect-Schnittstelle erstellen
Sie können einen serverlosen Trainingsjob mit Private Service Connect-Schnittstelle mit dem Vertex AI SDK für Python oder der REST API erstellen.
Python
Wenn Sie einen serverlosen Trainingsjob mit PSC-I mit dem Vertex AI SDK für Python erstellen möchten, konfigurieren Sie den Job mit der Definition aiplatform_v1/services/job_service.
Python
project: . Sie finden diese IDs auf der Begrüßungsseite der Google Cloud Console.location: Siehe Liste der verfügbaren Standorte.bucket: Ersetzen Siebucketdurch den Namen eines Buckets, auf den Sie Zugriff haben.display_name: Der Anzeigename der nichtflüchtigen Ressource.machine_type: Computing-Ressourcen angeben.replica_count: Die Anzahl der Worker-Replikate, die pro Test verwendet werden sollen.service_attachment: Der Name der Dienstanhangsressource. Wird ausgefüllt, wenn Private Service Connect aktiviert ist.image_uri: Der URI eines Docker-Container-Image mit Ihrem Trainingscode. Beachten Sie die Informationen zum Erstellen von benutzerdefinierten Container-Images.network_attachment: Der Name oder vollständige Pfad des Netzwerk-Anhangs, den Sie beim Einrichten Ihrer Ressourcen für Private Service Connect erstellt haben.domain: Der DNS-Name der privaten Cloud DNS-Zone, die Sie beim Einrichten des privaten DNS-Peerings erstellt haben.target_project: Das Projekt, in dem das VPC-Netzwerk gehostet wird.target_network: der Name des VPC-Netzwerks.
REST
Senden Sie zum Erstellen eines serverlosen Trainingsjobs eine POST-Anfrage mit der Methode customJobs.create.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Die Region, in der der Container oder das Python-Paket ausgeführt wird.
- PROJECT_ID: Ihre Projekt-ID.
- JOB_NAME: Ein Anzeigename für
CustomJob. - REPLICA_COUNT: Die Anzahl der zu verwendenden Worker-Replikate. In den meisten Fällen ist dies auf
1für den ersten Worker-Pool festgelegt. - Wenn Ihre Trainingsanwendung in einem benutzerdefinierten Container ausgeführt wird, geben Sie Folgendes an:
- IMAGE_URI: der URI eines Docker-Container-Image mit Ihrem Trainingscode. Beachten Sie die Informationen zum Erstellen von benutzerdefinierten Container-Images.
- NETWORK_ATTACHMENT: Der Name oder vollständige Pfad des Netzwerk-Anhangs, den Sie beim Einrichten der Private Service Connect-Schnittstelle erstellt haben.
- Wenn Sie privates DNS-Peering benötigen, ist das Feld
dns_peering_configserforderlich. Jedes Element in dieser Liste enthält Folgendes:- DOMAIN_SUFFIX: Der DNS-Name der privaten Cloud DNS-Zone, die Sie beim Einrichten des privaten DNS-Peerings erstellt haben.
- TARGET_PROJECT: Das Projekt, in dem das VPC-Netzwerk gehostet wird.
- TARGET_NETWORK: der Name des VPC-Netzwerks.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs
JSON-Text der Anfrage:
"display_name": JOB_NAME,
"job_spec": {
"worker_pool_specs": [
{
"machine_spec": {
"machine_type": "n2-standard-4",
},
"replica_count": REPLICA_COUNT,
"container_spec": {
"image_uri": IMAGE_URI,
},
},
],
"psc_interface_config": {
"network_attachment": NETWORK_ATTACHMENT,
"dns_peering_configs": [
{
"domain": DOMAIN_SUFFIX,
"target_project": TARGET_PROJECT,
"target_network": TARGET_NETWORK
}
],
},
"enable_web_access": 1
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten: