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

Die Private Service Connect-Schnittstelle wird für die private Konnektivität empfohlen, da sie die Wahrscheinlichkeit einer IP-Ausschöpfung verringert und transitives Peering ermöglicht.

Die Private Service Connect-Schnittstelle wird für benutzerdefinierte Vertex AI-Jobs und persistente Ressourcen unterstützt.

Übersicht

Die Private Service Connect-Schnittstelle wird für benutzerdefinierte Jobs und persistente Ressourcen in 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 Subnetz 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 Private Service Connect-Verbindung von Vertex AI zu anderen Netzwerken

In Vertex AI sind die von Private Service Connect unterstützten Netzwerkverbindungen für den ausgehenden Traffic integriert (siehe Verbindung zu Arbeitslasten in anderen Netzwerken herstellen), mit folgenden Ausnahmen:

  • Der ausgehende Traffic zum privaten Google-Zugriff eines Kunden wird nicht unterstützt. Stattdessen wird der ausgehende Traffic von Private Service Connect lokal für den privaten Google-Zugriff aufgelöst.

  • Der ausgehende Traffic zu Cloud NAT wird nur unterstützt, wenn VPC Service Controls aktiviert ist.

Beschränkungen

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

  • Netzwerkanhänge können nur gelöscht werden, wenn der Ersteller (Vertex AI) die zugewiesenen Ressourcen löscht. Wenn Sie das Löschen starten möchten, müssen Sie sich an den Vertex AI-Support wenden.

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.

Hinweis

Richte deine Ressourcen für die Private Service Connect-Schnittstelle in deinem Nutzerprojekt ein.

Benutzerdefinierten Trainingsjob mit einer Private Service Connect-Schnittstelle erstellen

Sie können einen benutzerdefinierten Trainingsjob mit der Private Service Connect-Schnittstelle erstellen, indem Sie das Vertex AI SDK für Python oder die REST API verwenden.

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 Definition aiplatform_v1beta1/services/job_service.

Python

from google.cloud import aiplatform
from google.cloud import aiplatform_v1beta1


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,
):
    """Custom training job sample with PSC-I through aiplatform_v1beta1."""
    aiplatform.init(project=project, location=location, staging_bucket=bucket)

    client_options = {"api_endpoint": f"{location}-aiplatform.googleapis.com"}

    client = aiplatform_v1beta1.JobServiceClient(client_options=client_options)

    request = aiplatform_v1beta1.CreateCustomJobRequest(
        parent=f"projects/{project}/locations/{location}",
        custom_job=aiplatform_v1beta1.CustomJob(
            display_name=display_name,
            job_spec=aiplatform_v1beta1.CustomJobSpec(
                worker_pool_specs=[
                    aiplatform_v1beta1.WorkerPoolSpec(
                        machine_spec=aiplatform_v1beta1.MachineSpec(
                            machine_type=machine_type,
                        ),
                        replica_count=replica_count,
                        container_spec=aiplatform_v1beta1.ContainerSpec(
                            image_uri=image_uri,
                        ),
                    )
                ],
                psc_interface_config=aiplatform_v1beta1.PscInterfaceConfig(
                    network_attachment=network_attachment,
                ),
            ),
        ),
    )

    response = client.create_custom_job(request=request)

    return response

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:

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/customJobs

JSON-Text der Anfrage:

"display_name": JOB_NAME,
"job_spec": {
    "worker_pool_specs": [
      {
        "machine_spec": {
          "machine_type": "n1-standard-4",
        },
        "replica_count": REPLICA_COUNT,
        "container_spec": {
          "image_uri": IMAGE_URI,
        },
      },
    ],
    "psc_interface_config": {
      "network_attachment": NETWORK_ATTACHMENT
    },
    "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/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/LOCATION/customJobs" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten: