Sie können eine private Verbindung für Ihren Pipelinelauf mit einer Private Service Connect-Schnittstelle konfigurieren. Google empfiehlt, für die private Konnektivität Vertex AI Private Service Connect zu verwenden, da dadurch die Wahrscheinlichkeit einer IP-Ausschöpfung verringert und transitives Peering unterstützt wird.
Vertex AI Pipelines verwendet die zugrunde liegende Private Service Connect-Schnittstelleninfrastruktur für das Training, um die Verbindungsdetails an den benutzerdefinierten Trainingsjob weiterzuleiten. Weitere Informationen zu den Einschränkungen und Preisen für die Verwendung von Private Service Connect-Schnittstellen mit benutzerdefiniertem Training finden Sie unter Private Service Connect-Schnittstelle für Vertex AI-Training verwenden.
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 beschrieben.
Hinweis
Wenn Sie eine Private Service Connect-Schnittstelle mit Vertex AI-Pipelines verwenden möchten, müssen Sie zuerst eine Private Service Connect-Schnittstelle für Vertex AI-Ressourcen einrichten.
Pipelinelauf mit Private Service Connect-Schnittstellen erstellen
Um einen Pipeline-Job zu erstellen, müssen Sie zuerst eine Pipeline-Spezifikation erstellen. Eine Pipeline-Spezifikation ist ein In-Memory-Objekt, das Sie durch Konvertieren einer kompilierten Pipelinedefinition erstellen.
Pipelinespezifikation erstellen
So erstellen Sie eine In-Memory-Pipelinespezifikation, mit der Sie die Pipelineausführung erstellen können:
Definieren Sie eine Pipeline und kompilieren Sie sie in eine YAML-Datei. Weitere Informationen zum Definieren und Kompilieren einer Pipeline finden Sie unter Pipeline erstellen.
Mit dem folgenden Codebeispiel können Sie die kompilierte YAML-Datei der Pipeline in eine In-Memory-Pipelinespezifikation konvertieren.
import yaml with open("COMPILED_PIPELINE_PATH", "r") as stream: try: pipeline_spec = yaml.safe_load(stream) print(pipeline_spec) except yaml.YAMLError as exc: print(exc)
Ersetzen Sie COMPILED_PIPELINE_PATH durch den lokalen Pfad zur kompilierten Pipeline-YAML-Datei.
Pipelineausführung erstellen
Verwenden Sie die folgenden Beispiele, um eine Pipelineausführung mit Private Service Connect-Schnittstellen zu erstellen:
Python
Wenn Sie eine Pipelineausführung mit Private Service Connect-Schnittstellen mit dem Vertex AI SDK für Python erstellen möchten, konfigurieren Sie die Ausführung mit der aiplatform_v1beta1/services/pipeline_service
-Definition.
# Import aiplatform and the appropriate API version v1beta1
from google.cloud import aiplatform, aiplatform_v1beta1
# Initialize the Vertex SDK using PROJECT_ID and LOCATION
aiplatform.init(project="PROJECT_ID", location="LOCATION")
# Create the API endpoint
client_options = {
"api_endpoint": f"LOCATION-aiplatform.googleapis.com"
}
# Initialize the PipelineServiceClient
client = aiplatform_v1beta1.PipelineServiceClient(client_options=client_options)
# Construct the request
request = aiplatform_v1beta1.CreatePipelineJobRequest(
parent=f"projects/PROJECT_ID/locations/LOCATION",
pipeline_job=aiplatform_v1beta1.PipelineJob(
display_name="DISPLAY_NAME",
pipeline_spec=PIPELINE_SPEC,
runtime_config=aiplatform_v1beta1.PipelineJob.RuntimeConfig(
gcs_output_directory="OUTPUT_DIRECTORY",
),
psc_interface_config=aiplatform_v1beta1.PscInterfaceConfig(
network_attachment="NETWORK_ATTACHMENT_NAME"
),
)
# Make the API call
response = client.create_pipeline_job(request=request)
# Print the response
print(response)
Ersetzen Sie Folgendes:
- PROJECT_ID: Die Projekt-ID des Projekts, in dem Sie die Pipelineausführung erstellen möchten.
- LOCATION: Die Region, in der Sie die Pipelineausführung erstellen möchten.
- DISPLAY_NAME: Der Name des Pipelinejobs. Der Anzeigename darf maximal 128 UTF-8-Zeichen lang sein.
- PIPELINE_SPEC: Die Pipeline-Spezifikation, die Sie unter Pipeline-Spezifikation erstellen erstellt haben.
- OUTPUT_DIRECTORY: Der URI des Cloud Storage-Buckets zum Speichern von Ausgabeartefakten. Dieser Pfad ist das Stammausgabeverzeichnis der Pipeline und wird zum Generieren der Pfade der Ausgabeartefakte verwendet.
- NETWORK_ATTACHMENT_NAME: Der Name der Compute Engine-Netzwerkverbindung, die an die
PipelineJob
-Ressource angehängt werden soll. Damit Sie die Netzwerkanhänge abrufen können, müssen Sie die Schritte im Abschnitt Vorbereitung ausgeführt haben. Weitere Informationen zum Netzwerkanschluss finden Sie unter VPC-Netzwerk, Subnetz und Netzwerkanschluss einrichten.
REST
Senden Sie zum Erstellen einer Pipelineausführung eine POST
-Anfrage mit der Methode pipelineJobs.create.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Die Projekt-ID des Projekts, in dem Sie die Pipelineausführung erstellen möchten.
- LOCATION: Die Region, in der Sie die Pipelineausführung erstellen möchten.
- DISPLAY_NAME: Der Name des Pipelinejobs. Die maximale Länge eines Anzeigenamens beträgt 128 UTF-8-Zeichen.
- PIPELINE_SPEC: Die Pipeline-Spezifikation, die Sie unter Pipeline-Spezifikation erstellen erstellt haben.
- OUTPUT_DIRECTORY: Der URI des Cloud Storage-Buckets zum Speichern von Ausgabeartefakten. Dieser Pfad ist das Stammausgabeverzeichnis der Pipeline und wird zum Generieren der Pfade der Ausgabeartefakte verwendet.
- NETWORK_ATTACHMENT_NAME: Der Name der Compute Engine-Netzwerkverbindung, die an die
PipelineJob
-Ressource angehängt werden soll. Damit Sie die Netzwerkanhänge abrufen können, müssen Sie die Schritte im Abschnitt Vorbereitung ausgeführt haben. Weitere Informationen zum Netzwerkanschluss finden Sie unter VPC-Netzwerk, Subnetz und Netzwerkanschluss einrichten.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs
JSON-Text der Anfrage:
{ "display_name": "DISPLAY_NAME", "pipeline_spec": "PIPELINE_SPEC", "runtime_config": { "gcs_output_directory": "OUTPUT_DIRECTORY", }, "psc_interface_config": { "network_attachment": "NETWORK_ATTACHMENT_NAME" } }
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/pipelineJobs"
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/pipelineJobs" | Select-Object -Expand Content
Die Ausgabe sieht in etwa so aus: PIPELINE_JOB_ID steht für die ID der Pipelineausführung und SERVICE_ACCOUNT_NAME für das Dienstkonto, mit dem die Pipeline ausgeführt wurde.
{ "name": "projects/PROJECT_ID/locations/LOCATION/pipelineJobs/PIPELINE_JOB_ID", "displayName": "DISPLAY_NAME", "createTime": "20xx-01-01T00:00:00.000000Z", "updateTime": "20xx-01-01T00:00:00.000000Z", "pipelineSpec": PIPELINE_SPEC, "state": "PIPELINE_STATE_PENDING", "labels": { "vertex-ai-pipelines-run-billing-id": "VERTEX_AI_PIPELINES_RUN_BILLING_ID" }, "runtimeConfig": { "gcsOutputDirectory": "OUTPUT_DIRECTORY" }, "serviceAccount": "SERVICE_ACCOUNT_NAME" "pscInterfaceConfig": { "networkAttachment": "NETWORK_ATTACHMENT_NAME" } }