Modello di deployment del gateway API
Informazioni sui componenti dell'API
Un'API definita in API Gateway è composta da due componenti principali:
Configurazione API: la configurazione API creata quando carichi una definizione API. Creando la definizione dell'API come specifica OpenAPI. Se la tua API gestisce servizi gRPC su Cloud Run, puoi definirla con una definizione e una configurazione del servizio gRPC.
Ogni volta che carichi una definizione di API, API Gateway crea una nuova configurazione API. Ciò significa che 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 modificata dell'API, creerai una nuova configurazione API.
Gateway: un proxy scalabile ad alte prestazioni basato su Envoy che ospita la configurazione dell'API di cui è stato eseguito il deployment. Il deployment di una configurazione API in un gateway crea l'URL rivolto all'esterno che i client API utilizzano per accedere all'API.
Nell'immagine seguente vengono mostrati questi componenti:
Informazioni sul deployment di una configurazione API in un gateway
Esegui il deployment di una configurazione API in un gateway per rendere l'API accessibile ai client API:
Un gateway:
Viene eseguito il deployment in una regione Google Cloud specifica. Una regione è una regione geografica specifica in Google Cloud in cui puoi eseguire il deployment delle risorse.
Deve ospitare una configurazione API. Non puoi creare un gateway vuoto, ovvero uno 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 nello stesso gateway.
Poi gestisci ogni gateway di cui è stato eseguito il deployment separatamente. Per ogni gateway, puoi:
- Avvia/interrompi/elimina il gateway
- Visualizzazione dei log e delle metriche
- Visualizza informazioni di traccia
Scelta di una regione Google Cloud
Ogni gateway viene implementato in una regione geografica specifica su Google Cloud. API Gateway supporta le seguenti regioni Google Cloud per il deployment:
asia-northeast1
australia-southeast1
europe-west1
europe-west2
us-east1
us-east4
us-central1
us-west2
us-west3
us-west4
Definizione dell'endpoint della configurazione API di cui è stato eseguito il deployment
Quando esegui il deployment di una configurazione API in un gateway, API Gateway crea un URL unico 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 regione Google Cloud in cui è stato eseguito il deployment del gateway.
Ad esempio:
my-gateway-a12bcd345e67f89g0h.uc.gateway.dev
Configurazione di 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 ruoli concessi all'account di servizio utilizzato per creare la configurazione API. Di conseguenza, in genere viene definito un account di servizio separato per la creazione delle configurazioni dell'API. Questo account di servizio viene quindi assegnato solo ai 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, all'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, l'account di servizio deve essere almeno assegnato al ruolo di Invoker di Cloud Functions. Per un backend Cloud Run, il ruolo è Invoker di Cloud Run. Limitando le autorizzazioni associate alla configurazione API, puoi proteggere meglio i tuoi sistemi di backend.
Per ulteriori informazioni, consulta Configurazione dell'ambiente di sviluppo.
Informazioni sulla scalabilità fino a zero
API Gateway è un servizio con scalabilità fino a zero. Ciò significa che, in assenza di traffico, tutte le istanze di gateway vengono eliminate. Quando il traffico aumenta, vengono create nuove istanze on demand per gestire il carico. La scalabilità fino a zero è controllata automaticamente da Google Cloud; non è necessario configurarla o gestirla.
Utilizzo di 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 ciascun gateway.
Devi creare un bilanciatore del carico quando esegui il deployment della stessa API sui gateway che si trovano in regioni diverse. Il bilanciatore del carico indirizza quindi le richieste API alle diverse regioni. Per saperne di più, consulta la sezione Eseguire il deployment di un'API in più regioni di seguito.
Configurazione dell'accesso SSL a un'API
API Gateway supporta l'accesso HTTPS
a un'API di cui è stato eseguito il deployment in un gateway. Poiché il deployment delle API è stato eseguito nel dominio gateway.dev
,
Google crea e gestisce il certificato SSL sul bilanciatore del carico integrato con il gateway.
Non è necessario creare o caricare il proprio certificato.
Configurazione di 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 destinati ad API Gateway se utilizzati in combinazione con il bilanciamento del carico HTTP(S) per API Gateway(ANTEPRIMA). Per personalizzare il nome di dominio, crea un bilanciatore del carico per utilizzare il tuo nome di dominio personalizzato, quindi indirizza le richieste al dominio gateway.dev
dell'API di cui hai eseguito il deployment. Per ulteriori informazioni, consulta Utilizzare un dominio personalizzato con API Gateway.
Deployment di più configurazioni API nella stessa API
Puoi eseguire il deployment di una sola configurazione API in 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 un'unica API.
Eseguire il deployment delle configurazioni API in più gateway nella stessa regione
Quando creano un'API, gli sviluppatori di API spesso creano ambienti di sviluppo, gestione temporanea e produzione in cui:
- 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 per il rilascio in produzione.
- L'ambiente di produzione è il luogo in cui i client API esterni sono autorizzati ad accedere all'API.
Per supportare questo tipo di ambiente di sviluppo, devi definire più configurazioni API. Ad esempio, potresti avere diverse configurazioni API attualmente in fase di sviluppo, una configurazione API attualmente in fase di test in fase di gestione temporanea e una configurazione API di cui è stato eseguito il deployment in produzione.
API Gateway ti consente di creare più configurazioni API all'interno di un'unica API e di eseguire il deployment di ciascuna configurazione API in un gateway diverso:
In questo esempio sono presenti tre diverse configurazioni API: dev, stage e prod. Devi quindi eseguire il deployment di ogni configurazione API su un gateway diverso, dove ciascun gateway definisce il proprio URL univoco.
Deployment di una configurazione API in più regioni
Spesso esegui il deployment di un'API in più regioni Google Cloud. Il deployment in più regioni offre diversi vantaggi, tra cui una minore latenza delle richieste (perché le richieste sono 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 cui è stato eseguito il deployment, perché deve fare riferimento al servizio di backend in quella regione.
Nell'immagine seguente, il deployment delle API 1 e 2 viene eseguito in un'unica regione, mentre il deployment dell'API 3 viene eseguito in più regioni:
In questo esempio, ogni configurazione API di cui è stato eseguito il deployment in 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 configurerai un bilanciatore del carico utilizzando il bilanciamento del carico HTTP(S) per API GatewayANTEPRIMA per gestire le richieste all'API e inoltrare alla regione appropriata. Per ulteriori informazioni, consulta Creare implementazioni multiregione per API Gateway.
Aggiornamento di 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 tempo di inattività, il che significa L'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 di nuovo il deployment della configurazione API aggiornata in ogni regione.