Cette rubrique explique comment utiliser API Gateway pour accéder à un service backend dans un VPC. Elle détaille également l'utilisation de l'authentification AppCode via Alibaba Cloud App pour sécuriser les appels d'API.
Prérequis
Vous disposez d'un VPC. Pour plus d'informations, consultez les rubriques Créer un VPC avec un bloc CIDR IPv4 et Créer un VPC avec un bloc CIDR IPv6.
Vous disposez d'une instance ECS. Pour plus d'informations, consultez la rubrique Créer une instance ECS.
Achetez une instance Server Load Balancer (SLB) et une instance ECS dans le VPC, puis déployez votre service.
Dans cet exemple, le service backend pour API Gateway est une instance ECS située dans un VPC. Un service web Nginx est déployé sur l'instance ECS sur le port 80.
Procédure
Pour utiliser API Gateway afin d'accéder à un service backend dans un VPC, suivez les étapes ci-dessous :
Créer une autorisation d'accès au VPC
Créez une autorisation d'accès au VPC pour permettre à API Gateway d'accéder à votre VPC.
Connectez-vous à la console API Gateway. Sélectionnez une région et, dans le volet de navigation de gauche, choisissez API Management > VPC Authorization.
Sur la page Authorization List, cliquez sur Create Authorization en haut à droite.
-
Sur la page Create VPC Authorization, saisissez le VPC Authorization Name, l'VPC Id, l'Instance ID or IP Address et le Port.
RemarquePour accéder à un site (vhost) sur une instance SLB ou ECS en utilisant un nom de domaine spécifique, configurez ce nom de domaine dans le champ Host.
Vous pouvez trouver l'ID du VPC, l'ID de l'instance ou l'adresse IP privée sur la page des détails de votre service backend, tel qu'une instance ECS ou Classic Load Balancer (CLB).
La modification du type de réseau vers public n'est pas prise en charge et entraînera des échecs de requête.
Créer un groupe d'API
Un groupe d'API est une unité de gestion pour les API. Vous devez créer un groupe d'API avant de pouvoir créer une API.
Connectez-vous à la console API Gateway. Sélectionnez une région et, dans le volet de navigation de gauche, choisissez API Management > Group Management. Ensuite, cliquez sur Create Group en haut à droite.
Dans la boîte de dialogue Create Group, sélectionnez une Instance, saisissez
nginx-demopour le Group Name et/pour le Base Path, puis cliquez sur OK.
Sur la page Group List, vous pouvez consulter le groupe créé. Cliquez sur le nom du groupe pour accéder à la page Group Details, où vous pouvez bind a domain name, modify basic information ou change the group instance.
API Gateway attribue automatiquement un nom de domaine de deuxième niveau public au groupe d'API. Ce nom de domaine est réservé au débogage et est limité à 1 000 appels par jour. Dans les régions hors de Chine continentale, telles que Chine (Hong Kong), la limite est de 100 appels par jour. Pour une utilisation en production, liez un nom de domaine personnalisé au groupe.
Créer une API
Connectez-vous à la console API Gateway. Sélectionnez une région et, dans le volet de navigation de gauche, choisissez API Management > Group Management.
Sur la page Group List, localisez le groupe
nginx-demoet cliquez sur API Management dans la colonne Actions.Sur la page API List, cliquez sur Create API en haut à droite.
-
Sur la page Create API, dans la section Basic Information, configurez les paramètres suivants et cliquez sur Next.
Parameter
Example
Group
nginx-demo
API Name
nginx-test
Security Authentication
Alibaba Cloud App
AppCode Authentication
Allow AppCode (Header & Query) Authentication
Signature Algorithm
HMAC_SHA256
-
Dans la section Define API Request, configurez les paramètres suivants et cliquez sur Next.
Parameter
Example
Protocol
HTTP, HTTPS
Request Path
/nginx
HTTP Method
GET
Request Mode
Pass-through
RemarqueCette étape définit la manière dont un client, tel qu'un navigateur, une application mobile ou un autre système métier, peut envoyer des requêtes à votre API. Vous devez définir le protocole de requête, le chemin de requête, la méthode HTTP et le mode de requête. Dans cet exemple, le mode de requête est défini sur Pass-through, ce qui signifie qu'API Gateway transfère les requêtes des clients avec leurs paramètres d'origine directement au service backend dans le VPC.
-
Dans la section Define Backend Service, configurez les paramètres suivants et cliquez sur Next.
Parameter
Example
Backend Configuration
Sélectionnez Custom Backend Service
Backend Service Type
Sélectionnez VPC
VPC Authorization Name
***-microservice
Backend Request Path
/
HTTP Method
GET
Backend Timeout
10000
RemarqueCette étape définit la manière dont API Gateway mappe les paramètres et se connecte au service backend après avoir reçu une requête client. Dans cet exemple, le type de service backend est VPC. Sélectionnez l'autorisation d'accès au VPC que vous avez créée ou saisissez son nom, puis spécifiez le chemin de requête backend.
-
Dans la section Define Response, cliquez sur Create.
RemarqueCette étape génère la documentation de l'API pour aider les appelants à comprendre son fonctionnement. Vous pouvez définir le Content-Type de la réponse, ainsi que des exemples de réponse réussie et d'erreur. Cet exemple ne couvre pas ces paramètres. Cliquez sur Create.
Dans le message qui s'affiche, cliquez sur Publish.
-
Dans la boîte de dialogue Publish API, définissez l'environnement sur Release, saisissez une description dans le champ Remarks, puis cliquez sur Publish.
RemarqueAprès avoir modifié une API, vous devez la publier dans un environnement pour que les modifications prennent effet. API Gateway propose trois environnements intégrés : Release, Pre et Test.
Créer une application et autoriser l'API
Une application est l'identité utilisée pour appeler une API. Dans cet exemple, la méthode d'authentification est définie sur « Alibaba Cloud App » lors de la création de l'API. Après avoir publié l'API, vous devez créer une application et l'autoriser à appeler l'API.
Créer une application
Connectez-vous à la console API Gateway. Sélectionnez une région et, dans le volet de navigation de gauche, choisissez API Calling > Application Management.
Sur la page Applications and Authorizations, cliquez sur Create APP en haut à droite.
-
Dans la boîte de dialogue Create Application, saisissez un Application Name et cliquez sur OK.
Le nom de l'application peut contenir des caractères chinois, des lettres, des chiffres et des traits de soulignement (_). Il doit commencer par une lettre ou un caractère chinois et comporter entre 4 et 26 caractères. Vous pouvez également développer les sections Tag Settings, Custom AK ou Extended Fields, et saisir une Description de jusqu'à 180 caractères.
Sur la page Applications and Authorizations, cliquez sur le nom de l'application que vous avez créée pour accéder à la page Application Details. Vous y verrez deux méthodes d'authentification pour Alibaba Cloud App : AppKey et AppCode. Dans cet exemple, nous utilisons AppCode pour une authentification simple. Pour plus d'informations, consultez la rubrique Appeler une API en utilisant l'authentification simple (AppCode).
Autoriser l'API
Connectez-vous à la console API Gateway. Sélectionnez une région et, dans le volet de navigation de gauche, choisissez API Management > API List.
Sur la page API List, localisez l'API
nginx-test. Dans la colonne Actions, cliquez sur
et choisissez Authorize.Dans le panneau Authorize qui s'affiche, définissez Select an environment to authorize sur Release. Recherchez l'application que vous avez créée, cliquez sur Add, puis cliquez sur OK. Un message de succès s'affiche.
Autoriser l'IP sortante d'API Gateway dans le groupe de sécurité
Si le groupe de sécurité de votre instance ECS comporte des règles entrantes qui restreignent le trafic, vous devez ajouter l'adresse IP sortante d'API Gateway à la liste d'autorisation du groupe de sécurité. Cette action empêche le groupe de sécurité de bloquer les requêtes provenant d'API Gateway. L'adresse IP sortante requise appartient à l'instance qui héberge votre groupe d'API.
Connectez-vous à la console API Gateway. Dans le volet de navigation de gauche, choisissez API Management > Group Management, puis cliquez sur le nom de votre groupe d'API cible.
Sur la page Group Details, consultez le Instance Type du groupe.
-
Dans le volet de navigation de gauche, choisissez Instances and Clusters. Cliquez sur le type d'instance, localisez l'instance correspondante, puis consultez les informations relatives à l'Egress IP Address.
Les adresses IP sortantes incluent une adresse IP sortante publique et une adresse VPC interne.
-
Connectez-vous à la console ECS. Dans le volet de navigation de gauche, choisissez Instances & Images > Instances. Cliquez sur l'ID de votre instance ECS. Accédez à l'onglet Security Groups, puis cliquez sur le nom du groupe de sécurité. Sur la page Security Group Details, choisissez Inbound > Quickly Add Rules, et configurez l'adresse IP sortante de la passerelle.
Dans la boîte de dialogue Quickly Add Rules, définissez Authorization Policy sur Allow. Saisissez l'adresse IP sortante de la passerelle dans le champ Authorization Object. Sélectionnez All (1/65535) pour Port Range, puis cliquez sur OK.
Déboguer l'API
Après avoir configuré une API, utilisez cette fonctionnalité pour vérifier qu'elle fonctionne comme prévu avant de l'appeler depuis un client.
La page Debug prend en charge des messages de requête d'une taille maximale de 512 Ko. Pour des requêtes plus volumineuses, utilisez un SDK pour le débogage.
Vos listes noires, listes blanches et plug-ins de contrôle d'accès basés sur l'adresse IP configurés doivent autoriser le trafic provenant de 47.245.113.207.
Cette page ne prend pas en charge le débogage pour le plug-in JWT.
Seuls les noms de domaine publics sont pris en charge pour le débogage.
Connectez-vous à la console API Gateway. Dans le volet de navigation de gauche, choisissez API Calling > Debug.
-
Sur la page Debug, sélectionnez l'API
nginx-testque vous avez créée. Pour la méthode d'authentification, sélectionnez Use AppCode. Ensuite, cliquez sur Send Request.Si l'appel réussit, le code d'état de la réponse est 200 et le corps de la réponse renvoie la page d'accueil Nginx par défaut en HTML, qui inclut du texte tel que
Welcome to nginx!.En cas d'échec du débogage, consultez les rubriques suivantes :
Appeler l'API
Pour plus d'informations, consultez la rubrique Appeler une API depuis un client.
Si vous ne spécifiez pas d'environnement pour un nom de domaine, les appels d'API utilisent par défaut l'environnement Release. Pour plus d'informations sur les environnements d'API, consultez la rubrique Gérer les environnements.
Cette rubrique est un guide de démarrage rapide et ne couvre pas la haute disponibilité du backend. Pour la haute disponibilité, consultez la rubrique Utiliser une ressource dans un VPC comme service backend d'une API.