Comment utiliser API7 Enterprise pour proxifier des services gRPC ?
January 2, 2024
Dans le paysage technologique en évolution rapide d'aujourd'hui, gRPC (Google Remote Procedure Call) est devenu un composant indispensable dans de nombreuses applications. Cependant, pour exploiter pleinement le potentiel de gRPC, une passerelle API robuste est essentielle pour la gestion efficace des services gRPC, offrant des fonctionnalités cruciales telles que la conversion de protocole, l'équilibrage de charge, l'authentification et l'autorisation.
Que vous soyez familier avec gRPC ou non, une lecture rapide de 5 minutes de cet article vous permettra de comprendre comment utiliser API7 Enterprise pour proxifier les services gRPC.
Prérequis
-
Installez API7 Enterprise.
-
Installez
grpcurl
pour simuler les interactions client gRPC avec votre serveur gRPC. -
Démarrez un service gRPC pour les tests :
- API7.ai fournit un exemple de service gRPC pour les tests. Vous pouvez également l'exécuter en utilisant la commande docker suivante :
docker run -d --name grpc-service -p 50051:50051 --restart always api7/grpc-server-example:1.0.0
- Une fois démarré, utilisez
grpcurl
pour afficher la liste des services gRPC disponibles et les méthodes :
$ grpcurl -plaintext 127.0.0.1:50051 list grpc.reflection.v1alpha.ServerReflection helloworld.Greeter helloworld.TestImport $ grpcurl -plaintext 127.0.0.1:50051 list helloworld.Greeter helloworld.Greeter.GetErrResp helloworld.Greeter.Plus helloworld.Greeter.SayHello helloworld.Greeter.SayHelloAfterDelay helloworld.Greeter.SayHelloBidirectionalStream helloworld.Greeter.SayHelloClientStream helloworld.Greeter.SayHelloServerStream
Utilisation d'API7 Enterprise pour proxifier les services gRPC
Mise à jour de la configuration de l'instance de passerelle
Par défaut, les instances d'API7 Enterprise ne prennent en charge que HTTP/2 chiffré par TLS sur le port 9443. Pour faciliter les tests, modifiez le fichier de configuration de l'instance de passerelle dans la section node_listen
, en ajoutant un port 9081 pour prendre en charge HTTP/2 non chiffré.
apisix:
node_listen:
- port: 9080
enable_http2: false
- port: 9081
enable_http2: true
Après avoir effectué les modifications, relancez docker-compose up -d
dans le répertoire api7-ee
où API7 Enterprise est installé.
Configuration des services et des routes
Ensuite, sur le tableau de bord d'API7 Enterprise, configurez les ressources correspondantes pour proxifier le service gRPC préparé.
- Ajoutez un service nommé
grpc-example
et sélectionnezgRPC
comme schéma d'amont.
-
Ajoutez une route dans le service grpc-example
- Format du chemin de la route :
/{service}/{method}
- Par exemple, en vous basant sur la liste des services gRPC et des méthodes précédemment interrogées, configurez le chemin comme
/helloworld.Greeter/SayHello
.
- Format du chemin de la route :
Publication des services pour les tests
Après avoir créé le service et la route, publiez le service dans le groupe de passerelles pour le rendre effectif.
-
Cliquez sur "Publier le service", sélectionnez le groupe de passerelles spécifié, puis choisissez le service à publier.
-
Ajoutez un nœud de service gRPC (IP + port), puis cliquez sur "Publier".
-
Testez le service gRPC en utilisant
grpcurl
:- Utilisez le fichier
helloworld.proto
pour vous assurer que grpcurl aligne le format de la requête et de la réponse avec la définition du service gRPC. Le fichier .proto pour cet exemple est disponible ici. - Exécutez la commande suivante pour voir le proxification réussie du service gRPC en utilisant API7 Enterprise.
$ grpcurl -plaintext -proto helloworld.proto -d '{"name":"apisix"}' 127.0.0.1:9081 helloworld.Greeter.SayHello { "message": "Hello apisix" }
- Utilisez le fichier
Conclusion
API7 Enterprise propose plus de 100 plugins intégrés, couvrant un large éventail de fonctionnalités telles que l'authentification, l'autorisation, la limitation de débit, la journalisation et la surveillance. L'utilisation d'API7 Enterprise pour proxifier les services gRPC améliore considérablement la flexibilité, la sécurité, les performances et la gestion du système, offrant aux développeurs et aux équipes d'exploitation des outils puissants et des mécanismes de contrôle. Faites le pas pour essayer API7 Enterprise et renforcez votre application gRPC !