Modello di deployment del gateway API

Informazioni sui componenti dell'API

Un'API definita in API Gateway è composta da due componenti principali:

  1. Configurazione API: la configurazione API creata quando carichi una definizione API. La definizione dell'API deve essere creata come specifica OpenAPI. Se la tua API gestisce i servizi gRPC su Cloud Run, puoi definire l'API 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.

  2. Gateway: un proxy scalabile, ad alte prestazioni e 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:

La definizione dell'API nel riquadro API Gateway mostra tre componenti di configurazione API e tre componenti gateway.

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:

In tre API di esempio, viene eseguito il deployment di una configurazione API in un gateway, in modo che le API siano accessibili ai client API.

Un gateway:

  • Viene eseguito il deployment in una regione Google Cloud specifica. Una regione rappresenta una regione specifica su 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.

Dovrai quindi gestire separatamente ogni gateway di cui hai eseguito il deployment. 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

Il deployment di ogni gateway viene eseguito in una specifica regione 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 univoco per il gateway nel dominio gateway.dev. I client API utilizzano quindi un URL nel formato seguente 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 al momento del deployment dell'API e REGION_CODE è il codice della regione Google Cloud in cui hai 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 ai ruoli concessi all'account di servizio utilizzato per creare la configurazione API. Di conseguenza, in genere definisci un account di servizio separato per la creazione delle configurazioni 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 del 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 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 su 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 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 il cui deployment è stato eseguito in un gateway. Poiché viene eseguito il deployment delle API nel dominio gateway.dev, Google crea e gestisce il certificato SSL sul bilanciatore del carico integrato con il gateway. Non devi creare o caricare un certificato personale.

Configurazione di un server dei nomi di dominio

Per impostazione predefinita, i client API effettuano 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 si riferiscono ad 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 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, vedi 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 una singola API.

Deployment di configurazioni API su 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 possono 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 una singola API e quindi di eseguire il deployment di ogni configurazione API su un gateway diverso:

Nell'API 1, viene eseguito il deployment di tre configurazioni API denominate API Config Dev, API Config Stage e API Config Prod in tre rispettivi gateway.

In questo esempio, sono presenti tre diverse configurazioni API: dev, stage e prod. Poi esegui il deployment di ogni configurazione API su un gateway diverso, dove ciascun gateway definisce il proprio URL di endpoint 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, devi eseguire il deployment di una configurazione API su 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:

Il deployment dell'API 1 e dell'API 2 nella regione 1, mentre quello dell'API 3 viene eseguito nelle regioni 1, 2 e 3 utilizzando un bilanciatore del carico.

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 inoltrarle alla regione appropriata. Per saperne di più, consulta Creazione di deployment per più regioni 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, quindi 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 che l'API continua a gestire le richieste durante il deployment della configurazione API aggiornata. Tuttavia, esiste un periodo di tempo durante il quale viene eseguito il deployment della nuova configurazione API, quando 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 rieseguire il deployment della configurazione API aggiornata in ogni regione separatamente.

Passaggi successivi