Modello di deployment del gateway API
Informazioni sui componenti API
Un'API definita su API Gateway è costituita da due componenti principali:
Configurazione API: la configurazione API creata quando carichi una definizione API. Crea la definizione dell'API come specifica OpenAPI. Se la tua API gestisce servizi gRPC su Cloud Run, puoi definirla con una configurazione e una definizione del servizio gRPC.
Ogni volta che carichi una definizione API, API Gateway crea una nuova configurazione API. ovvero puoi creare una configurazione API, ma non puoi modificarla in un secondo momento. Se in un secondo momento modifichi la definizione dell'API nella specifica OpenAPI o nella definizione del servizio gRPC e poi carichi la definizione dell'API modificata, crei una nuova configurazione API.
Gateway: un proxy scalabile, ad alte prestazioni e basato su Envoy che ospita la configurazione API di cui è stato eseguito il deployment. Il deployment di una configurazione API su un gateway crea l'URL esterno che i client API utilizzano per accedere all'API.
La seguente immagine mostra questi componenti:
Informazioni sul deployment della configurazione API in un gateway
Esegui il deployment di una configurazione API su un gateway per rendere la tua API accessibile ai client API:
Un gateway:
Viene eseguito il deployment in una Google Cloud regione specifica. Una regione è una regione geografica specifica su Google Cloud in cui puoi eseguire il deployment delle risorse.
Deve ospitare una configurazione API. Non puoi creare un gateway vuoto, ovvero senza una configurazione API. Tuttavia, dopo aver creato un gateway, puoi aggiornarlo per sostituire una configurazione API con un'altra.
Può ospitare una sola configurazione API. Non puoi eseguire il deployment di più configurazioni API sullo stesso gateway.
Dopodiché, gestisci separatamente ogni gateway di cui è stato eseguito il deployment. Per ogni gateway, puoi:
- Avviare/interrompere/eliminare il gateway
- Visualizzazione dei log e delle metriche
- Visualizzare le informazioni di traccia
Scegli una Google Cloud regione
Ogni gateway viene implementato in una regione geografica specifica su Google Cloud. API Gateway supporta le seguenti Google Cloud regioni per il deployment:
asia-northeast1australia-southeast1europe-west1europe-west2us-east1us-east4us-central1us-west2us-west3us-west4
Definisci l'endpoint della configurazione API di cui è stato eseguito il deployment
Quando esegui il deployment di una configurazione API su un gateway, API Gateway crea un URL univoco
per il gateway nel dominio gateway.dev. I client API utilizzano quindi un URL nel seguente formato per accedere alla configurazione API di cui è stato eseguito il deployment:
https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev
dove GATEWAY_ID è il nome del gateway, HASH è il codice hash univoco generato durante il deployment dell'API e REGION_CODE è il codice della posizione cloud in cui hai eseguito il deployment del gateway.
Ad esempio:
my-gateway-a12bcd345e67f89g0h.uc.gateway.dev
Configura un account di servizio per il deployment delle configurazioni API
Una configurazione API di cui è stato eseguito il deployment su un gateway viene eseguita con le autorizzazioni associate ai ruoli concessi al service account utilizzato per creare la configurazione API. Pertanto, in genere definisci un account di servizio separato per la creazione delle configurazioni API. A questo account di servizio vengono assegnati solo i ruoli necessari per accedere al servizio di backend. In questo modo, puoi limitare le autorizzazioni associate alla configurazione API.
Oltre ai ruoli necessari per accedere al servizio di backend, al account di servizio devono essere concesse le seguenti autorizzazioni:
L'autorizzazione
iam.serviceAccounts.actAs. Questa autorizzazione è inclusa nel ruolo Utente account di servizio.Le autorizzazioni necessarie per accedere al servizio di backend. Ad esempio, se il backend è implementato come Cloud Function, al account di servizio deve essere assegnato almeno il ruolo Invoker di Cloud Functions. Per un backend Cloud Run, il ruolo è Cloud Run Invoker. Limitando le autorizzazioni associate alla configurazione API, puoi proteggere meglio i tuoi sistemi di backend.
Per saperne di più, consulta Configurare l'ambiente di sviluppo.
Informazioni sulla scalabilità fino a zero
API Gateway è un servizio scale-to-zero. Ciò significa che quando non c'è traffico, vengono eliminate tutte le istanze gateway. Quando il traffico aumenta, vengono create nuove istanze on demand per gestire il carico. Lo scale-to-zero è controllato automaticamente da Google Cloud; non è necessario configurarlo o gestirlo.
Utilizza un bilanciatore del carico
Ogni gateway di cui è stato eseguito il deployment in una regione contiene un bilanciatore del carico integrato per gestire le richieste dei client all'API di cui è stato eseguito il deployment nel gateway. Non è necessario creare un bilanciatore del carico separato per ogni gateway.
Devi creare un bilanciatore del carico quando esegui il deployment della stessa API su gateway situati in regioni diverse. Il bilanciatore del carico indirizza quindi le richieste API alle diverse regioni. Per saperne di più, consulta Eseguire il deployment di un'API in più regioni.
Configurare l'accesso SSL a un'API
API Gateway supporta l'accesso HTTPS
a un'API di cui è stato eseguito il deployment in un gateway. Poiché le tue API vengono implementate nel dominio gateway.dev,
Google crea e gestisce il certificato SSL sul bilanciatore del carico integrato con il gateway.
Non devi creare o caricare il tuo certificato.
Configurare un server dei nomi di dominio
Per impostazione predefinita, i client API inviano richieste a un dominio gateway.dev per accedere a un'API di cui è stato eseguito il deployment, come mostrato sopra.
I nomi di dominio personalizzati sono per API Gateway se utilizzati insieme al bilanciamento del carico HTTP(S) per API GatewayANTEPRIMA. Per personalizzare il nome di dominio, crea un bilanciatore del carico da utilizzare con il tuo nome di dominio personalizzato e poi indirizza le richieste al dominio gateway.dev
della tua API di cui è stato eseguito il deployment. Per saperne di più, consulta Utilizzare un dominio personalizzato con API Gateway.
Esegui il deployment di più configurazioni API nella stessa API
Puoi eseguire il deployment di una sola configurazione API su un gateway. Tuttavia, puoi eseguire il deployment di più configurazioni API su più gateway all'interno della stessa API.
Questa sezione descrive due scenari in cui potresti eseguire il deployment di più configurazioni API su più gateway all'interno di una singola API.
Esegui il deployment delle configurazioni API su più gateway nella stessa regione
Quando creano un'API, gli sviluppatori di API spesso creano ambienti di sviluppo, staging e produzione, dove:
- L'ambiente di sviluppo viene utilizzato dagli sviluppatori per creare l'API.
- L'ambiente di gestione temporanea viene utilizzato per testare l'API in preparazione di un rilascio in produzione.
- L'ambiente di produzione è quello in cui i client API esterni possono accedere all'API.
Per supportare questo tipo di ambiente di sviluppo, definisci più configurazioni API. Ad esempio, potresti avere diverse configurazioni API in fase di sviluppo, una configurazione API in fase di test in staging e una configurazione API di cui è stato eseguito il deployment in produzione API Gateway ti consente di creare più configurazioni API all'interno di una singola API e poi di eseguire il deployment di ogni configurazione API in un gateway diverso:
In questo esempio, hai tre diverse configurazioni API: dev, stage e prod. Poi esegui il deployment di ogni configurazione API su un gateway diverso, dove ogni gateway definisce il proprio URL endpoint univoco.
Esegui il deployment di una configurazione API in più regioni
Spesso esegui il deployment di un'API in più Google Cloud regioni. Il deployment in più regioni offre diversi vantaggi, tra cui una latenza delle richieste ridotta perché le richieste vengono indirizzate a un'API in esecuzione in una regione geograficamente vicina al client e una maggiore affidabilità perché un errore in una regione non influisce sulle API in esecuzione in altre regioni.
Per eseguire il deployment di un'API in più regioni, esegui il deployment di una configurazione API in un gateway in ogni regione. Ogni configurazione API è specifica per la regione di deployment perché deve fare riferimento al servizio di backend in quella regione.
Nella seguente immagine, le API 1 e 2 vengono implementate in una singola regione, mentre l'API 3 viene implementata in più regioni:
In questo esempio, ogni configurazione API di cui è stato eseguito il deployment su un gateway per l'API 3 ha un endpoint URL univoco, nel formato:
https://my-gateway1-a12bcd345e67f89g0h.uc.gateway.dev https://my-gateway2-b12cde345f67g89h0i.en.gateway.dev https://my-gateway3-c12bde345g67h89i0j.uw.gateway.dev
Quindi, configura un bilanciatore del carico utilizzando il bilanciamento del carico HTTP(S) per API GatewayANTEPRIMA per gestire le richieste all'API e inoltrare la richiesta alla regione appropriata. Per saperne di più, consulta Crea deployment multiregionali per API Gateway.
Aggiornare un'API
Puoi aggiornare un'API di cui è stato eseguito il deployment modificando la definizione dell'API nella specifica OpenAPI e poi caricando la specifica. Il caricamento di una nuova specifica crea una nuova configurazione API.
API Gateway supporta un modello di aggiornamento senza tempi di inattività, il che significa che la tua API continua a gestire le richieste durante il deployment della configurazione API aggiornata. Tuttavia, durante il deployment della nuova configurazione API, alcune richieste potrebbero essere ancora gestite dalla versione precedente della configurazione API.
Se hai eseguito il deployment della configurazione API in più regioni e gateway, devi eseguire nuovamente il deployment della configurazione API aggiornata in ogni regione separatamente.