Private Service Connect-Schnittstelle für Vertex AI Training verwenden

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.

Die Private Service Connect-Schnittstelle wird für benutzerdefinierte Jobs und nichtflüchtige Ressourcen der Agent Platform unterstützt.

Übersicht

Die Private Service Connect-Schnittstelle wird für benutzerdefinierte Jobs und nichtflüchtige Ressourcen von Vertex AI Training unterstützt. Wenn Sie die 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 enthalten sein, um einen benutzerdefinierten Job oder eine nichtflüchtige Ressource zu erstellen und die Private Service Connect-Schnittstelle zu aktivieren.

Ausgehende Private Service Connect-Verbindungen der Gemini Enterprise Agent Platform zu anderen Netzwerken

In der Gemini Enterprise Agent Platform sind die ausgehenden Netzwerkverbindungen integriert, die von Private Service Connect unterstützt werden (siehe Verbindung zu Arbeitslasten in anderen Netzwerken). Dabei gelten die folgenden architektonischen Verhaltensweisen.

Google APIs und Dienste, die nur intern zugänglich sind, erreichen

Wenn die Gemini Enterprise Agent Platform Traffic an Google APIs sendet, wird dieser lokal in der Erstellerumgebung aufgelöst. Dabei werden nicht die Einstellungen für den privater Google-Zugriff oder das Routing Ihres Nutzer-VPC-Netzwerk verwendet.

Hinweis:

  • VPC-Identitätsanforderung: Da die lokale Auflösung den Pfad des Nutzer-VPC-Netzwerk umgeht, enthält der Traffic nicht die Identität Ihres VPC-Netzwerk. Dadurch schlagen Anfragen an Google-Dienste, die nur intern zugänglich sind, z. B. Cloud Run-Dienste, die mit eingehendem internem Traffic konfiguriert sind, mit einem 404- oder 403-Fehler fehl.
  • Private Service Connect-Endpunktlösung: Wenn Sie diese internen Dienste privat erreichen möchten, müssen Sie in Ihrem VPC-Netzwerk einen Private Service Connect-Endpunkt für Google APIs konfigurieren.
  • DNS-Konfiguration: Die Dienstdomain (z.B. „*.run.app“) muss in die interne IP-Adresse Ihres Private Service Connect-Endpunkts aufgelöst werden, damit der Traffic auf einem rein privaten Pfad bleibt.

Ausgehender Internettraffic und Cloud NAT

Standardmäßig verwendet die Gemini Enterprise Agent Platform 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 leitet den Traffic über die Private Service Connect-Schnittstelle und die Routingregeln Ihres VPC-Netzwerk weiter. Wenn Sie VPC Service Controls nicht verwenden, umgeht der ausgehende Internettraffic Ihr VPC-Netzwerk und das Cloud NAT-Gateway vollständig.

Beschränkungen

Informationen zu den Funktionen und Beschränkungen von Private Service Connect -Schnittstellen finden Sie unter Auf Gemini Enterprise Agent Platform-Dienste über Private Service Connect-Schnittstellen zugreifen.

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 Ersteller oder Nutzer-VPC-Netzwerk verwenden" beschrieben.

Hinweis

Richten Sie Ihre Ressourcen für die Private Service Connect-Schnittstelle ein in Ihrem Nutzerprojekt.

Serverlosen Trainingsjob mit einer Private Service Connect-Schnittstelle erstellen

Sie können einen serverlosen Trainingsjob mit einer Private Service Connect-Schnittstelle mithilfe des Agent Platform SDK für Python oder der REST API erstellen.

Python

Wenn Sie einen serverlosen Trainingsjob mit einer Private Service Connect-Schnittstelle mithilfe des Agent Platform SDK für Python erstellen möchten, konfigurieren Sie den Job mit der aiplatform_v1/services/job_service Definition.

Python

from google.cloud import aiplatform


def create_custom_job_psci_sample(
    project: str,
    location: str,
    bucket: str,
    display_name: str,
    machine_type: str,
    replica_count: int,
    image_uri: str,
    network_attachment: str,
    domain: str,
    target_project: str,
    target_network: str,
):
    """Custom training job sample with PSC Interface Config."""
    aiplatform.init(project=project, location=location, staging_bucket=bucket)

    worker_pool_specs = [{
        "machine_spec": {
            "machine_type": machine_type,
        },
        "replica_count": replica_count,
        "container_spec": {
            "image_uri": image_uri,
            "command": [],
            "args": [],
        },
    }]
    psc_interface_config = {
        "network_attachment": network_attachment,
        "dns_peering_configs": [
            {
                "domain": domain,
                "target_project": target_project,
                "target_network": target_network,
            },
        ],
    }
    job = aiplatform.CustomJob(
        display_name=display_name,
        worker_pool_specs=worker_pool_specs,
    )

    job.run(psc_interface_config=psc_interface_config)

  • project: . Diese IDs finden Sie auf der Cloud de Confiance Console Begrüßungsseite.
  • location: Eine Liste der verfügbaren Standorte finden Sie hier.
  • bucket: Ersetzen Sie bucket durch den Namen eines Buckets, auf den Sie Zugriff haben.
  • display_name: Der Anzeigename der nichtflüchtigen Ressource.
  • machine_type: Geben Sie die Compute-Ressourcen an.
  • replica_count: Die Anzahl der Worker-Replikate, die pro Test verwendet werden sollen.
  • service_attachment: Der Name der Dienstanhangressource. Wird ausgefüllt wenn Private Service Connect aktiviert ist.
  • image_uri: Der URI eines Docker Container-Image mit Ihrem Trainingscode. Informationen zum Erstellen eines benutzerdefinierten Container-Image.
  • network_attachment: Der Name oder der vollständige Pfad des Netzwerkanhangs, 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-Netzwerk.

REST

Senden Sie zum Erstellen eines serverlosen Trainingsjobs eine POST-Anfrage mit der customJobs.create Methode.

Ersetzen Sie folgende Werte in den 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 den CustomJob.
  • REPLICA_COUNT: Die Anzahl der zu verwendenden Worker-Replikate. In den meisten Fällen ist dies auf 1 fü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. Informationen zum Erstellen eines benutzerdefinierten Container-Image.
    • NETWORK_ATTACHMENT: Der Name oder der vollständige Pfad des Netzwerkanhangs, den Sie erstellt haben, als Sie die Private Service Connect-Schnittstelle eingerichtet haben.
    • Wenn Sie privates DNS-Peering benötigen, ist das Feld dns_peering_configs erforderlich. Für diese Liste enthält jeder Eintrag 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-Netzwerk.

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: