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
Nella console Google Cloud , in Vertex AI, vai alla pagina Previsione online.
Fai clic su Crea.
Fornisci un nome visualizzato per l'endpoint.
Seleziona
Privato.Seleziona
Private Service Connect.Fai clic su Seleziona ID progetto.
Seleziona i progetti da aggiungere alla lista consentita per l'endpoint.
Fai clic su Continua.
Scegli le specifiche del modello. Per ulteriori informazioni, consulta Eseguire il deployment di un modello in un endpoint.
Fai clic su Crea per creare l'endpoint e implementare il modello.
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" } } }
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 onlineREGION
: la regione in cui utilizzi Vertex AIVERTEX_AI_ENDPOINT_NAME
: il nome visualizzato dell'endpoint di inferenza onlineALLOWED_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 facoltativoinference_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
.
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
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" } } }
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 onlineREGION
: la regione in cui utilizzi Vertex AIVERTEX_AI_ENDPOINT_NAME
: il nome visualizzato dell'endpoint di inferenza onlineNETWORK_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.
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 onlineVERTEX_AI_PROJECT_ID
: l'ID del progetto Google Cloud in cui hai creato l'endpoint di inferenza onlineREGION
: la regione per questa richiesta
L'output è simile al seguente:
serviceAttachment: projects/ac74a9f84c2e5f2a1-tp/regions/us-central1/serviceAttachments/gkedpm-c6e6a854a634dc99472bb802f503c1
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.
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 internoVPC_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, utilizzaVERTEX_AI_PROJECT_ID
per questo parametro.REGION
: la regione Google Cloud in cui deve essere creata la regola di forwarding di Private Service ConnectSUBNETWORK
: il nome della subnet VPC che contiene l'indirizzo IPINTERNAL_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.
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
.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 forwardingVPC_NETWORK_NAME
: il nome della rete VPC in cui deve essere creato l'endpointSERVICE_ATTACHMENT_URI
: il collegamento del servizio che hai annotato in precedenza
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 campopscConnectionStatus
.
(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 progettoREGION
: 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.
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
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 progettoVERTEX_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.