Article original : How to Offer Custom APIs to Your Users with AWS API Gateway
Dans le monde de l'informatique en nuage et de l'architecture serverless, AWS API Gateway est un outil puissant qui vous aide à construire des API robustes, sécurisées et évolutives.
Dans ce tutoriel, je vais vous présenter API Gateway et expliquer les avantages de l'utilisation de cet outil utile. Ensuite, je vous montrerai comment créer et déployer une API Rest, et créer des plans d'utilisation pour offrir des clés API. Très bien, commençons.
Qu'est-ce que API Gateway ?
AWS API Gateway est un service entièrement géré fourni par Amazon Web Services (AWS) qui simplifie la création, le déploiement et la gestion des API à toute échelle.
Il agit comme une porte d'entrée pour les applications et vous permet de créer des API qui servent de ponts entre les clients et les services back-end. Cela permet une communication sécurisée et efficace.
Pourquoi avez-vous besoin de API Gateway ?
AWS API Gateway offre de nombreux avantages pour les entreprises et les développeurs. Voici quelques avantages de l'utilisation de API Gateway.
Évolutivité et haute disponibilité
Avec AWS API Gateway, la mise à l'échelle de vos API devient beaucoup plus facile. Il gère de manière transparente les pics de trafic en mettant à l'échelle automatiquement l'infrastructure sous-jacente. Cela entraîne une haute disponibilité et aide à prévenir les interruptions de service.
Sécurité et authentification
API Gateway offre des fonctionnalités de sécurité robustes, y compris des mécanismes d'authentification et d'autorisation intégrés.
Il prend en charge l'authentification des utilisateurs via les rôles IAM pour les applications internes, Cognito pour les applications externes (par exemple, les utilisateurs mobiles), et il prend également en charge les autorisateurs personnalisés.
Intégration avec d'autres services AWS
En tant que partie de l'écosystème AWS, API Gateway s'intègre de manière transparente avec une gamme d'autres services AWS. Cela vous permet de tirer parti de fonctionnalités supplémentaires comme les fonctions AWS Lambda, AWS Cognito pour la gestion des utilisateurs, et AWS CloudWatch pour la surveillance et la journalisation.
Gestion du cycle de vie des API
Avec API Gateway, vous pouvez facilement versionner, déployer et gérer différentes étapes de vos API. Cela simplifie le processus de déploiement des mises à jour, de test de nouvelles fonctionnalités et de gestion de différents environnements tels que le développement, la pré-production et la production.
J'espère que vous avez maintenant compris ce qu'est API Gateway et pourquoi il est précieux. Plongeons dans la création de notre propre API Gateway.
Comment créer une AWS API Gateway
Dans cette section, nous allons :
- Créer une API Rest avec la méthode GET
- L'intégrer avec une simple fonction lambda hello world et la déployer
Commençons par créer une fonction lambda
Comment créer une fonction AWS Lambda
Connectez-vous à la console de gestion AWS Console et recherchez "Lambda" dans la barre de recherche de la console de gestion AWS. Cliquez sur Créer une fonction.
Naviguer vers la console AWS Lambda
Sélectionnez l'option "Créer à partir de zéro", entrez un nom pour votre fonction lambda, sélectionnez l'environnement d'exécution "Python" et cliquez sur le bouton Créer une fonction en bas à droite.
Créer une fonction AWS Lambda
Une fois la fonction créée, mettez à jour le code suivant et déployez les modifications :
import json
def lambda_handler(event, context):
body = "Hello from 5minslearn!"
statusCode = 200
return {
"statusCode": statusCode,
"body": json.dumps(body),
"headers": {
"Content-Type": "application/json"
}
}
Déployer une fonction Lambda
Félicitations ! Vous avez créé avec succès une fonction AWS Lambda. Maintenant, créons l'API Rest.
Comment créer une API Rest et l'intégrer avec AWS Lambda
Recherchez API Gateway dans la barre de recherche. Dans la section API REST, cliquez sur le bouton Build.
Créer une API Rest
Choisissez le protocole comme Rest et sélectionnez Nouvelle API dans la section Créer une nouvelle API. Dans la section des paramètres, entrez le nom de l'API de votre choix et laissez le type de point de terminaison par défaut. Ensuite, cliquez sur le bouton Créer une API.
Configurer la création d'une API Rest
Cliquez sur le bouton Actions en haut à gauche. Ensuite, cliquez sur Méthode et sélectionnez la méthode comme GET et cliquez sur l'icône de validation.
Créer une méthode
Choisir la méthode "GET"
Sélectionnez Fonction Lambda comme type d'intégration et entrez le nom de la fonction Lambda que vous avez créée précédemment. Ensuite, enregistrez la fonction.
Sélectionner la configuration de la méthode
Une fois que vous cliquez sur enregistrer, "Ajouter une permission à la fonction Lambda" demandera une confirmation. Cela signifie essentiellement que vous autorisez API Gateway à invoquer une fonction Lambda. Dans ce cas, il s'agit de la fonction Lambda "DemoFunction". Acceptez la confirmation et passez à l'étape suivante.
Autoriser la permission d'invoquer la fonction Lambda depuis API Gateway
Cliquez sur Test. Cela vous mènera à une nouvelle page. Cliquez sur le bouton "Test". Vous pourrez voir la réponse de la fonction Lambda dans le panneau de droite.
Notre architecture API
Tester notre API Gateway
Maintenant que vous avez testé avec succès votre API, vous êtes prêt à déployer l'API. Pour déployer l'API, cliquez à nouveau sur le bouton Actions et cliquez sur Déployer l'API.
Déployer l'API Gateway
La boîte de dialogue Déployer l'API s'ouvrira. Sélectionnez Nouveau stade pour l'étape de déploiement et nommez-le comme vous le souhaitez. Cliquez sur le bouton Déployer.
Configurer le déploiement de l'API Gateway
Cliquez sur l'URL d'invocation affichée en haut. Vous pouvez voir la réponse de la fonction Lambda.
API Gateway créée
Tester notre API
Super ! Nous avons créé avec succès l'API Rest, l'avons intégrée avec la fonction Lambda et l'avons déployée.
Mais vous pouvez faire cela avec plusieurs services disponibles sur le marché. Pourquoi choisiriez-vous AWS API Gateway ?
Eh bien. C'est une question intéressante. Tout d'abord, vous pouvez configurer le plan d'utilisation pour votre API. Le meilleur, c'est que vous n'avez pas à écrire de code pour cela.
Maintenant, créons un plan d'utilisation, générons une clé API et rendons notre API Rest accessible uniquement en passant la clé API dans l'en-tête.
Comment créer un plan d'utilisation d'API Gateway
Dans la barre latérale de gauche, cliquez sur Plans d'utilisation et cliquez sur le bouton Créer. Entrez le nom de votre plan – j'ai choisi "Basique". Entrez les sections Limitation de débit et Quota selon vos besoins et cliquez sur Suivant.
Créer un plan d'utilisation AWS API Gateway
Cliquez sur le bouton Ajouter une étape d'API. Sélectionnez l'API et son étape. Cliquez sur l'icône de validation dans le coin droit et sélectionnez Suivant.
Créer une étape pour notre API
Créer une étape pour notre API
Cliquez sur Créer une clé API et ajouter au plan d'utilisation. Une fenêtre modale s'ouvrira. Entrez le nom de la clé API. Pour la clé API, j'ai sélectionné Générer automatiquement, mais si vous souhaitez donner une clé personnalisée, vous pouvez entrer une clé personnalisée. Cliquez sur le bouton Enregistrer.
Créer une clé API pour accéder au service
Configurer la clé API
Sélectionnez Ressources dans la barre latérale, cliquez sur l'API GET que vous venez de créer, et cliquez sur la demande de méthode.
Sélectionner la méthode
Dans la section Paramètres, mettez à jour le champ Clé API requise à vrai et cliquez sur l'icône de validation. Une fois mis à jour, n'oubliez pas de déployer les modifications en cliquant sur le menu déroulant Actions. Vos modifications ne seront pas mises à jour sinon.
Activer le champ Clé API requise
Déployer l'API
Cliquez maintenant sur la même URL et voyez la magie.
Interdit !
Parce que notre couche API est maintenant protégée. Vous devez passer la clé API dans l'en-tête pour accéder aux données.
Accès interdit si aucune clé API n'est fournie
Maintenant, cliquez sur les Plans d'utilisation dans la barre latérale. Sélectionnez votre plan et accédez à l'onglet Clés API.
Accéder à votre clé API
Cliquez sur la clé API que vous avez créée à l'étape 3. Cliquez sur Afficher. Copiez la clé API.
Liste des clés API
Révéler votre clé API
Vous devez passer la clé API dans l'en-tête 'x-api-key'. Passons au terminal pour tester cela.
Vérifiez votre API Rest sans passer la clé API au début. Ouvrez le terminal et entrez la commande curl suivante. Vous verrez une fois de plus le message interdit.
curl --location --request GET '[entrez votre URL d\'invocation]'
--header 'Content-Type: application/json
Accès interdit sans clé API dans le terminal
Maintenant, passez la clé API cette fois. Exécutez la commande curl suivante :
curl --location --request GET '[votre URL d\'invocation]' \
--header 'x-api-key: [votre clé API]' \
--header 'Content-Type: application/json' \
--data-raw ''
Données reçues en passant la clé API dans l'en-tête x-api-key
Vous pouvez voir la sortie de la fonction Lambda car vous avez passé 'x-api-key' dans l'en-tête.
Super ! Vous avez créé avec succès le plan d'utilisation, généré la clé API, et l'avez attachée à la méthode de l'API Rest et vérifié l'intégration.
Conclusion
Dans ce tutoriel, vous avez appris ce qu'est AWS API Gateway et comment créer des plans d'utilisation pour l'API Rest.
Si vous souhaitez en savoir plus sur les services AWS, abonnez-vous à ma newsletter par email (https://5minslearn.gogosoon.com/) et suivez-moi sur les réseaux sociaux.