Vous pouvez configurer une connectivité privée pour l'exécution de votre pipeline à l'aide d'une interface Private Service Connect. Google recommande d'utiliser Private Service Connect Vertex AI pour la connectivité privée, car il réduit les risques d'épuisement des adresses IP et prend en charge l'appairage transitif.
Vertex AI Pipelines utilise l'infrastructure d'interface Private Service Connect sous-jacente pour l'entraînement afin de transmettre les informations de connexion au job d'entraînement personnalisé. Pour en savoir plus sur les limites et les tarifs de l'utilisation des interfaces Private Service Connect avec l'entraînement personnalisé, consultez la page Utiliser l'interface Private Service Connect pour l'entraînement Vertex AI.
Limites
Les interfaces Private Service Connect ne sont pas compatibles avec les adresses IP externes.
Tarifs
La tarification des interfaces Private Service Connect est décrite sur la page Tous les tarifs de mise en réseau.
Avant de commencer
Pour utiliser une interface Private Service Connect avec Vertex AI Pipelines, vous devez d'abord configurer une interface Private Service Connect pour les ressources Vertex AI.
Créer une exécution de pipeline avec des interfaces Private Service Connect
Pour créer une tâche de pipeline, vous devez d'abord créer une spécification de pipeline. Une spécification de pipeline est un objet en mémoire que vous créez en convertissant une définition de pipeline compilée.
Créer une spécification de pipeline
Suivez ces instructions pour créer une spécification de pipeline en mémoire que vous pouvez utiliser pour créer l'exécution du pipeline:
Définissez un pipeline et compilez-le dans un fichier YAML. Pour en savoir plus sur la définition et la compilation d'un pipeline, consultez la section Créer un pipeline.
Utilisez l'exemple de code suivant pour convertir le fichier YAML du pipeline compilé en spécification de pipeline en mémoire.
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)
Remplacez COMPILED_PIPELINE_PATH par le chemin d'accès local à votre fichier YAML de pipeline compilé.
Créer l'exécution du pipeline
Utilisez les exemples suivants pour créer une exécution de pipeline à l'aide d'interfaces Private Service Connect:
Python
Pour créer une exécution de pipeline avec des interfaces Private Service Connect à l'aide du SDK Vertex AI pour Python, configurez l'exécution à l'aide de la définition aiplatform_v1beta1/services/pipeline_service
.
# 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)
Remplacez les éléments suivants :
- PROJECT_ID: ID du projet dans lequel vous souhaitez créer l'exécution du pipeline.
- LOCATION: région dans laquelle vous souhaitez créer l'exécution du pipeline.
- DISPLAY_NAME: nom du job de pipeline. La longueur maximale d'un nom à afficher est de 128 caractères UTF-8.
- PIPELINE_SPEC: la spécification de pipeline que vous avez créée dans Créer une spécification de pipeline.
- OUTPUT_DIRECTORY: URI du bucket Cloud Storage pour le stockage des artefacts de sortie. Ce chemin d'accès est le répertoire de sortie racine du pipeline et permet de générer les chemins d'accès des artefacts de sortie.
- NETWORK_ATTACHMENT_NAME: nom de l'association de réseau Compute Engine à associer à la ressource
PipelineJob
. Pour obtenir la pièce jointe réseau, vous devez avoir suivi les étapes de la section Avant de commencer. Pour en savoir plus sur le rattachement de réseau, consultez la section Configurer un réseau VPC, un sous-réseau et un rattachement de réseau.
REST
Pour créer une exécution de pipeline, envoyez une requête POST
à l'aide de la méthode pipelineJobs.create.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID: ID du projet dans lequel vous souhaitez créer l'exécution du pipeline.
- LOCATION: région dans laquelle vous souhaitez créer l'exécution du pipeline.
- DISPLAY_NAME: nom du job de pipeline. La longueur maximale d'un nom à afficher est de 128 caractères UTF-8.
- PIPELINE_SPEC: la spécification de pipeline que vous avez créée dans Créer une spécification de pipeline.
- OUTPUT_DIRECTORY: URI du bucket Cloud Storage pour le stockage des artefacts de sortie. Ce chemin d'accès est le répertoire de sortie racine du pipeline et permet de générer les chemins d'accès des artefacts de sortie.
- NETWORK_ATTACHMENT_NAME: nom de l'association de réseau Compute Engine à associer à la ressource
PipelineJob
. Pour obtenir la pièce jointe réseau, vous devez avoir suivi les étapes de la section Avant de commencer. Pour en savoir plus sur le rattachement de réseau, consultez la section Configurer un réseau VPC, un sous-réseau et un rattachement de réseau.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs
Corps JSON de la requête :
{ "display_name": "DISPLAY_NAME", "pipeline_spec": "PIPELINE_SPEC", "runtime_config": { "gcs_output_directory": "OUTPUT_DIRECTORY", }, "psc_interface_config": { "network_attachment": "NETWORK_ATTACHMENT_NAME" } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Des résultats semblables aux lignes suivantes devraient s'afficher : PIPELINE_JOB_ID représente l'ID de l'exécution du pipeline et SERVICE_ACCOUNT_NAME représente le compte de service utilisé pour exécuter le pipeline.
{ "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" } }