Utilizza l'interfaccia Private Service Connect per Vertex AI Training

L'interfaccia Private Service Connect è consigliata per la connettività privata perché riduce la possibilità di esaurimento degli indirizzi IP e consente il peering transitivo.

L'interfaccia Private Service Connect è supportata nei job personalizzati e nelle risorse permanenti di Agent Platform.

Panoramica

L'interfaccia Private Service Connect è supportata nei job personalizzati e nelle risorse permanenti di Vertex AI Training. Per utilizzare l'interfaccia Private Service Connect, devi configurare una rete VPC, una subnet e un collegamento di rete nel tuo progetto utente. Consulta Configurare un'interfaccia Private Service Connect. Il nome del collegamento di rete deve essere incluso nella richiesta di creazione di un job personalizzato o di una risorsa permanente per abilitare l'interfaccia Private Service Connect.

Connettività in uscita di Private Service Connect di Gemini Enterprise Agent Platform ad altre reti

Gemini Enterprise Agent Platform ha integrato le connettività di rete in uscita supportate da Private Service Connect (vedi Connessione ai carichi di lavoro in altre reti), con i seguenti comportamenti architetturali.

Raggiungere le API di Google e i servizi solo interni

Quando Gemini Enterprise Agent Platform invia traffico alle API di Google, questo viene risolto localmente nell'ambiente producer e non utilizza le impostazioni di accesso privato Google o il routing della rete VPC consumer.

Nota:

  • Requisito di identità VPC: poiché la risoluzione locale bypassa il percorso della rete VPC consumer, il traffico non porta l'identità della rete VPC. Di conseguenza, le richieste ai servizi Google solo interni, come i servizi Cloud Run configurati con l'ingresso interno, non andranno a buon fine e verrà restituito un errore 404 o 403.
  • Soluzione endpoint Private Service Connect: per raggiungere questi servizi interni in modo privato, devi configurare un endpoint Private Service Connect per le API di Google nella tua rete VPC.
  • Configurazione DNS: devi assicurarti che il dominio del servizio (ad es. *.run.app) venga risolto nell'indirizzo IP interno dell'endpoint Private Service Connect per garantire che il traffico rimanga su un percorso puramente privato.

Traffico in uscita da internet e Cloud NAT

Per impostazione predefinita, Gemini Enterprise Agent Platform utilizza i gateway internet gestiti da Google per il traffico in uscita anziché le route della rete VPC. Il traffico in uscita tramite un gateway Cloud NAT consumer viene utilizzato solo quando il progetto fa parte di un perimetro dei Controlli di servizio VPC.

Questo perimetro blocca l'accesso internet predefinito, forzando il traffico attraverso l'interfaccia Private Service Connect e le regole di routing della rete VPC. Se non utilizzi i Controlli di servizio VPC, il traffico internet in uscita bypasserà completamente la rete VPC e il gateway Cloud NAT.

Limitazioni

Per le funzionalità e le limitazioni delle interfacce Private Service Connect, consulta Informazioni sull'accesso ai servizi di Gemini Enterprise Agent Platform tramite le interfacce Private Service Connect.

Prezzi

I prezzi delle interfacce Private Service Connect sono descritti nella "Utilizzo di un'interfaccia Private Service Connect per l'accesso a una rete VPC producer o consumer" nella pagina Tutti i prezzi di rete.

Prima di iniziare

Configura le risorse per l'interfaccia Private Service Connect nel tuo progetto utente.

Creare un job di addestramento serverless di Gemini Enterprise Agent Platform con un'interfaccia Private Service Connect

Puoi creare un job di addestramento serverless con l'interfaccia Private Service Connect utilizzando l'SDK Agent Platform per Python o l'API REST.

Python

Per creare un job di addestramento serverless con PSC-I utilizzando l'SDK Agent Platform per Python, configura il job utilizzando la aiplatform_v1/services/job_service definizione.

Python

from google.cloud import aiplatform


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,
    domain: str,
    target_project: str,
    target_network: str,
):
    """Custom training job sample with PSC Interface Config."""
    aiplatform.init(project=project, location=location, staging_bucket=bucket)

    worker_pool_specs = [{
        "machine_spec": {
            "machine_type": machine_type,
        },
        "replica_count": replica_count,
        "container_spec": {
            "image_uri": image_uri,
            "command": [],
            "args": [],
        },
    }]
    psc_interface_config = {
        "network_attachment": network_attachment,
        "dns_peering_configs": [
            {
                "domain": domain,
                "target_project": target_project,
                "target_network": target_network,
            },
        ],
    }
    job = aiplatform.CustomJob(
        display_name=display_name,
        worker_pool_specs=worker_pool_specs,
    )

    job.run(psc_interface_config=psc_interface_config)

  • project: . Puoi trovare questi ID nella Google Cloud console pagina di benvenuto.
  • location: consulta l'elenco delle località disponibili.
  • bucket: sostituisci bucket con il nome di un bucket a cui hai accesso.
  • display_name: il nome visualizzato della risorsa permanente.
  • machine_type: Specifica le risorse di calcolo.
  • replica_count: il numero di repliche dei worker da utilizzare per ogni prova.
  • service_attachment: il nome della risorsa di collegamento al servizio. Viene compilato se Private Service Connect è abilitato.
  • image_uri: l'URI di un'immagine container Docker con il codice di addestramento. Scopri come creare un' immagine container personalizzata.
  • network_attachment: il nome o il percorso completo del collegamento di rete creato durante la configurazione delle risorse per Private Service Connect.
  • domain: il nome DNS della zona DNS privata Cloud DNS creata durante la configurazione del peering DNS privato.
  • target_project: il progetto che ospita la rete VPC.
  • target_network: il nome della rete VPC.

REST

Per creare un job di addestramento serverless, invia una richiesta POST utilizzando il customJobs.create.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • LOCATION: la regione dove verrà eseguito il container o il pacchetto Python.
  • PROJECT_ID: il tuo [ID progetto](/resource-manager/docs/creating-managing-projects#identifiers). .
  • JOB_NAME: un nome visualizzato per CustomJob.
  • REPLICA_COUNT: il numero di repliche dei worker da usare. Nella maggior parte dei casi, impostare questo valore su 1 per il primo pool di worker.
  • Se l'applicazione di addestramento viene eseguita in un container personalizzato, specifica quanto segue:

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

"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
}

Per inviare la richiesta, scegli una di queste opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

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

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$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

Dovresti ricevere una risposta JSON simile alla seguente: