Utilizza endpoint privati dedicati basati su Private Service Connect per l'inferenza online

Le informazioni in questa pagina si applicano ai modelli con addestramento personalizzato e ai modelli AutoML. Per il deployment di Model Garden, consulta Utilizzare i modelli in Model Garden.

Private Service Connect ti consente di eseguire il deployment del modello Gemini Enterprise Agent Platform addestrato personalizzato e di pubblicare inferenze online in modo sicuro in più progetti consumer e reti VPC senza la necessità di indirizzi IP pubblici, accesso a internet pubblico o un intervallo di indirizzi IP interni con peering esplicito.

Consigliamo Private Service Connect per i casi d'uso dell'inferenza online che soddisfano i seguenti requisiti:

  • Richiedere connessioni private e sicure
  • Richiedi bassa latenza
  • Non devono essere accessibili pubblicamente

Private Service Connect utilizza una regola di forwarding nella tua rete VPC per inviare il traffico in modo unidirezionale al servizio di inferenza online di Agent Platform. La regola di forwarding si connette a un allegato del servizio che espone il servizio Agent Platform alla tua rete VPC. Per ulteriori informazioni, consulta Informazioni sull'accesso ai servizi di Agent Platform tramite Private Service Connect. Per scoprire di più sulla configurazione di Private Service Connect, consulta la panoramica di Private Service Connect nella documentazione di Virtual Private Cloud (VPC).

Gli endpoint privati dedicati supportano i protocolli di comunicazione HTTP e gRPC. Per le richieste gRPC, l'intestazione x-vertex-ai-endpoint-id deve essere inclusa per la corretta identificazione dell'endpoint. Sono supportate le seguenti API:

  • Previsione
  • RawPredict
  • StreamRawPredict
  • Completamento della chat (solo Model Garden)

Puoi inviare richieste di inferenza online a un endpoint privato dedicato utilizzando l'SDK Agent Platform per Python. Per maggiori dettagli, vedi Ottenere inferenze online.

Ruoli obbligatori

Per ottenere l'autorizzazione necessaria per creare un endpoint Private Service Connect, chiedi all'amministratore di concederti il ruolo IAM Agent Platform User (roles/aiplatform.user) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene l'autorizzazione aiplatform.endpoints.create necessaria per creare un endpoint Private Service Connect.

Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.

Per saperne di più sui ruoli e sulle autorizzazioni di Gemini Enterprise Agent Platform, consulta Controllo dell'controllo dell'accesso di Agent Platform con IAM e Autorizzazioni IAM di Gemini Enterprise Agent Platform.

Crea l'endpoint di inferenza online

Utilizza uno dei seguenti metodi per creare un endpoint di inferenza online con Private Service Connect abilitato.

Il timeout predefinito della richiesta per un endpoint Private Service Connect è di 10 minuti. Nell'SDK Agent Platform per Python, puoi specificare facoltativamente un timeout della richiesta diverso specificando un nuovo valore inference_timeout, come mostrato nell'esempio seguente. Il valore massimo del timeout è 3600 secondi (1 ora).

Console

  1. Nella console Cloud de Confiance , in Agent Platform, vai alla pagina previsione online.

    Vai alla previsione online

  2. Fai clic su Crea.

  3. Fornisci un nome visualizzato per l'endpoint.

  4. Seleziona Privato.

  5. Seleziona Private Service Connect.

  6. Fai clic su Seleziona ID progetto.

  7. Seleziona i progetti da aggiungere alla lista consentita per l'endpoint.

  8. Fai clic su Continua.

  9. Scegli le specifiche del modello. Per saperne di più, consulta Eseguire il deployment di un modello in un endpoint.

  10. Fai clic su Crea per creare l'endpoint ed eseguire il deployment del modello.

  11. Prendi nota dell'ID endpoint nella risposta.

API

REST

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

  • VERTEX_AI_PROJECT_ID: l'ID del progetto Cloud de Confiance by S3NS in cui stai creando l'endpoint di previsione online.
  • REGION: la regione in cui utilizzi Gemini Enterprise Agent Platform.
  • VERTEX_AI_ENDPOINT_NAME: il nome visualizzato per l'endpoint di previsione online.
  • ALLOWED_PROJECTS: un elenco separato da virgole di ID progetto Cloud de Confiance , ognuno racchiuso tra virgolette, ad esempio ["PROJECTID1", "PROJECTID2"]. Se un progetto non è incluso in questo elenco, non potrai inviare richieste di previsione all'endpoint di Agent Platform. Assicurati di includere VERTEX_AI_PROJECT_ID in questo elenco in modo da poter chiamare l'endpoint dallo stesso progetto in cui si trova.
  • (Facoltativo) INFERENCE_TIMEOUT_SECS: numero di secondi nel campo facoltativo inferenceTimeout.

Metodo HTTP e URL:

POST https://REGION-aiplatform.googleapis.com/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints

Corpo JSON della richiesta:

{
  "displayName": "VERTEX_AI_ENDPOINT_NAME",
  "privateServiceConnectConfig": {
    "enablePrivateServiceConnect": true,
    "projectAllowlist": ["ALLOWED_PROJECTS"]
  },
  "clientConnectionConfig": {
    "inferenceTimeout": "INFERENCE_TIMEOUT_SECSs"
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/VERTEX_AI_PROJECT_NUMBER/locations/REGION/endpoints/ENDPOINT_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateEndpointOperationMetadata",
    "genericMetadata": {
      "createTime": "2020-11-05T17:45:42.812656Z",
      "updateTime": "2020-11-05T17:45:42.812656Z"
    }
  }
}
Prendi nota di ENDPOINT_ID.

Python

Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Agent Platform per l'utilizzo delle librerie client.

Per eseguire l'autenticazione in Agent Platform, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

Prima di eseguire gli esempi di codice, imposta la variabile di ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.

Sostituisci quanto segue:

  • VERTEX_AI_PROJECT_ID: l'ID del Cloud de Confiance by S3NS progetto in cui stai creando l'endpoint di inferenza online
  • REGION: la regione in cui utilizzi Gemini Enterprise Agent Platform
  • VERTEX_AI_ENDPOINT_NAME: il nome visualizzato per l'endpoint di inferenza online
  • ALLOWED_PROJECTS: un elenco separato da virgole di Cloud de Confiance ID progetto, ognuno racchiuso tra virgolette. Ad esempio ["PROJECTID1", "PROJECTID2"]. Se un progetto non è incluso in questo elenco, non potrai inviare richieste di inferenza all'endpoint della Agent Platform. Assicurati di includere VERTEX_AI_PROJECT_ID in questo elenco in modo da poter chiamare l'endpoint dallo stesso progetto in cui si trova.
  • (Facoltativo) INFERENCE_TIMEOUT_SECS: numero di secondi nel valore inference_timeout facoltativo.
PROJECT_ID = "VERTEX_AI_PROJECT_ID"
REGION = "REGION"
VERTEX_AI_ENDPOINT_NAME = "VERTEX_AI_ENDPOINT_NAME"
INFERENCE_TIMEOUT_SECS = "INFERENCE_TIMEOUT_SECS"

from google.cloud import aiplatform

aiplatform.init(project=PROJECT_ID, location=REGION)

# Create the forwarding rule in the consumer project
psc_endpoint = aiplatform.PrivateEndpoint.create(
display_name=VERTEX_AI_ENDPOINT_NAME,
project=PROJECT_ID,
location=REGION,
private_service_connect_config=aiplatform.PrivateEndpoint.PrivateServiceConnectConfig(
    project_allowlist=["ALLOWED_PROJECTS"],
    ),
inference_timeout=INFERENCE_TIMEOUT_SECS,
)

Prendi nota di ENDPOINT_ID alla fine dell'URI dell'endpoint restituito:

INFO:google.cloud.aiplatform.models:To use this PrivateEndpoint in another session:
INFO:google.cloud.aiplatform.models:endpoint = aiplatform.PrivateEndpoint('projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID')

Crea l'endpoint di inferenza online con l'automazione PSC

L'inferenza online si integra con l'automazione della connettività dei servizi, che consente di configurare gli endpoint di inferenza con l'automazione PSC. Ciò semplifica il processo creando automaticamente endpoint PSC ed è particolarmente utile per gli sviluppatori ML che non dispongono delle autorizzazioni per creare risorse di rete come regole di forwarding all'interno di un progetto.

Per iniziare, l'amministratore di rete deve stabilire un criterio di connessione servizio. Questa policy è una configurazione una tantum per progetto e rete che consente a Gemini Enterprise Agent Platform (classe di servizio gcp-vertexai) di generare endpoint PSC all'interno dei tuoi progetti e delle tue reti.

Successivamente, puoi creare endpoint utilizzando la configurazione di automazione PSC e poi deployare i modelli. Una volta completato il deployment, le informazioni sull'endpoint PSC pertinente sono accessibili all'interno degli endpoint.

Limitazioni

  • Alle configurazioni dell'automazione PSC si applica un limite regionale di 500 endpoint.
  • I risultati dell'automazione PSC vengono eliminati quando nessun modello viene distribuito o è in fase di distribuzione all'endpoint. Dopo la pulizia e il successivo deployment del modello, i nuovi risultati dell'automazione presentano indirizzi IP e regole di inoltro distinti.

Crea una policy di connessione al servizio

Devi essere un amministratore di rete per creare il criterio di connessione al servizio. Per consentire ad Agent Platform di creare endpoint PSC nelle tue reti, è necessaria una policy di connessione al servizio. Senza una policy valida, l'automazione non riesce e viene visualizzato un errore CONNECTION_POLICY_MISSING.

  1. Crea la policy di connessione al servizio.

    • POLICY_NAME: un nome specificato dall'utente per la policy.
    • PROJECT_ID: l'ID del progetto di servizio in cui stai creando risorse Gemini Enterprise Agent Platform.

    • VPC_PROJECT: L'ID progetto in cui si trova il VPC client. Per la configurazione di un singolo VPC, questo valore è uguale a $PROJECT. Per la configurazione di VPC condiviso, questo è il progetto host VPC.

    • NETWORK_NAME: il nome della rete di cui eseguire il deployment.

    • REGION: la regione della rete.

    • PSC_SUBNETS: le subnet Private Service Connect da utilizzare.

    gcloud network-connectivity service-connection-policies create POLICY_NAME \
        --project=VPC_PROJECT \
        --network=projects/PROJECT_ID/global/networks/NETWORK_NAME \
        --service-class=gcp-vertexai --region=REGION --subnets=PSC_SUBNETS
    
  2. Visualizza la tua policy di connessione al servizio.

    gcloud network-connectivity service-connection-policies list \
        --project=VPC_PROJECT --region=REGION

    Per una configurazione VPC singola, un esempio è il seguente:

        gcloud network-connectivity service-connection-policies create test-policy \
            --network=default \
            --project=YOUR_PROJECT_ID \
            --region=us-central1 \
            --service-class=gcp-vertexai \
            --subnets=default \
            --psc-connection-limit=500 \
            --description=test

Crea l'endpoint di inferenza online con la configurazione dell'automazione PSC

In PSCAutomationConfig, controlla che projectId sia presente nella lista consentita.

REST

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

  • REGION: la regione in cui utilizzi Agent Platform.
  • VERTEX_AI_PROJECT_ID: l'ID del progetto Cloud de Confiance by S3NS in cui stai creando l'endpoint di inferenza online.
  • VERTEX_AI_ENDPOINT_NAME: il nome visualizzato per l'endpoint di previsione online.
  • NETWORK_NAME: il nome completo della risorsa, incluso l'ID progetto, anziché il numero di progetto.

Metodo HTTP e URL:

POST https://REGION-aiplatform.googleapis.com/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints

Corpo JSON della richiesta:

{
  {
    displayName: "VERTEX_AI_ENDPOINT_NAME",
    privateServiceConnectConfig: {
      enablePrivateServiceConnect: true,
      projectAllowlist: ["VERTEX_AI_PROJECT_ID"],
      pscAutomationConfigs: [
        { "project_id": "VERTEX_AI_PROJECT_ID", "network": "projects/VERTEX_AI_PROJECT_ID/global/networks/NETWORK_NAME" },
      ],
    },
  },

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/VERTEX_AI_PROJECT_NUMBER/locations/REGION/endpoints/ENDPOINT_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateEndpointOperationMetadata",
    "genericMetadata": {
      "createTime": "2020-11-05T17:45:42.812656Z",
      "updateTime": "2020-11-05T17:45:42.812656Z"
    }
  }
}
Prendi nota di ENDPOINT_ID.

Python

Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Agent Platform per l'utilizzo delle librerie client.

Per eseguire l'autenticazione in Agent Platform, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

Prima di eseguire gli esempi di codice, imposta la variabile di ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.

Sostituisci quanto segue:

  • VERTEX_AI_PROJECT_ID: l'ID del Cloud de Confiance by S3NS progetto in cui stai creando l'endpoint di inferenza online
  • REGION: la regione in cui utilizzi Gemini Enterprise Agent Platform
  • VERTEX_AI_ENDPOINT_NAME: il nome visualizzato per l'endpoint di inferenza online
  • NETWORK_NAME: il nome completo della risorsa, incluso l'ID progetto, anziché il numero di progetto.
PROJECT_ID = "VERTEX_AI_PROJECT_ID"
REGION = "REGION"
VERTEX_AI_ENDPOINT_NAME = "VERTEX_AI_ENDPOINT_NAME"

from google.cloud import aiplatform

aiplatform.init(project=PROJECT_ID, location=REGION)

config =
aiplatform.compat.types.service_networking.PrivateServiceConnectConfig(
        enable_private_service_connect=True,
        project_allowlist="VERTEX_AI_PROJECT_ID"
        psc_automation_configs=[
            aiplatform.compat.types.service_networking.PSCAutomationConfig(
                project_id="VERTEX_AI_PROJECT_ID"
network=projects/"VERTEX_AI_PROJECT_ID"/global/networks/"NETWORK_NAME",
            )
        ]
    )
psc_endpoint = aiplatform.PrivateEndpoint.create(
     display_name="VERTEX_AI_ENDPOINT_NAME"
     private_service_connect_config=config,
)

Esegui il deployment del modello

Dopo aver creato l'endpoint di inferenza online con Private Service Connect abilitato, esegui il deployment del modello seguendo i passaggi descritti in Esegui il deployment di un modello in un endpoint.

Crea manualmente l'endpoint PSC

Per connettere manualmente la tua rete VPC all'endpoint di inferenza online, devi ottenere l'URI del collegamento al servizio, creare una regola di forwarding e ottenere l'indirizzo IP interno.

Recuperare l'URI del collegamento al servizio

Quando esegui il deployment del modello, viene creato un collegamento del servizio per l'endpoint di inferenza online. Questo collegamento del servizio rappresenta il servizio di inferenza online della Agent Platform esposto alla tua rete VPC. Esegui il comando gcloud ai endpoints describe per recuperare l'URI del collegamento al servizio.

  1. Elenca solo il valore serviceAttachment dai dettagli dell'endpoint:

    gcloud ai endpoints describe ENDPOINT_ID \
    --project=VERTEX_AI_PROJECT_ID \
    --region=REGION \
    | grep -i serviceAttachment
    

    Sostituisci quanto segue:

    • ENDPOINT_ID: l'ID dell'endpoint di inferenza online
    • VERTEX_AI_PROJECT_ID: l'ID del progetto Cloud de Confiance by S3NS in cui hai creato l'endpoint di inferenza online
    • REGION: la regione per questa richiesta

    L'output è simile al seguente:

    serviceAttachment: projects/ac74a9f84c2e5f2a1-tp/regions/us-central1/serviceAttachments/gkedpm-c6e6a854a634dc99472bb802f503c1
    
  2. Prendi nota dell'intera stringa nel campo serviceAttachment. Questo è l'URI del collegamento al servizio.

Creare una regola di forwarding

Puoi prenotare un indirizzo IP interno e creare una regola di forwarding con questo indirizzo. Per creare la regola di forwarding, devi avere l'URI dell'allegato di servizio del passaggio precedente.

  1. Per prenotare un indirizzo IP interno per la regola di forwarding, utilizza il comando gcloud compute addresses create:

    gcloud compute addresses create ADDRESS_NAME \
    --project=VPC_PROJECT_ID \
    --region=REGION \
    --subnet=SUBNETWORK \
    --addresses=INTERNAL_IP_ADDRESS
    

    Sostituisci quanto segue:

    • ADDRESS_NAME: un nome per l'indirizzo IP interno
    • VPC_PROJECT_ID: l'ID del progetto Cloud de Confiance che ospita la tua rete VPC. Se l'endpoint di inferenza online e la regola di forwarding di Private Service Connect sono ospitati nello stesso progetto, utilizza VERTEX_AI_PROJECT_ID per questo parametro.
    • REGION: la regione Cloud de Confiance in cui deve essere creata la regola di forwarding di Private Service Connect
    • SUBNETWORK: il nome della subnet VPC che contiene l'indirizzo IP
    • INTERNAL_IP_ADDRESS: l'indirizzo IP interno da riservare. Questo parametro è facoltativo.

      • Se questo parametro è specificato, l'indirizzo IP deve rientrare nell'intervallo di indirizzi IP principali della subnet. L'indirizzo IP può essere un indirizzo RFC 1918 o una subnet con intervalli non RFC.
      • Se questo parametro viene omesso, viene allocato automaticamente un indirizzo IP interno.
      • Per saperne di più, consulta Prenota un nuovo indirizzo IPv4 o IPv6 interno statico.
  2. Per verificare che l'indirizzo IP sia prenotato, utilizza il comando gcloud compute addresses list:

    gcloud compute addresses list --filter="name=(ADDRESS_NAME)" \
    --project=VPC_PROJECT_ID
    

    Nella risposta, verifica che per l'indirizzo IP venga visualizzato lo stato RESERVED.

  3. Per creare la regola di forwarding e indirizzarla all'allegato del servizio di inferenza online, utilizza il comando gcloud compute forwarding-rules create:

    gcloud compute forwarding-rules create PSC_FORWARDING_RULE_NAME \
        --address=ADDRESS_NAME \
        --project=VPC_PROJECT_ID \
        --region=REGION \
        --network=VPC_NETWORK_NAME \
        --target-service-attachment=SERVICE_ATTACHMENT_URI
    

    Sostituisci quanto segue:

    • PSC_FORWARDING_RULE_NAME: un nome per la regola di forwarding
    • VPC_NETWORK_NAME: il nome della rete VPC in cui deve essere creato l'endpoint
    • SERVICE_ATTACHMENT_URI: il service attachment che hai annotato in precedenza
  4. Per verificare che l'allegato del servizio accetti l'endpoint, utilizza il comando gcloud compute forwarding-rules describe:

    gcloud compute forwarding-rules describe PSC_FORWARDING_RULE_NAME \
    --project=VPC_PROJECT_ID \
    --region=REGION
    

    Nella risposta, verifica che nello stato ACCEPTED venga visualizzato il campo pscConnectionStatus.

Ottieni l'indirizzo IP interno

Se non hai specificato un valore per INTERNAL_IP_ADDRESS quando hai creato la regola di forwarding, puoi ottenere l'indirizzo allocato automaticamente utilizzando il comando gcloud compute forwarding-rules describe:

gcloud compute forwarding-rules describe PSC_FORWARDING_RULE_NAME \
--project=VERTEX_AI_PROJECT_ID \
--region=REGION \
| grep -i IPAddress

Sostituisci quanto segue:

  • VERTEX_AI_PROJECT_ID: il tuo ID progetto
  • REGION: il nome della regione per questa richiesta

(Facoltativo) Ottieni l'endpoint PSC dal risultato dell'automazione PSC

Puoi ottenere l'indirizzo IP e la regola di forwarding generati dall'endpoint di inferenza. Ecco un esempio:

"privateServiceConnectConfig": {
  "enablePrivateServiceConnect": true,
  "projectAllowlist": [
    "your-project-id",
  ],
  "pscAutomationConfigs": [
    {
      "projectId": "your-project-id",
      "network": "projects/your-project-id/global/networks/default",
      "ipAddress": "10.128.15.209",
      "forwardingRule": "https://www.googleapis.com/compute/v1/projects/your-project-id/regions/us-central1/forwardingRules/sca-auto-fr-47b0d6a4-eaff-444b-95e6-e4dc1d10101e",
      "state": "PSC_AUTOMATION_STATE_SUCCESSFUL"
    },
  ]
}

Ecco alcuni dettagli sulla gestione degli errori.

  • L'errore di Automation non influisce sul risultato del deployment del modello.
  • L'esito positivo o negativo dell'operazione è indicato nello stato.
    • In caso di esito positivo, vengono visualizzati l'indirizzo IP e la regola di forwarding.
    • In caso di esito negativo, viene visualizzato un messaggio di errore.
  • Le configurazioni dell'Automation vengono rimosse quando non viene eseguito il deployment di modelli o quando è in corso il deployment nell'endpoint. Ciò comporta una modifica dell'indirizzo IP e della regola di forwarding se un modello viene implementato in un secondo momento.
  • L'automazione non riuscita non verrà recuperata. In caso di errore, puoi comunque creare l'endpoint PSC manualmente. Consulta Creare manualmente l'endpoint PSC.

Ottenere inferenze online

L'ottenimento di inferenze online da un endpoint con Private Service Connect è simile all'ottenimento di inferenze online da endpoint pubblici, ad eccezione delle seguenti considerazioni:

  • La richiesta deve essere inviata da un progetto specificato in projectAllowlist al momento della creazione dell'endpoint di inferenza online.
  • Se l'accesso globale non è abilitato, la richiesta deve essere inviata dalla stessa regione.
  • Sono aperte due porte: la 443 con TLS che utilizza un certificato autofirmato e la 80 senza TLS. Entrambe le porte supportano HTTP e gRPC. Tutto il traffico rimane sulla tua rete privata e non attraversa la rete internet pubblica.
  • La best practice prevede l'utilizzo di HTTPS con il certificato autofirmato ottenuto dall'inferenza online di Gemini Enterprise Agent Platform o il deployment del tuo certificato autofirmato.
  • Per ottenere inferenze, è necessario stabilire una connessione utilizzando l'indirizzo IP statico dell'endpoint, a meno che non venga creato un record DNS per l'indirizzo IP interno. Ad esempio, invia le richieste predict al seguente endpoint:

    http://INTERNAL_IP_ADDRESS/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict
    

    Sostituisci INTERNAL_IP_ADDRESS con l'indirizzo IP interno che hai prenotato in precedenza.

  • Per le richieste gRPC: Per garantire la corretta identificazione dell'endpoint per le richieste gRPC, è necessario includere l'intestazione x-vertex-ai-endpoint-id. Questo è necessario perché le informazioni sull'endpoint non vengono trasmesse nel percorso della richiesta per la comunicazione gRPC.

Crea un record DNS per l'indirizzo IP interno

Ti consigliamo di creare un record DNS in modo da poter ottenere inferenze online dal tuo endpoint senza dover specificare l'indirizzo IP interno.

Per saperne di più, consulta Altri modi per configurare il DNS.

  1. Crea una zona DNS privata utilizzando il comando gcloud dns managed-zones create. Questa zona è associata alla rete VPC in cui è stata creata la regola di forwarding.

    DNS_NAME_SUFFIX="prediction.p.vertexai.goog."  # DNS names have "." at the end.
    gcloud dns managed-zones create ZONE_NAME \
    --project=VPC_PROJECT_ID \
    --dns-name=$DNS_NAME_SUFFIX \
    --networks=VPC_NETWORK_NAME \
    --visibility=private \
    --description="A DNS zone for Agent Platform endpoints using Private Service Connect."
    
    

    Sostituisci quanto segue:

    • ZONE_NAME: il nome della zona DNS
  2. Per creare un record DNS nella zona, utilizza il comando gcloud dns record-sets create:

    DNS_NAME=ENDPOINT_ID-REGION-VERTEX_AI_PROJECT_NUMBER.$DNS_NAME_SUFFIX
    gcloud dns record-sets create $DNS_NAME \
    --rrdatas=INTERNAL_IP_ADDRESS \
    --zone=ZONE_NAME \
    --type=A \
    --ttl=60 \
    --project=VPC_PROJECT_ID
    

    Sostituisci quanto segue:

    • VERTEX_AI_PROJECT_NUMBER: il numero di progetto del tuo progetto VERTEX_AI_PROJECT_ID. Puoi trovare questo numero di progetto nella console Cloud de Confiance . Per saperne di più, consulta la sezione Identificazione dei progetti.
    • INTERNAL_IP_ADDRESS: l'indirizzo IP interno dell'endpoint di inferenza online

    Ora puoi inviare le tue richieste di predict a:

    http://ENDPOINT_ID-REGION-VERTEX_AI_PROJECT_NUMBER.prediction.p.vertexai.goog/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict
    

Supporto dei certificati Transport Layer Security (TLS)

L'inferenza online di Gemini Enterprise Agent Platform è protetta da un certificato autofirmato. Poiché questo certificato non è firmato da un'autorità di certificazione (CA) attendibile, i client che tentano di stabilire una connessione HTTPS devono essere configurati in modo esplicito per considerarlo attendibile. Il certificato autofirmato ottenuto dall'endpoint di inferenza online di Gemini Enterprise Agent Platform è valido per 10 anni. Poiché questo certificato non è univoco per un endpoint specifico, un singolo certificato può essere utilizzato per tutte le integrazioni dell'archivio di attendibilità. Di seguito sono riportati i passaggi di alto livello necessari per stabilire una connessione HTTPS all'inferenza online di Gemini Enterprise Agent Platform:

  1. Configura DNS: il certificato autofirmato include il nome alternativo del soggetto (SAN) *.prediction.p.vertexai.goog. Devi creare un record DNS nella tua rete che corrisponda a questo formato.

    Per i dettagli di implementazione, vedi Crea un record DNS per l'indirizzo IP interno.

  2. Stabilire l'attendibilità del client: il client deve scaricare il certificato autofirmato e aggiungerlo al proprio archivio di attendibilità locale.

  3. Stabilire una connessione HTTPS: per stabilire una connessione HTTPS all'inferenza online di Gemini Enterprise Agent Platform è necessario utilizzare il nome di dominio completo (FQDN). Ciò è necessario perché il servizio utilizza un certificato SSL con caratteri jolly valido per il dominio *.prediction.p.vertexai.goog.

I passaggi seguenti mostrano come scaricare il certificato di inferenza online di Gemini Enterprise Agent Platform e aggiungerlo all'archivio di attendibilità locale sui sistemi Linux basati su Debian, come Debian 11 e Ubuntu.

  1. Aggiorna i pacchetti del sistema operativo e installa OpenSSL:

    sudo apt update && sudo apt install openssl
    
  2. Esegui questo comando dalla tua home directory per scaricare il certificato di inferenza online di Gemini Enterprise Agent Platform e salvarlo in un file denominato vertex_certificate.crt nella directory corrente. Effettua le seguenti sostituzioni:

    • ENDPOINT_ID: ID dell'endpoint del modello di cui è stato eseguito il deployment
    • REGION: la regione in cui si trova l'endpoint
    • VERTEX_AI_PROJECT_NUMBER: il numero di progetto. Puoi trovare questo numero di progetto nella console Cloud de Confiance . Per saperne di più, consulta la sezione Identificazione dei progetti.
    openssl s_client -showcerts -connect \
    ENDPOINT_ID-REGION-VERTEX_AI_PROJECT_NUMBER.prediction.p.vertexai.goog:443 </dev/null | \
    openssl x509 -outform pem -out vertex_certificate.crt
    
    
  3. Sposta il certificato nell'archivio di attendibilità del sistema:

    sudo mv vertex_certificate.crt /usr/local/share/ca-certificates
    
  4. Aggiorna l'elenco delle CA attendibili di Certificate Manager. Dovresti vedere un output che conferma l'aggiunta di un certificato.

    sudo update-ca-certificates
    
  5. Invia una richiesta predict al seguente URL, apportando le seguenti sostituzioni:

    • INTERNAL_IP_ADDRESS: l'indirizzo IP interno dell'endpoint di inferenza online
    • VERTEX_AI_PROJECT_ID: l'ID progetto del tuo progetto
    https://ENDPOINT_ID-REGION-VERTEX_AI_PROJECT_NUMBER.prediction.p.vertexai.goog/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict
    

Supporto dei certificati personalizzati per TLS

Per le organizzazioni che necessitano di un controllo preciso sulla gestione e sulla rotazione dei certificati per gli endpoint di inferenza online di Gemini Enterprise Agent Platform, puoi utilizzare un certificato gestito dal cliente con un Cloud de Confiance by S3NS bilanciatore del carico delle applicazioni (HTTPS) regionale esterno o interno.

Di seguito sono riportati i passaggi di implementazione di alto livello:

  1. Crea un certificato in uno dei seguenti modi:

  2. Esegui il deployment di un bilanciatore del carico delle applicazioni regionale (HTTPS):

  3. Configura il DNS:

    • Aggiungere un record A alla tua zona DNS. La zona può essere pubblica o privata.
    • Questo record deve mappare il tuo dominio personalizzato completo (ad esempio, example.com) all'indirizzo IP del bilanciatore del carico delle applicazioni regionale.
  4. Aggiorna l'archivio di attendibilità locale:

    • Affinché il client autentichi il server, il certificato del bilanciatore del carico delle applicazioni (o la CA che lo ha emesso) deve essere importato nell'archivio di attendibilità locale.

Ora puoi inviare le richieste di previsione al dominio personalizzato completo:

https://example.com/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict

Esempi di inferenze online

Le sezioni seguenti forniscono esempi di come inviare la richiesta predict utilizzando Python.

Primo esempio

psc_endpoint = aiplatform.PrivateEndpoint("projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID")
REQUEST_FILE = "PATH_TO_INPUT_FILE"
import json

import urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

with open(REQUEST_FILE) as json_file:
    data = json.load(json_file)
    response = psc_endpoint.predict(
        instances=data["instances"], endpoint_override=INTERNAL_IP_ADDRESS
    )
print(response)

Sostituisci PATH_TO_INPUT_FILE con un percorso a un file JSON contenente l'input della richiesta.

Secondo esempio

import json
import requests
import urllib3
import google.auth.transport.requests

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

REQUEST_FILE = "PATH_TO_INPUT_FILE"

# Programmatically get credentials and generate an access token
creds, project = google.auth.default()
auth_req = google.auth.transport.requests.Request()
creds.refresh(auth_req)
access_token = creds.token
# Note: the credential lives for 1 hour by default
# After expiration, it must be refreshed
# See https://cloud.google.com/docs/authentication/token-types#access-tokens
# for token lifetimes.

with open(REQUEST_FILE) as json_file:
    data = json.load(json_file)
    url = "https://INTERNAL_IP_ADDRESS/v1/projects/VERTEX_AI_PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict"
    headers = {
      "Content-Type": "application/json",
      "Authorization": f"Bearer {access_token}"  # Add access token to headers
    }
    payload = {
      "instances": data["instances"],
    }

response = requests.post(url, headers=headers, json=payload, verify=False)

print(response.json())

Terzo esempio

Di seguito è riportato un esempio di come inviare la richiesta predict alla zona DNS utilizzando Python:

REQUEST_FILE = "PATH_TO_INPUT_FILE"
import json

import urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

with open(REQUEST_FILE) as json_file:
    data = json.load(json_file)
    response = psc_endpoint.predict(
        instances=data["instances"], endpoint_override=DNS_NAME
    )
print(response)

Sostituisci DNS_NAME con il nome DNS specificato nel comando gcloud dns record-sets create.

Best practice

Quando viene implementato un nuovo endpoint, il collegamento del servizio potrebbe essere aggiornato. Controlla sempre lo stato del collegamento del servizio e dell'endpoint PSC prima di effettuare la chiamata di inferenza. Di seguito sono riportate le best practice per farlo:

  • Se un endpoint non ha deployment attivi, Gemini Enterprise Agent Platform potrebbe eliminare il collegamento del servizio e ricrearlo. Assicurati che l'endpoint PSC sia in uno stato connesso (ricreando la regola di forwarding) quando viene ricreato il collegamento al servizio.
  • Quando un endpoint ha un modello di cui è stato eseguito il deployment attivo, l'allegato di servizio non cambia. Per mantenere l'allegato di servizio, crea una suddivisione del traffico e migra gradualmente il traffico alla nuova versione del modello prima di annullare il deployment della versione precedente.
  • Gemini Enterprise Agent Platform consente fino a 1000 connessioni per collegamento del servizio.
  • Anche la regola di forwarding ha un limite di quota. Per i dettagli, consulta Quote e limiti di Cloud Load Balancing.

Limitazioni

Gli endpoint di Agent Platform con Private Service Connect sono soggetti alle seguenti limitazioni:

  • Il deployment dei modelli Gemini ottimizzati non è supportato.
  • L'uscita privata dall'endpoint non è supportata. Poiché le regole di forwarding di Private Service Connect sono unidirezionali, gli altri carichi di lavoro privatiCloud de Confiance non sono accessibili all'interno del tuo container.
  • Il valore projectAllowlist di un endpoint non può essere modificato.
  • Vertex Explainable AI non è supportato.
  • Prima di eliminare un endpoint, devi annullare il deployment del modello da quell'endpoint.
  • Se il deployment di tutti i modelli viene annullato per più di 10 minuti, l'allegato di servizio potrebbe essere eliminato. Controlla lo stato della connessione Private Service Connect; se è CLOSED, ricrea la regola di forwarding.
  • Dopo aver eliminato l'endpoint, non potrai riutilizzare il relativo nome per un massimo di 7 giorni.
  • Un progetto può avere fino a 10 valori projectAllowlist diversi nelle configurazioni di Private Service Connect.

Passaggi successivi