Questa pagina si applica ad Apigee e Apigee hybrid.
Visualizza
Apigee Edge documentazione.
Questa pagina mostra come definire un proxy API come modello di funzionalità Apigee in YAML ed eseguirne il deployment con Google Cloud CLI. Per prima cosa crei un proxy semplice, poi un esempio più completo che si trova davanti a un modello Gemini.
Per informazioni di base, consulta Configurare un proxy con YAML. Per lo schema completo, consulta Riferimento per la configurazione YAML del proxy API.
Prima di iniziare
- Abilita l'API Vertex AI nel tuo progetto Google Cloud in modo che il proxy possa comunicare con i modelli Gemini.
gcloud services enable aiplatform.googleapis.com
- Installa e inizializza il Google Cloud CLI.
- Per accedere ai comandi utilizzati in questo tutorial, installa il componente gcloud beta:
gcloud components install beta
- Disponi di un'organizzazione Apigee e di almeno un ambiente. Prendi nota dei nomi dell'organizzazione e dell'ambiente; gli esempi utilizzano ORG e ENV come segnaposto. Il gateway AI nella Parte 2 richiede inoltre un ambiente Intermedio o Completo (non un ambiente Base); vedi Tipi di ambiente Apigee.
- Assicurati di disporre delle autorizzazioni necessarie:
- Per importare (creare) un proxy API: il ruolo Amministratore API
(
roles/apigee.apiAdmin) o un ruolo equivalente che concedeapigee.proxies.create. - Per eseguire il deployment di un proxy API: Amministratore ambiente
(
roles/apigee.environmentAdmin) nell'ambiente di destinazione, e Lettore API (roles/apigee.apiReaderV2) a livello di progetto. - Per creare il prodotto API, lo sviluppatore e l'app che generano la chiave API
in Parte 2, Passaggio 6: Amministratore API
(
roles/apigee.apiAdmin) e Amministratore sviluppatore (roles/apigee.developerAdmin). Per l'elenco completo dei ruoli, vedi Ruoli Apigee.
- Per importare (creare) un proxy API: il ruolo Amministratore API
(
Parte 1: crea un proxy API semplice
In questa sezione crei un proxy che inoltra le richieste al servizio di destinazione simulato di Apigee e applica un limite di frequenza.
Passaggio 1: crea il modello
Un modello è il file di cui esegui il deployment. Definisce il percorso di base, le route e la destinazione di backend del proxy ed elenca le funzionalità da includere.
Crea una directory per il proxy, quindi crea un file denominato hello-proxy.yaml:
gateway: apigee schemaVersion: 1.0.0 name: hello-proxy type: template description: A simple proxy to the Apigee mock target, protected by a rate limit. features: - spike-arrest.yaml endpoints: - name: default basePath: /hello routes: - name: default target: default targets: - name: default url: https://mocktarget.apigee.net
Questo modello definisce:
- Un endpoint con il percorso di base
/hello. I client chiamano il proxy in questo percorso. - Una route che invia le richieste alla destinazione denominata
default. - Una destinazione che rimanda all'URL di backend.
- Una funzionalità,
spike-arrest.yaml, che creerai nel passaggio successivo.
Passaggio 2: crea la funzionalità
Una funzionalità è un'unità di configurazione riutilizzabile che contiene le policy. Un modello non può contenere direttamente le policy, quindi la policy di limitazione della frequenza si trova in una funzionalità.
Nella stessa directory del modello, crea un file denominato spike-arrest.yaml:
gateway: apigee schemaVersion: 1.0.0 name: spike-arrest displayName: Spike Arrest type: feature description: Protects the backend by smoothing traffic spikes. categories: - traffic parameters: - name: RATE displayName: RATE description: Maximum request rate, for example 30ps (per second) or 100pm (per minute). default: 30ps examples: - 30ps - 100pm defaultEndpoint: name: default flows: - name: PreFlow mode: Request steps: - name: SA-SpikeArrest policies: - name: SA-SpikeArrest type: SpikeArrest content: SpikeArrest: metadata: name: SA-SpikeArrest enabled: "true" continueOnError: "false" DisplayName: SA-SpikeArrest Rate: "{RATE}"
Questa funzionalità:
- Definisce una policy SpikeArrest che limita il tasso di richieste.
- Utilizza
defaultEndpoint.flowsper aggiungere la policy al PreFlow della richiesta, in modo che venga eseguita su ogni richiesta. - Dichiara un parametro,
RATE, il cui valore predefinito (30ps) viene sostituito da{RATE}quando il proxy viene compilato.
Passaggio 3: importa il proxy
Importa il modello per creare una revisione del proxy API. Esegui questo comando dalla directory che contiene i file:
gcloud beta apigee apis import hello-proxy \
--from-template=hello-proxy.yaml \
--organization=ORGL'interfaccia a riga di comando compila il modello e la relativa funzionalità in un pacchetto del proxy API, lo carica e stampa la nuova revisione del proxy. L'importazione crea una revisione, ma non ne esegue il deployment.
Passaggio 4: esegui il deployment del proxy
Esegui il deployment della revisione in un ambiente:
gcloud apigee apis deploy \
--api=hello-proxy \
--environment=ENV \
--organization=ORGPer impostazione predefinita, questo comando esegue il deployment dell'ultima revisione. Per eseguire il deployment di una revisione specifica, passa il relativo numero come primo argomento, ad esempio
gcloud apigee apis deploy 1 --api=hello-proxy --environment=ENV.
Se è già stato eseguito il deployment di un proxy diverso nello stesso percorso di base, aggiungi --override per sostituirlo senza tempi di inattività.
Passaggio 5: chiama il proxy
Per chiamare il proxy di cui è stato eseguito il deployment sulla rete, l'ambiente deve essere collegato a un gruppo di ambienti con un nome host instradabile. Se hai appena creato l'organizzazione, verifica che sia configurata prima di chiamare il proxy; vedi Informazioni sugli ambienti e sui gruppi di ambienti.
Trova il nome host di un gruppo di ambienti che contiene il tuo ambiente:
- Nella Google Cloud console, vai ad Apigee > Gestione > Ambienti.
- Seleziona la scheda Gruppi di ambienti.
- Trova il gruppo di ambienti che contiene il tuo ambiente e copia un valore dalla colonna Nomi host.
Chiama il proxy in quel nome host, utilizzando il percorso di base del modello:
curl https://HOSTNAME/hello
Sostituisci HOSTNAME con il nome host che hai copiato. Una risposta positiva proviene dal servizio di destinazione simulato.
Parte 2: crea un gateway AI per Gemini
Questa sezione crea un proxy più completo: un gateway AI che inoltra le richieste a un modello Gemini su Vertex AI, applica un limite di frequenza e richiede una chiave API. Utilizza un modello, tre funzionalità e un account di servizio.
A differenza del proxy semplice nella Parte 1, questo proxy
chiama un servizio Google Cloud (Vertex AI). La funzionalità gemini-target utilizza auth: GoogleAccessToken, quindi Apigee allega un token OAuth di Google a ogni richiesta a Vertex AI. Questo token viene emesso per un
service account che crei e fornisci quando esegui il deployment del
proxy, quindi questa parte aggiunge un passaggio per creare il account di servizio
(Passaggio 3).
Passaggio 1: crea il modello
Crea un file denominato ai-gateway.yaml:
gateway: apigee schemaVersion: 1.0.0 name: ai-gateway type: template description: AI gateway that fronts a Gemini model with throttling and API key enforcement. features: - spike-arrest.yaml - verify-api-key.yaml - gemini-target.yaml endpoints: - name: gemini basePath: /v1/gemini routes: - name: default target: gemini
Passaggio 2: crea le funzionalità
Nella stessa directory, crea i tre file di funzionalità.
Riutilizza la funzionalità spike-arrest.yaml da
Parte 1.
Crea verify-api-key.yaml per richiedere una chiave API nell'intestazione x-api-key:
gateway: apigee schemaVersion: 1.0.0 name: verify-api-key displayName: Verify API Key type: feature description: Requires a valid API key in the x-api-key request header. categories: - security defaultEndpoint: name: default flows: - name: PreFlow mode: Request steps: - name: VA-VerifyAPIKey policies: - name: VA-VerifyAPIKey type: VerifyAPIKey content: VerifyAPIKey: metadata: name: VA-VerifyAPIKey enabled: "true" continueOnError: "false" DisplayName: VA-VerifyAPIKey APIKey: metadata: ref: request.header.x-api-key
Crea gemini-target.yaml per eseguire il routing a un modello Gemini, autenticato con un token di accesso Google:
gateway: apigee schemaVersion: 1.0.0 name: gemini-target displayName: Gemini Target type: feature description: Routes requests to a Gemini model on Vertex AI, authenticated with a Google access token. categories: - llm targets: - name: gemini url: https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/gemini-2.5-flash:generateContent auth: GoogleAccessToken scopes: - https://www.googleapis.com/auth/cloud-platform
Sostituisci PROJECT_ID con l'ID progetto Google Cloud e REGION con la regione Vertex AI che stai utilizzando (ad esempio us-central1). Questa funzionalità
utilizza auth: GoogleAccessToken in modo che Apigee alleghi un
token di accesso Google a ogni richiesta a Vertex AI.
I modelli non sono disponibili in tutte le località e l'URL dipende dalla località utilizzata. L'URL precedente è il formato regionale, che funziona per un modello pubblicato da una regione specifica, ad esempio gemini-2.5-flash in us-central1. Altri modelli vengono pubblicati solo dall'endpoint globale, che utilizza un host diverso e locations/global:
url: https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/MODEL:generateContent
Per trovare le località supportate da un modello, vedi Località di AI generativa su Vertex AI.
Passaggio 3: crea un account di servizio per il proxy
Poiché la funzionalità gemini-target utilizza auth: GoogleAccessToken, il proxy di cui è stato eseguito il deployment chiama Vertex AI come service account. Crea il account di servizio, concedigli l'accesso a Vertex AI e consenti all'agente di servizio Apigee di utilizzarlo. Fornisci questo service
account quando esegui il deployment del proxy nel Passaggio 5. Per maggiori
dettagli, vedi
Utilizzare l'autenticazione
Google.
- Crea un account di servizio gestito dall'utente nello stesso Google Cloud progetto dell'
organizzazione Apigee. (Il account di servizio predefinito Compute Engine
non è accettato.) Per altri modi per crearne uno, vedi
Creare
e gestire i service account.
gcloud iam service-accounts create SA_NAME \ --project=PROJECT_ID \ --display-name="Apigee AI gateway"Viene creato il account di servizio
SA_NAME@PROJECT_ID.iam.gserviceaccount.com. - Concedi al account di servizio l'accesso al backend che chiama. Per una destinazione Vertex AI, concedi il ruolo Utente Vertex AI
(
roles/aiplatform.user):gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/aiplatform.user"Se la policy IAM del progetto contiene già associazioni di ruoli condizionali, aggiungi
--condition=Nonea questo comando. - Consenti all'agente di servizio Apigee di generare token per il service account mediante
la concessione del ruolo Creatore token account di servizio
(
roles/iam.serviceAccountTokenCreator) sul service account:gcloud iam service-accounts add-iam-policy-binding \ SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountTokenCreator"Per trovare PROJECT_NUMBER, esegui
gcloud projects describe PROJECT_ID --format='value(projectNumber)'.
Passaggio 4: importa il proxy
Importa il modello per creare una revisione del proxy API:
gcloud beta apigee apis import ai-gateway \
--from-template=ai-gateway.yaml \
--organization=ORGPrendi nota del numero di revisione nell'output comando; ti servirà in
Passaggio 5. Per stampare solo il numero di revisione, aggiungi --format="value(revision)" al comando di importazione.
Passaggio 5: esegui il deployment del proxy con il account di servizio
Il deployment del gateway AI differisce dal proxy semplice in Parte 1 in due modi:
- Devi fornire il service account che hai creato in
Passaggio 3. Se esegui il deployment senza un service account, il
deployment non riesce e viene visualizzato l'erro0/}.
MISSING_SERVICE_ACCOUNT - Devi eseguire il deployment in un ambiente intermedio o completo.
Questo proxy utilizza una policy estensibile, che un ambiente Base non
supporta; il deployment in un ambiente di questo tipo non riesce e viene visualizzato l'errore
Extensible proxy can not be deployed to a base environment
. Vedi Tipi di ambiente Apigee.
Interfaccia utente di Apigee: esegui il deployment del proxy e, quando ti viene chiesto di inserire un account di servizio,
inserisci
SA_NAME@PROJECT_ID.iam.gserviceaccount.com.
Per i passaggi, vedi
Eseguire il deployment di un proxy API.
API Deployment: chiama l'
API Deployments, passando il account di servizio come serviceAccount parametro
di query. Sostituisci REVISION con il numero di revisione del
Passaggio 4:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -X POST \ "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/ai-gateway/revisions/REVISION/deployments?serviceAccount=SA_NAME@PROJECT_ID.iam.gserviceaccount.com"
La richiesta di deployment viene restituita immediatamente; il deployment è asincrono. Esegui il polling dello stato di deployment della revisione, che indica PROGRESSING finché non diventa READY:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/ai-gateway/revisions/REVISION/deployments"
Quando il proxy viene compilato, le funzionalità spike-arrest e verify-api-key aggiungono le relative policy al PreFlow della richiesta (prima limitazione di frequenza, poi il controllo della chiave API) e la funzionalità gemini-target aggiunge il backend Vertex AI. Al termine del deployment, il proxy esegue l'autenticazione a Vertex AI come account di servizio.
Passaggio 6: ottieni una chiave API
La funzionalità verify-api-key rifiuta qualsiasi richiesta che non contenga una chiave API valida, quindi devi avere una chiave prima di poter chiamare il proxy. Una chiave API è una credenziale di un' app per sviluppatori associata a un prodotto API contenente questo proxy. Completa le seguenti attività, che
sono descritte in
Panoramica
della pubblicazione:
- Crea
un prodotto API che includa il proxy
ai-gatewaye l'ambiente in cui hai eseguito il deployment. - Registra uno sviluppatore di app.
- Registra un'app per sviluppatori associata a questo prodotto API.
La registrazione dell'app genera la chiave. Per recuperarla, vedi Visualizzare una chiave API e un secret.
Passaggio 7: chiama il proxy
Trova il nome host del gruppo di ambienti come descritto in
Passaggio 5 della Parte 1, quindi chiama il proxy nel percorso di base
/v1/gemini. Passa la chiave API nell'intestazione x-api-key,
e invia un corpo della richiesta
GeminigenerateContent:
curl -X POST https://HOSTNAME/v1/gemini \
-H "x-api-key: API_KEY" \
-H "Content-Type: application/json" \
-d '{"contents":[{"role":"user","parts":[{"text":"Say hello in one sentence."}]}]}'Sostituisci HOSTNAME con il nome host del gruppo di ambienti e
API_KEY con la chiave del Passaggio 6. Una risposta positiva è l'output JSON del modello. Se ometti la chiave, viene restituito un errore di autorizzazione dalla policy VerifyAPIKey, che conferma che la funzionalità verify-api-key è attiva. Per altri modi per
passare una chiave, vedi
Inviare
una richiesta con una chiave API valida.
Passaggi successivi
- Riferimento per la configurazione YAML del proxy API
- Configurazione di un proxy con YAML
- Eseguire il deployment dei proxy API
- Panoramica della pubblicazione