Cette page, qui présente des détails propres à Cloud Run, s'adresse aux développeurs qui souhaitent utiliser gRPC afin de connecter un service Cloud Run à d'autres services, par exemple pour fournir une communication simple et hautes performances entre des microservices internes. Avec Cloud Run, vous pouvez utiliser tous les types gRPC en streaming ou unaire.
Exemples d'utilisation possible :
- Communication entre des microservices internes.
- Charges de données élevées (gRPC utilise des tampons de protocole, qui sont jusqu'à sept fois plus rapides que les appels REST).
- Seule une définition de service simple est nécessaire, vous ne souhaitez pas écrire une bibliothèque cliente complète.
- Utilisez des gRPC en streaming sur votre serveur gRPC pour créer des applications et des API plus réactives.
Pour intégrer votre service à gRPC, procédez comme suit :
- Configurez votre service pour qu'il utilise HTTP/2 si vous utilisez gRPC en streaming. HTTP/2 est la méthode de transport pour le streaming gRPC.
- Définissez les messages de requête et les réponses dans un fichier proto, puis compilez-les.
- Créez un serveur gRPC pour gérer les requêtes et renvoyer des réponses : il doit écouter la variable d'environnement
PORT
. - Créez un client qui envoie des requêtes et gère les réponses du serveur gRPC.
- Vous pouvez éventuellement ajouter une authentification.
- Créez et déployez votre service.
Configurer votre service pour utiliser HTTP/2
Google recommande de configurer votre service pour en HTTP/2 si vous utilisez gRPC avec Cloud Run. Bien que certaines fonctionnalités gRPC de base fonctionnent sans HTTP/2, de nombreuses fonctionnalités gRPC, telles que le streaming et les métadonnées, nécessitent HTTP/2.
Définir et compiler des messages dans un fichier proto
Vous n'avez pas besoin d'ajouter d'éléments supplémentaires ou propres à Cloud Run dans vos définitions de proto. Comme pour toute autre utilisation de gRPC, vous utilisez des tampons de protocole gRPC pour les définitions de service et la sérialisation des données.
Créer un client gRPC
Vous n'avez pas besoin d'ajouter d'éléments supplémentaires ou propres à Cloud Run à un client qui utilise gRPC : suivez les documents gRPC sur l'utilisation des définitions de service dans le code client et les exemples de clients fournis dans les tutoriels gRPC propres aux différents langages.
Écouter des requêtes gRPC dans un service Cloud Run
La seule condition requise pour un serveur gRPC exécuté dans Cloud Run est d'écouter le port spécifié par la variable d'environnement PORT
, comme indiqué dans le code :
Go
Ouvrir une connexion gRPC à un service
Pour ouvrir une connexion gRPC à un service afin d'envoyer des messages gRPC, vous devez spécifier le domaine hôte, qui est l'URL du service Cloud Run ou le domaine personnalisé mappé avec ce service, ainsi que le port 443, qui est le port censé être utilisé par gRPC.
Go
Envoyer des requêtes gRPC sans authentification
L'exemple suivant montre comment envoyer une requête sans authentification, à l'aide d'une connexion gRPC configurée comme indiqué précédemment.
Go
Envoyer des requêtes gRPC avec authentification
L'exemple suivant montre comment utiliser l'authentification entre les services, si le service appelant dispose d'une autorisation d'appel sur le service destinataire. Notez que ce code crée un en-tête d'autorisation doté du jeton d'identité approprié : cela est obligatoire. Les autorisations requises et l'en-tête d'autorisation sont décrites en détail sur la page Authentification de service à service.
Go
Exemple de code pour le streaming gRPC
Pour obtenir un exemple de code, reportez-vous à la mise en œuvre de RouteGuide
dans le tutoriel gRPC "Principes de base" dans la langue de votre choix. Par exemple, pour Go, reportez-vous à la section Mettre en œuvre RouteGuide.