API Gateway s'intègre à Nacos pour la découverte de services, réduisant ainsi le couplage système et améliorant la gestion des microservices. En tant que point d'entrée unifié pour les requêtes clientes, API Gateway gère le routage, le transfert et la sécurité de vos microservices backend. Cette rubrique explique le mécanisme d'intégration et vous guide dans la création, la publication et l'appel d'une API de découverte de services.
Vue d'ensemble
Le flux de travail comprend les étapes suivantes :
Créer une instance d'intégration VPC
Déployer un service Nacos et enregistrer une application microservice
Créer un groupe d'API
Créer un service backend
Créer une API
Créer une application et lui accorder les permissions d'appeler l'API
Déboguer l'API
Fonctionnement
Nacos sert de registre de services qui reçoit les demandes d'enregistrement des instances de microservices et stocke leurs métadonnées. API Gateway agit en tant qu'abonné au service, récupérant les adresses et les ports des instances depuis Nacos. Sur la base de ces informations, API Gateway distribue les requêtes aux instances de microservices backend, permettant ainsi un routage dynamique et un équilibrage de charge.

L'organigramme suivant illustre la manière dont API Gateway accède à un microservice backend.

Un fournisseur de services enregistre son application microservice auprès du serveur Nacos.
API Gateway envoie une requête à Nacos pour obtenir les informations sur les instances de service, y compris l'adresse IP, le port et le poids. Pour réduire la communication réseau et améliorer la vitesse de réponse, API Gateway met en cache ces informations.
Lorsqu'une requête cliente atteint API Gateway, la passerelle récupère d'abord l'adresse d'une instance de microservice disponible depuis son cache. La probabilité qu'une instance soit sélectionnée est proportionnelle à son poids. Ensuite, la passerelle envoie une requête HTTP vers l'adresse
IP:Portde l'instance sélectionnée. Après avoir reçu la réponse du backend, la passerelle la renvoie au client.Si les informations de l'application microservice changent, par exemple si une instance est mise hors ligne ou si une nouvelle est ajoutée, Nacos transmet les informations mises à jour de l'instance à API Gateway. La passerelle met alors à jour son cache en temps réel pour garantir sa cohérence avec le registre Nacos.
Lorsque le client envoie une autre requête, API Gateway utilise les dernières informations d'adresse de microservice pour le routage et le transfert.
API Gateway ne peut communiquer avec Nacos et les instances de microservices que via un réseau privé. Par conséquent, lors de la création d'une API, l'adresse du service Nacos doit être une adresse privée. Dans le cas contraire, la passerelle renvoie une erreur indiquant une adresse Nacos non valide. De même, les adresses backend des microservices enregistrés dans Nacos doivent également être des adresses privées. Lors d'un appel d'API, si la passerelle récupère une adresse IP publique pour un microservice depuis Nacos, la requête échouera et la passerelle renverra le code d'erreur I504IA. Si la passerelle ne parvient pas à récupérer l'adresse backend d'un microservice depuis Nacos, elle renvoie le code d'erreur I504BA.
Étape 1 : Créer une instance d'intégration VPC
Les instances dédiées standard ne peuvent pas communiquer via des réseaux privés. Les instances d'intégration VPC comblent cette lacune en se connectant directement à votre VPC. Pour plus d'informations, consultez Créer une instance d'intégration VPC. Lors de la création d'une instance, associez votre VPC à l'instance de passerelle. Sur la page de création de l'instance, sélectionnez un User VPC ID disponible, puis choisissez la zone, le vSwitch et le security group. Une fois la configuration terminée, la passerelle peut accéder aux ressources cloud situées dans le vSwitch spécifié via le réseau privé.
Vous devez également configurer d'autres paramètres, tels que la Billing Method (par exemple, Pay-As-You-Go), la région et la zone (par exemple, China (Beijing)), le type d'instance (par exemple, api.s1.small), le API Gateway Instance CIDR Block, la HTTPS Security Policy (par exemple, HTTPS2_TLS1_0), le Network Billing Type (par exemple, Pay-By-Traffic) et le Instance Name.
Étape 2 : Déployer Nacos et enregistrer une application
-
Déployer un service Nacos
Le service Nacos doit être déployé dans le VPC, la zone et le vSwitch que vous avez sélectionnés à l'étape 1. Vous pouvez déployer un service Nacos natif sur une instance ECS située dans le vSwitch sélectionné. Cela vous permet de définir l'adresse du service Nacos comme étant « adresse IP privée de l'instance ECS:port du service Nacos ». Lors de la création de l'instance ECS, sélectionnez VPC comme type de réseau et assurez-vous que le VPC et le vSwitch correspondent à la configuration de l'étape 1.
RemarquePour plus d'informations, consultez Déployer Nacos et Créer une instance ECS.
Vous pouvez également utiliser Alibaba Cloud Microservices Engine (MSE) pour créer un service Nacos. Lors de la création du service, sélectionnez VPC comme type de réseau et assurez-vous que le VPC et le vSwitch correspondent à la configuration de l'étape 1. Une fois le service créé, vous trouverez son adresse d'accès sur la page de liste des instances dans la console MSE.
RemarquePour plus d'informations, consultez Créer un moteur Nacos.
-
Enregistrer une application microservice
Votre application microservice doit également être déployée dans le VPC, la zone et le vSwitch que vous avez sélectionnés à l'étape 1. Cela garantit que le microservice peut être enregistré avec succès auprès de Nacos et accessible par API Gateway. Vous pouvez déployer votre application microservice sur une instance ECS créée dans le vSwitch spécifié à l'étape 1.
ImportantL'application microservice enregistrée auprès de Nacos doit prendre en charge les appels HTTP.
Étape 3 : Créer un groupe d'API
Les API sont gérées dans des groupes d'API. Vous devez créer un groupe d'API avant de pouvoir y créer des API. Connectez-vous à la console API Gateway. Dans le volet de navigation de gauche, accédez à , puis cliquez sur Create Group dans le coin supérieur droit. Dans la boîte de dialogue qui s'affiche, saisissez les informations du groupe. Pour l'instance, sélectionnez l'instance d'intégration VPC que vous avez créée à l'étape 1. Vous pouvez spécifier un nom de groupe personnalisé et un BasePath. Une fois le groupe créé, vous le trouverez dans la Group List. Cliquez sur le nom du groupe pour ouvrir la page Group Details, où vous pouvez associer un nom de domaine, modifier les informations de base ou changer le type d'instance.
API Gateway attribue automatiquement un nom de domaine public de deuxième niveau au groupe d'API à des fins de débogage. L'accès direct à ce nom de domaine est limité à 1 000 appels par jour dans les régions de Chine continentale et à 100 appels par jour dans les régions hors de Chine continentale, y compris la Chine (Hong Kong). Nous vous recommandons d'associer un nom de domaine personnalisé au groupe pour une utilisation en production.
Étape 4 : Créer un service backend
Accédez à la console API Gateway. Dans le volet de navigation de gauche, accédez à . Dans le coin supérieur droit de la page, cliquez sur Create Backend Service. Dans la boîte de dialogue qui s'affiche, saisissez un nom pour le service backend et sélectionnez Service Discovery comme type de backend. Une fois le service backend créé, cliquez sur son nom dans la Backend Service List pour accéder à la page des détails.
Les API de découverte de services ne peuvent être créées qu'à partir d'un service backend existant ; vous devez donc d'abord créer le service backend.
Dans cet exemple, sélectionnez l'environnement RELEASE. Vous devez créer un service backend dans un environnement avant de pouvoir y publier une API. Sur le côté droit de la page, cliquez sur Create pour ouvrir la page de configuration du service backend.
Configurez les informations suivantes pour votre service Nacos et votre application microservice :
NACOS Address : Adresse privée du service Nacos. Obligatoire. Saisissez l'adresse de déploiement réelle issue de l'étape 1.
namespace : Namespace de l'application microservice. Obligatoire. Saisissez l'ID du namespace.
Group : Groupe auquel appartient l'application microservice. Obligatoire.
Service Name : Nom de l'application microservice. Obligatoire.
Authentication : Méthode d'authentification pour Nacos. Obligatoire. Options : No Authentication, Account and Password Authentication ou key pair authentication.
Cluster : Cluster de l'application microservice. Facultatif. Séparez plusieurs noms de clusters par des virgules.
Si l'authentification est activée pour votre service Nacos, fournissez les identifiants correspondants. Pour un service Nacos natif avec authentification par compte et mot de passe, sélectionnez Account and Password Authentication et saisissez les identifiants. Si vous utilisez Alibaba Cloud Microservices Engine (MSE) pour gérer Nacos, sélectionnez key pair authentication. Créez d'abord un utilisateur RAM disposant d'autorisations en lecture seule sur les ressources MSE, puis saisissez l'AccessKey et le SecretKey de l'utilisateur RAM sur la page de configuration. Si votre service Nacos ne nécessite pas d'authentification, sélectionnez No Authentication.
Pour plus d'informations, consultez Authentification Nacos pour Nacos natif et Authentification d'accès du client Nacos pour MSE.
Si vous mettez à jour la configuration de votre service Nacos, vous devez également mettre à jour la configuration du service backend correspondant afin de garantir qu'API Gateway puisse toujours accéder à l'application microservice spécifiée.
Étape 5 : Créer une API
Accédez à la console API Gateway. Dans le volet de navigation de gauche, accédez à . Sur la page Backend Service List, localisez le service backend que vous avez créé et cliquez sur Create API dans la colonne Actions.
Configurer les informations de base de l'API
Configurez les informations de base de votre API, y compris le groupe d'API, le nom, la méthode d'authentification de sécurité, le type et la description. Sélectionnez le groupe d'API que vous avez créé précédemment. Pour Security Authentication, sélectionnez Alibaba Cloud APP. Pour AppCode Authentication, sélectionnez Allow AppCode Authentication (Header & Query). Vous pouvez spécifier un nom et une description d'API personnalisés.
Vous pouvez choisir une autre méthode d'authentification de sécurité selon vos besoins. Si API Gateway n'a pas besoin d'effectuer de vérifications de sécurité, sélectionnez No Authentication.
Définir la requête API
Définissez la manière dont les clients appellent votre API en spécifiant le type de requête, le protocole, le chemin, la méthode HTTP, le mode de requête et les paramètres. Configurez le chemin et la méthode de la requête cliente selon vos besoins.
Définir le service backend de l'API
Définissez comment API Gateway mappe les paramètres de la requête cliente et route la requête vers le service backend. Pour cet exemple, sélectionnez Use Existing Backend Service comme configuration backend, choisissez Service Discovery comme type de service backend, puis sélectionnez le service backend que vous avez créé précédemment. Définissez le chemin, la méthode et le délai d'expiration de la requête backend selon vos besoins.
Définir la réponse
Fournissez des exemples de réponses réussies et échouées pour générer la documentation de l'API destinée aux consommateurs. Cette étape est facultative pour ce tutoriel, vous pouvez donc cliquer sur Create.
Publier l'API
Après avoir enregistré l'API, publiez-la. Les modifications apportées à la définition d'une API ne prennent effet qu'après leur publication dans un environnement. Dans cet exemple, le service backend a été configuré uniquement dans l'environnement RELEASE, publiez donc l'API dans cet environnement. Pour publier dans d'autres environnements, définissez d'abord le service backend pour ces environnements. Cliquez sur Publish et suivez les instructions pour publier l'API dans l'environnement RELEASE.
Étape 6 : Créer et autoriser une application
Une application (APP) représente l'identité de l'appelant de l'API. Étant donné que l'authentification Alibaba Cloud APP a été sélectionnée lors de la création de l'API, vous devez créer une application et l'autoriser à appeler l'API avant de pouvoir y accéder. Pour les étapes détaillées, consultez Gérer les autorisations.
Étape 7 : Déboguer l'API
API Gateway propose une fonctionnalité de débogage en ligne. Utilisez-la pour vérifier que votre API est correctement configurée avant que les clients ne l'appellent.
Sur la page de liste des API, cliquez sur l'API que vous venez de créer pour accéder à sa page de détails, puis cliquez sur Debug API. Si vous avez défini des paramètres d'entrée pour l'API, vous pouvez saisir différentes valeurs sur la page Debug API pour tester le comportement de l'API.
Lors du débogage de l'API, assurez-vous de sélectionner une application autorisée et de définir Stage sur l'environnement dans lequel l'application est autorisée. Si vous sélectionnez un Stage incorrect, le débogage peut échouer.