Cloud Endpoints pour 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. Pour en savoir plus, consultez la page Présentation du portail des développeurs.

Gestion des API

Cloud Endpoints assure la gestion des API à l'aide d'Extensible Service Proxy (ESP).

Avec Cloud Endpoints pour gRPC, vous pouvez utiliser les fonctionnalités de gestion des API de Cloud Endpoints pour ajouter, entre autres, une console API ainsi que des fonctionnalités de surveillance, d'hébergement, de traçage et d'authentification à vos services gRPC. En outre, une fois que vous avez spécifié des règles spéciales de mappage, ESP convertit le code RESTful JSON sur HTTP en requêtes gRPC. Cela signifie que vous pouvez déployer un serveur gRPC géré par Cloud Endpoints 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 à d'autres systèmes.

Service Endpoints gRPC

Vous pouvez créer des services gRPC pour Cloud Endpoints 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.

Plates-formes de calcul compatibles

ESP est un projet Open Source disponible dans les éléments suivants :

  • Un conteneur dans Google Container Registry. Consultez les notes de version ESP pour obtenir l'image Docker actuelle.
  • Le code source dans GitHub. Consultez le fichier ESP README pour obtenir plus de détails sur la création d'ESP.

Vous pouvez exécuter le conteneur ESP sur les éléments suivants :

Consultez la page Déployer le backend de l'API pour plus d'informations sur le déploiement de l'API et d'ESP sur les plates-formes de calcul GCP.

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 Cloud Endpoints, vous devez fournir une configuration de service avec la définition de 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 Cloud Endpoints spéciaux.

Transcodage

Cloud Endpoints fournit une conversion de protocole pour vos services gRPC, permettant aux clients d'utiliser HTTP/JSON pour communiquer avec un service gRPC via Extensible Service Proxy.

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. Cloud Endpoints 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 Cloud Endpoints :

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

Endpoints n'accepte pas les environnements App Engine pour les services gRPC ; seuls GKE et Compute Engine sont compatibles, ainsi que Cloud Run (bêta).

Et ensuite ?

  • Suivez l'un de nos tutoriels pour mettre en place un service gRPC simple avec Cloud Endpoints dans l'environnement de votre choix.
  • Découvrez comment configurer un service gRPC pour Cloud Endpoints.
  • 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 :