Panoramica di gRPC

gRPC è un framework RPC universale open source ad alte prestazioni sviluppato da Google. In gRPC, un'applicazione client può chiamare direttamente i metodi di un'applicazione server su un'altra macchina come se si trattasse di un oggetto locale, semplificando la creazione di applicazioni e servizi distribuiti.

Uno dei principali vantaggi dell'utilizzo di gRPC è la documentazione: puoi utilizzare la configurazione del servizio e i file di definizione dell'interfaccia API per generare la documentazione di riferimento per l'API.

Gestione delle API

Con API Gateway per gRPC, puoi utilizzare le funzionalità di gestione delle API di API Gateway per aggiungere monitoraggio, hosting, tracciamento, autenticazione e altro ancora ai servizi gRPC su Cloud Run. Inoltre, una volta specificate le regole di mappatura speciali, API Gateway converte RESTful JSON su HTTP in richieste gRPC. Ciò significa che puoi eseguire il deployment di un server gRPC gestito da API Gateway e chiamarne l'API utilizzando un client gRPC o JSON/HTTP, offrendoti maggiore flessibilità e facilità di integrazione con altri sistemi.

Puoi creare servizi gRPC per API Gateway in qualsiasi linguaggio supportato da gRPC. Ulteriori informazioni su gRPC, tra cui guide rapide e tutorial per la creazione di server e client, sono disponibili sul sito di gRPC.

Definizione e configurazione del servizio

gRPC si basa sull'idea di definire un servizio, specificando i metodi che possono essere chiamati da remoto con i relativi parametri e tipi restituiti. Per impostazione predefinita, gRPC utilizza i buffer di protocollo come IDL (Interface Definition Language) per descrivere sia l'interfaccia del servizio sia la struttura dei messaggi del payload.

// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings
message HelloReply {
  string message = 1;
}

Per utilizzare gRPC con API Gateway, devi fornire una configurazione del servizio insieme alla definizione del servizio. In questo modo viene configurato il comportamento di runtime del servizio, incluse l'autenticazione, le API incluse nel servizio, le mappature dalle richieste HTTP ai metodi gRPC e le impostazioni speciali del gateway API.

Transcodifica

API Gateway fornisce la traduzione del protocollo per i servizi gRPC su Cloud Run, consentendo ai client di utilizzare HTTP/JSON per comunicare con un servizio gRPC attraverso API Gateway.

Il caso d'uso più comune è consentire ai client browser di comunicare con i server gRPC senza supporto speciale dalle librerie client gRPC. API Gateway fornisce un meccanismo per mappare le richieste HTTP ai metodi gRPC nell'ambito della configurazione del servizio.

Puoi scoprire di più in merito nell'articolo Transcodifica di HTTP/JSON in gRPC.

Limitazioni

Le seguenti funzionalità gRPC non sono ancora supportate in API Gateway:

  • Compressione payload
  • Qualsiasi IDL diverso dai buffer di protocollo

Al momento API Gateway supporta solo i servizi gRPC Cloud Run.

Passaggi successivi

  • Esplora gli esempi. L'esempio getting-started-grpc è disponibile su GitHub nei seguenti linguaggi:
  • L'anteprima di Bookstore è disponibile nelle seguenti lingue: