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.

Private Service Connect-Ausgehende Verbindungen 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 privater Google-Zugriff eines Kunden wird nicht unterstützt. Stattdessen wird der ausgehende Traffic von Private Service Connect lokal für den privater Google-Zugriff aufgelöst.

  • Der ausgehende 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

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_name: 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_name,
                ),
            ),
        ),
    )

    response = client.create_custom_job(request=request)

    return response

  • project: Ihre Projekt-ID. Sie finden die Projekt-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: Geben Sie die Rechenressourcen an.
  • 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-Images mit Ihrem Trainingscode. Weitere Informationen zum Erstellen eines benutzerdefinierten Container-Images
  • network_attachment_name: Der Name, den Sie beim Einrichten Ihrer Ressourcen für Private Service Connect in Ihrem Nutzerprojekt angegeben haben.

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_NAME
    },
    "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: