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 dell'API creata quando carichi una definizione dell'API. Creerai 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. In altre parole, 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.

  2. Gateway: un proxy scalabile ad alte prestazioni basato su Envoy che ospita la configurazione API di cui è stato eseguito il deployment. Il deployment di una configurazione API in un gateway crea l'URL esterno utilizzato dai client API per accedere all'API.

La seguente immagine mostra questi componenti:

La definizione dell'API nel riquadro API Gateway mostra tre componenti di configurazione API e tre componenti di 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, una configurazione API viene dispiattata in un gateway, rendendo le API accessibili ai client API.

Un gateway:

  • È dipiegato in una regione Google Cloud 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 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 le informazioni sulla traccia

Scegliere 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 ai 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 dell'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, l'account di servizio deve essere almeno assegnato al ruolo Invoker di Cloud Functions. Per un backend Cloud Run, il ruolo è Invoker di Cloud Run. Se limiti le autorizzazioni associate alla configurazione dell'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 scalabile 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 su richiesta 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 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 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é le API vengono implementate 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 e poi indirizza le richieste al dominio gateway.dev della tua API di cui è stato eseguito il deployment. Per ulteriori informazioni, vedi Utilizzare un dominio personalizzato con API Gateway.

Eseguire il 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 spesso creano ambienti di sviluppo, di staging e di 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 vista di un 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 staging e una configurazione API attualmente di cui è stato eseguito il deployment in produzione.

API Gateway ti consente di creare più configurazioni API all'interno di un'unica API e poi di eseguire il deployment di ogni configurazione API in un gateway diverso:

Nell'API 1, tre configurazioni API denominate API Config Dev, API Config Stage e API Config Prod vengono dipiattate in tre rispettivi gateway.

In questo esempio, hai tre diverse configurazioni API: dev, stage e prod. Poi esegui il deployment di ogni configurazione API in un gateway diverso, dove ogni gateway definisce il proprio URL endpoint univoco.

Eseguire il 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 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 implementazione perché deve fare riferimento al servizio di backend in quella regione.

Nell'immagine seguente, le API 1 e 2 vengono implementate in una singola regione e l'API 3 in più regioni:

Le API 1 e 2 vengono eseguite in Regione 1 e l'API 3 viene eseguita 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  

Poi, configura un bilanciatore del carico utilizzando il bilanciamento del carico HTTP(S) per API Gateway(ANTEPRIMA) per gestire le richieste all'API e inoltrarle 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 caricando la specifica. Il caricamento di una nuova specifica crea una nuova configurazione API.

API Gateway supporta un modello di aggiornamento senza tempi di riposo, il che significa che la tua API continua a gestire le richieste durante il deployment della configurazione dell'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.

Passaggi successivi