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

Die Private Service Connect-Schnittstelle wird für private Verbindungen empfohlen, da sie das Risiko 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 sind die von Private Service Connect unterstützten Egress-Netzwerkverbindungen integriert (siehe Verbindung zu Arbeitslasten in anderen Netzwerken herstellen). Es gelten jedoch die folgenden Ausnahmen:

  • Ausgehender Traffic zu einem privater Google-Zugriff eines Kunden wird nicht unterstützt. Stattdessen würde der ausgehende Traffic von Private Service Connect lokal für den privater Google-Zugriff aufgelöst.

  • Ausgehender Traffic zu Cloud NAT wird nur unterstützt, wenn VPC Service Control aktiviert ist.

Beschränkungen

  • Private Service Connect-Schnittstellen unterstützen externe IP-Adressen nicht.

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.

Benutzerdefinierten Trainingsjob mit einer Private Service Connect-Schnittstelle erstellen

Sie können einen benutzerdefinierten Trainingsjob mit einer Private Service Connect-Schnittstelle mit dem Vertex AI SDK für Python oder der REST API erstellen.

Python

Wenn Sie einen benutzerdefinierten Trainingsjob mit PSC-I mit dem Vertex AI 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: Ihre Projekt-ID. Sie finden diese IDs auf der Begrüßungsseite der Google Cloud Console.
  • location: Siehe Liste der verfügbaren Standorte.
  • bucket: Ersetzen Sie bucket durch 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 benutzerdefinierten 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 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. 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_configs erforderlich. 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 in etwa folgende JSON-Antwort erhalten: