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) ou d'Extensible Service Proxy V2 bêta (ESPv2 bêta).

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 et ESPv2 bêta convertissent 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 et ESPv2 bêta sont des projets Open Source qui vous sont proposés comme suit :

  • Un conteneur dans Google Container Registry.
  • Le code source dans GitHub.
    • Consultez le fichier ESP README pour obtenir plus de détails sur la création d'ESP.
    • Consultez le fichier ESPv2 bêta README pour obtenir plus de détails sur la création d'ESPv2 bêta.

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

Vous pouvez exécuter le conteneur ESPv2 bêta sur les éléments suivants :

  • Cloud Run
  • Cloud Run pour Anthos
  • GKE
  • Instance
  • Kubernetes

Ces fonctionnalités sont actuellement en version bêta. Consultez la section À propos de Cloud Endpoints pour plus d'informations.

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

Endpoints fournit une conversion de protocole pour vos services gRPC, permettant aux clients d'utiliser HTTP/JSON pour communiquer avec un service gRPC via ESP ou ESPv2 bêta.

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 :