Présentation de gRPC

gRPC est un framework RPC universel Open Source qui offre de hautes performances et est développé par Google. Dans gRPC, une application cliente peut appeler directement des méthodes sur une application serveur située sur une machine différente, comme s'il s'agissait d'un objet local, facilitant ainsi la création d'applications et de services distribués.

L'un des principaux avantages présentés par gRPC réside dans la documentation. Vous pouvez générer une documentation de référence pour l'API à l'aide des fichiers de définition d'interface d'API et de configuration de service.

Gestion des API

Avec API Gateway pour gRPC, vous pouvez utiliser le service de gestion des API d'API Gateway pour ajouter des fonctionnalités de surveillance, l'hébergement, le traçage, l'authentification et plus encore à vos services gRPC sur Cloud Run. En outre, une fois que vous avez spécifié des règles spéciales de mappage, API Gateway convertit le code RESTful JSON sur HTTP en requêtes gRPC. Cela signifie que vous pouvez déployer un serveur gRPC géré API Gateway et appeler son API à l'aide d'un client gRPC ou JSON/HTTP, ce qui vous donne beaucoup plus de flexibilité et de facilité d'intégration avec d'autres systèmes.

Vous pouvez créer des services gRPC pour API Gateway dans n'importe quel langage compatible avec gRPC. Pour obtenir plus d'informations sur gRPC, y compris des guides de démarrage rapide et des tutoriels pour la création de serveurs et de clients, consultez le site de gRPC.

Définition et configuration de service

gRPC est basé sur l'idée de définir un service, en spécifiant les méthodes pouvant être appelées à distance avec leurs paramètres et les types de retour. Par défaut, gRPC utilise des tampons de protocole comme langage de définition d'interface (IDL, Interface Definition Language) pour décrire à la fois l'interface du service et la structure des messages de charge utile.

// 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;
}

Pour utiliser gRPC avec API Gateway, vous devez fournir un configuration de service ainsi que la définition du service. Ceci configure le comportement d'exécution du service, y compris l'authentification, les API incluses dans le service, les mappages des requêtes HTTP avec les méthodes gRPC, et les paramètres API Gateway spéciaux.

Transcodage

API Gateway fournit une traduction de protocole pour vos services gRPC sur Cloud Run permettant aux clients d'utiliser HTTP/JSON pour communiquer avec un service gRPC via API Gateway.

Le cas d'utilisation le plus courant consiste à permettre aux clients de navigateur de communiquer avec des serveurs gRPC sans assistance particulière des bibliothèques de serveurs gRPC. API Gateway fournit un mécanisme permettant de mapper des requêtes HTTP avec des méthodes gRPC dans le cadre de la configuration du service.

Pour en savoir plus sur ce sujet, consultez la page Transcoder du contenu HTTP/JSON en gRPC.

Limites

Les fonctionnalités gRPC suivantes ne sont pas encore disponibles dans API Gateway :

  • Compression de la charge utile
  • Tout IDL autre que les tampons de protocole

API Gateway n'est compatible qu'avec Cloud Run les services gRPC à l'heure actuelle.

Étape suivante

  • Explorez des exemples. L'exemple getting-started-grpc est disponible sur GitHub dans les langages suivants :
  • L'exemple Bookstore est disponible dans les langages suivants :