Se recomienda la interfaz de Private Service Connect para la conectividad privada, ya que reduce la posibilidad de agotamiento de IP y permite el intercambio de tráfico transitivo.
La interfaz de Private Service Connect es compatible con los trabajos personalizados y los recursos persistentes de Vertex AI.
Descripción general
La interfaz de Private Service Connect es compatible con los trabajos personalizados y los recursos persistentes de Vertex AI Training. Para usar la interfaz de Private Service Connect, debes configurar una red de VPC, una subred y un adjunto de red en tu proyecto de usuario. Consulta Cómo configurar una interfaz de Private Service Connect. El nombre del adjunto de red debe incluirse en la solicitud para crear un trabajo personalizado o un recurso persistente para habilitar la interfaz de Private Service Connect.
Conectividad de salida de Private Service Connect de Vertex AI a otras redes
Vertex AI integró las conectividades de red de salida compatibles con Private Service Connect (consulta Conexión a cargas de trabajo en otras redes), con las siguientes excepciones:
No se admite la salida al Acceso privado a Google de un cliente. En cambio, la salida de Private Service Connect se resolvería de forma local para el acceso privado a Google.
La salida a Cloud NAT solo se admite cuando el Control de servicios de VPC está habilitado.
Limitaciones
- Las interfaces de Private Service Connect no admiten direcciones IP externas.
Precios
Los precios de las interfaces de Private Service Connect se describen en la sección "Usa una interfaz de Private Service Connect para acceder a una red de VPC del productor o del consumidor" en la página Todos los precios de redes.
Antes de comenzar
Configura tus recursos para la interfaz de Private Service Connect en tu proyecto de usuario.
Crea un trabajo de entrenamiento personalizado con una interfaz de Private Service Connect
Puedes crear un trabajo de entrenamiento personalizado con la interfaz de Private Service Connect a través del SDK de Vertex AI para Python o la API de REST.
Python
Para crear un trabajo de entrenamiento personalizado con PSC-I usando el SDK de Vertex AI para Python, configura el trabajo con la definición de aiplatform_v1/services/job_service
.
Python
project
: El ID del proyecto. Puedes encontrar estos IDs en la página de bienvenida de la consola de Google Cloud .location
: Consulta la lista de ubicaciones disponibles.bucket
: Reemplazabucket
por el nombre de un bucket al que tienes acceso.display_name
: Es el nombre visible del recurso persistente.machine_type
: Especifica los recursos de procesamiento.replica_count
: La cantidad de réplicas de trabajadores que se deben usar para cada prueba.service_attachment
: Es el nombre del recurso de adjunto de servicio. Se propaga si Private Service Connect está habilitado.image_uri
: Es el URI de una imagen de contenedor de Docker con el código de entrenamiento. Obtén más información para crear una imagen de contenedor personalizada.network_attachment
: Es el nombre o la ruta de acceso completa del adjunto de red que creaste cuando configuraste tus recursos para Private Service Connect.domain
: Es el nombre de DNS de la zona privada de Cloud DNS que creaste cuando configuraste el intercambio de tráfico de DNS privado.target_project
: Es el proyecto que aloja la red de VPC.target_network
: el nombre de la red de VPC
REST
Para crear un trabajo de entrenamiento personalizado, envía una solicitud POST con el método customJobs.create.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION: es la región en la que se ejecutará el contenedor o el paquete de Python.
- PROJECT_ID: El ID del proyecto.
- JOB_NAME: Un nombre visible para
CustomJob
. - REPLICA_COUNT: La cantidad de réplicas de trabajadores que se deben usar. En la mayoría de los casos, debes configurar esta opción como
1
para el primer grupo de trabajadores. - Si tu aplicación de entrenamiento se ejecuta en un contenedor personalizado, especifica lo siguiente:
- IMAGE_URI: Es el URI de una imagen de contenedor de Docker con el código de entrenamiento. Obtén más información sobre cómo crear una imagen de contenedor personalizada.
- NETWORK_ATTACHMENT: Es el nombre o la ruta de acceso completa del adjunto de red que creaste cuando configuraste la interfaz de Private Service Connect.
- Si necesitas intercambio de tráfico de DNS privado, el campo
dns_peering_configs
es obligatorio. En esta lista, cada elemento contiene lo siguiente:- DOMAIN_SUFFIX: Es el nombre de DNS de la zona privada de Cloud DNS que creaste cuando configuraste el intercambio de tráfico de DNS privado.
- TARGET_PROJECT: Es el proyecto que aloja la red de VPC.
- TARGET_NETWORK: el nombre de la red de VPC
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs
Cuerpo JSON de la solicitud:
"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 }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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
Deberías recibir una respuesta JSON similar a la que se muestra a continuación: