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

Private Service Connect ti consente di accedere alle inferenze online di Vertex AI in modo sicuro da 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 Vertex AI. La regola di forwarding si connette a un service attachment che espone il servizio Vertex AI alla tua rete VPC. Per ulteriori informazioni, consulta Informazioni sull'accesso ai servizi Vertex AI 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 Vertex AI 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 Vertex AI 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ù su ruoli e autorizzazioni di Vertex AI, consulta Controllo dell'controllo dell'accesso di Vertex AI con IAM e Autorizzazioni IAM di Vertex AI.

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 Vertex AI 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 Google Cloud , in Vertex AI, 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 ulteriori informazioni, consulta Eseguire il deployment di un modello in un endpoint.

  10. Fai clic su Crea per creare l'endpoint e implementare il modello.

  11. Prendi nota dell'ID endpoint nella risposta.

API

REST

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

  • VERTEX_AI_PROJECT_ID: l'ID del progetto Google Cloud in cui stai creando l'endpoint di previsione online.
  • REGION: la regione in cui utilizzi Vertex AI.
  • VERTEX_AI_ENDPOINT_NAME: il nome visualizzato per l'endpoint di previsione online.
  • ALLOWED_PROJECTS: un elenco separato da virgole di ID progetto Google Cloud , ciascuno racchiuso tra virgolette, ad esempio ["PROJECTID1", "PROJECTID2"]. Se un progetto non è incluso in questo elenco, non potrai inviare richieste di previsione all'endpoint Vertex AI. 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": {
        "seconds": INFERENCE_TIMEOUT_SECS
      }
    }
  }
}

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 Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Python.

Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

Sostituisci quanto segue:

  • VERTEX_AI_PROJECT_ID: l'ID del Google Cloud progetto in cui stai creando l'endpoint di inferenza online
  • REGION: la regione in cui utilizzi Vertex AI
  • VERTEX_AI_ENDPOINT_NAME: il nome visualizzato dell'endpoint di inferenza online
  • ALLOWED_PROJECTS: un elenco separato da virgole di ID progetto Google Cloud, ognuno racchiuso tra virgolette. Ad esempio ["PROJECTID1", "PROJECTID2"]. Se un progetto non è incluso in questo elenco, non potrai inviare richieste di inferenza all'endpoint Vertex AI. 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 facoltativo inference_timeout.
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 (anteprima)

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 di servizio. Questa policy è una configurazione una tantum per progetto e rete che consente a Vertex AI (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

  • Controlli di servizio VPC non sono supportati.
  • 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 forwarding distinti.

Crea una policy di connessione al servizio

Per creare la policy di connessione al servizio devi essere un amministratore di rete. Per consentire a Vertex AI di creare endpoint PSC nelle tue reti, è necessaria una policy di connessione al servizio. Senza un criterio valido, 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 Vertex AI.

    • VPC_PROJECT: l'ID progetto in cui si trova la tua 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 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, verifica che projectId sia presente nella lista consentita.

REST

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

  • REGION: la regione in cui utilizzi Vertex AI.
  • VERTEX_AI_PROJECT_ID: l'ID del progetto Google Cloud 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 Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Python.

Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

Sostituisci quanto segue:

  • VERTEX_AI_PROJECT_ID: l'ID del Google Cloud progetto in cui stai creando l'endpoint di inferenza online
  • REGION: la regione in cui utilizzi Vertex AI
  • VERTEX_AI_ENDPOINT_NAME: il nome visualizzato dell'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

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 al servizio rappresenta il servizio di inferenza online di Vertex AI esposto alla tua rete VPC. Esegui il comando gcloud ai endpoints describe per ottenere 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 Google Cloud 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 disporre dell'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 Google Cloud 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 Google Cloud 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 prenotare. 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 riservato, 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 al collegamento al 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 collegamento del servizio 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.

(Facoltativo) 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 che è stato 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 regola di forwarding.
    • Se l'operazione non va a buon fine, viene visualizzato un messaggio di errore.
  • Le configurazioni di 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 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 l'endpoint PSC manualmente.

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 è attivato, la richiesta deve essere inviata dalla stessa regione.
  • Sono aperte due porte: la 443 con TLS che utilizza il certificato autofirmato e la 80 senza TLS. Entrambe le porte supportano HTTP e gRPC. Tutto il traffico sarà sotto rete privata e non passerà attraverso la rete internet pubblica.
  • 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:

    https://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.

  • Connessioni sicure (porta 443): quando vengono stabilite connessioni sicure utilizzando la porta 443, il server utilizza un certificato autofirmato. Per procedere con la connessione, ti consigliamo uno dei seguenti approcci:

    • Opzione 1: bypass della convalida del certificato: configura il client in modo che ignori la convalida del certificato e stabilisca la connessione utilizzando l'indirizzo IP del server o un metodo di risoluzione DNS preferito.
    • Opzione 2: integrazione dell'archivio di attendibilità: ottieni il certificato autofirmato del server, aggiungilo all'archivio di attendibilità locale del sistema client e utilizza il nome DNS nel formato *.prediction.p.vertexai.goog per stabilire la connessione. Questo metodo garantisce una comunicazione sicura tramite la convalida del certificato.

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#at-lifetime

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())

(Facoltativo) 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ù, vedi 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 Vertex AI 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 Google Cloud . Per ulteriori informazioni, vedi Identificazione dei progetti.
    • INTERNAL_IP_ADDRESS: l'indirizzo IP interno dell'endpoint di inferenza online

    Ora puoi inviare le tue richieste di predict a:

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

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.

Limitazioni

Gli endpoint Vertex AI 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 privatiGoogle Cloud 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 non viene eseguito 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