Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Amazon Web Services

Introduction à Amazon API Gateway (Français) | Introduction to Amazon API Gateway (French)

Amazon Web Services and Amazon via AWS Skill Builder

Overview

Présentation

Dans cet atelier, vous allez créer un microservice FAQ simple. Le microservice retournera un objet JSON contenant une paire de questions et réponses aléatoires en utilisant un point de terminaison Amazon API Gateway qui appelle une fonction AWS Lambda. Voici le modèle architectural du microservice :

THÈMES ABORDÉS

À la fin de cet atelier, vous serez en mesure d’effectuer les opérations suivantes :

  • Créer une fonction AWS Lambda
  • Créer des points de terminaison Amazon API Gateway
  • Déboguer la passerelle API et Lambda à l’aide d’Amazon CloudWatch

PRÉREQUIS

Une certaine expérience en programmation et une pratique en développement d’applications seront utiles sans toutefois être nécessaires pour suivre l’atelier. Vous devez toutefois avoir terminé l’atelier d’autoformation Introduction à AWS Lambda avant de suivre cet atelier.

AUTRES SERVICES AWS

Les services AWS, autres que ceux nécessaires pour l’atelier, sont désactivés par une stratégie IAM pendant votre temps d’accès à l’atelier. De plus, les capacités des services utilisés pour cet atelier sont limitées, selon ce que l’atelier nécessite. Elles peuvent même être davantage limitées de façon intentionnelle par la conception de l’atelier. Des erreurs surviendront en cas d’action ou d’accès autres que ceux nécessaires dans ce guide de l’atelier.

Concepts techniques

ARCHITECTURE DE MICROSERVICES

« Le style architectural des microservices constitue une approche au développement d’une seule application représentant une suite de petits services, chacun exécutant ses propres processus et communiquant via des mécanismes légers, souvent une API de ressource HTTP. Ces services sont développés autour des capacités métier et peuvent être indépendamment déployés par un mécanisme de déploiement entièrement automatisé. Ces services ont besoin d’un minimum de gestion centralisée, qui peut être rédigée en différents langages de programmation et peut utiliser des technologies de stockage de données différentes. » – James Lewis et Martin Fowler

L’idée de l’architecture des microservices consiste à prendre un système large et complexe et à le diviser en services découplés et indépendants qui sont faciles à gérer et à étendre. Cela permet aux développeurs de répondre à leurs objectifs clés en matière de design, tels que l’extensibilité, la disponibilité et la maintenabilité.

Amazon API Gateway et AWS Lambda fournissent la combinaison parfaite de services web permettant de développer, livrer et maintenir facilement une suite de microservices qui peuvent constituer la fondation de systèmes de logiciels complexes.

Cet atelier vous enseignera à développer, déployer et déboguer un simple microservice qui représente une partie d’un système beaucoup plus large. Il consistera en deux parties : l’API RESTful et la fonction exécutée lorsqu’un utilisateur touche au point de terminaison.

API (APPLICATION PROGRAMMING INTERFACE)

Une interface de programmation d’application est un ensemble d’instructions qui définissent la manière de l’interface des développeurs avec une application. L’idée de l’API consiste à créer une approche standardisée afin de réaliser un interfaçage des différents services fournis par une application. Une API est conçue pour être utilisée avec un kit SDK (Kit de développement logiciel), constitué par une collection d’outils qui permettent aux développeurs de créer facilement des applications en aval basées sur des API.

STRATÉGIE API-FIRST

De nombreuses organisations de logiciels adoptent une stratégie API-First selon laquelle chaque service dans leur pile est d’abord et toujours lancé en tant qu’API. Lors de la conception d’un service, il est difficile de connaître toutes les applications diverses qui pourront utiliser ce service. Par exemple, le service FAQ de cet atelier serait idéal pour amorcer des pages FAW sur un site web externe. Toutefois, il est possible de penser qu’une société d’éducation sur le cloud souhaiterait également intégrer la FAQ dans ses ressources d’entraînement pour en faire des cartes mémoire ou des documents d’entraînement. S’il s’agissait simplement d’un site web statique, le processus d’ingestion de la société d’éducation serait très difficile. En fournissant une API qui puisse être consommée sous un format standardisé, le microservice permet de développer un écosystème autour du service, ainsi que des cas d’utilisation qui n’étaient pas envisagées au début.

API RESTFUL

REST (transfert d’état représentationnel) indique des architectures qui respectent six contraintes :

  • La séparation des préoccupations via un modèle client-serveur
  • L’état est stocké dans son ensemble chez le client et la communication entre le client et le serveur se fait sans état.
  • Le client mettra les données en cache pour améliorer l’efficacité du réseau.
  • Il existe une interface uniforme (sous la forme d’une API) entre le serveur et le client.
  • Lorsque le système devient plus complexe, des couches sont ajoutées. Il peut exister plusieurs couches de composants RESTful.
  • Suit un modèle de code-à-la-demande dans lequel le code peut être téléchargé à la volée (dans notre cas, il peut être mis en œuvre dans Lambda) et modifié sans avoir à mettre à jour les clients.

Cet atelier suit un modèle RESTful. Les clients envoient des demandes aux fonctions Lambda backend (serveur). La logique du service est encapsulée au sein de la fonction Lambda et fournit une interface uniforme pour l’utilisation par les clients.

MEILLEURES PRATIQUES DE DÉVELOPPEMENT D’UNE API RESTFUL.

L’un des principaux objectifs du développement d’une API consiste à établir un écosystème d’innovation autour de votre ensemble de services. Par conséquent, il est important que votre API soit intuitive et facile d’utilisation. Voici un schéma d’affectation de noms et de méthode commun

OpérationURLFonctionGET/questionsRenvoie toutes les questionsGET/questions/17Renvoie à la question numéro 17POST/questionsCrée une nouvelle questionPUT/questions/17Met à jour la question numéro 17CORRECTIF/questions/17Met à jour la question numéro 17SUPPRIMER/questions/17Supprime la question numéro 17

Constatez comment arriver à une question spécifique. Le point de terminaison de l’API n’est PAS /question/nom mais plutôt /questions/identifiant. Cela permet au concepteur de l’API de fournir une fonctionnalité permettant de renvoyer des groupes de questions (pouvant être n’importe quelle question) avec le point de terminaison /questions ainsi que des réponses à un seul enregistrement avec le point de terminaison /questions/identifiant. Pour en savoir plus, consultez la section des ressources supplémentaires à la fin de ce guide d’atelier.

Certains bons exemples d’API RESTful à examiner :

  • AWS Elemental MediaConvert
  • Spotify
  • Twitch
  • Netflix Genie
  • Slack

AMAZON API GATEWAY ET AWS LAMBDA

Un microservice utilisant Amazon API Gateway consiste en une ressource définie et des méthodes associées (GET, POST, PUT, etc.) dans la passerelle API Gateway ainsi qu’une cible backend. Dans cet atelier, la cible backend sera la fonction Lambda. Toutefois, la cible backend pourrait être un autre point de terminaison HTTP (une API tiers ou écoutant un serveur web), un service AWS proxy ou une intégration fictive à utiliser comme paramètre fictif.

AMAZON API GATEWAY

API Gateway est un service géré fourni par AWS qui facilite la création, le déploiement et la maintenance des API. La passerelle API Gateway comprend des fonctions permettant les opérations suivantes :

  • Transformer le corps et les en-têtes des demandes d’API entrantes pour qu’ils correspondent aux systèmes backend
  • Transformer le corps et les en-têtes des demandes d’API sortantes pour qu’ils répondent aux exigences des API
  • Contrôler l’accès aux API via AWS Identity and Access Management
  • Créer et appliquer des clés d’API pour le développement tiers
  • Activer l’intégration d’Amazon CloudWatch pour la surveillance des API
  • Mettre les réponses des API en cache via Amazon CloudFront afin d’obtenir des temps de réponse plus rapides
  • Déployer une API sur plusieurs étapes, e qui permet de différencier facilement les phases de développement, de test, de production ainsi que de gestion de versions
  • Connecter des domaines personnalisés à une API
  • Définir des modèles pour contribuer à standardiser les transformations de demande et de réponse de votre API

TERMINOLOGIE D’AMAZON API GATEWAY ET AWS LAMBDA

  • Ressource : représentée en tant que point de terminaison et chemin URL. Par exemple, api.mysite.com/questions. Vous pouvez associer des méthodes HTTP à des ressources et définir plusieurs cibles backend différentes pour chaque méthode. Dans une architecture de microservices, une ressource représenterait un seul microservice au sein de votre système.
  • Méthode : dans la passerelle API Gateway, une méthode est identifiée par la combinaison d’un chemin de ressource et un verbe HTTP, tel que GET, POST et DELETE.
  • Demande de méthode : les paramètres de demande de méthode dans la passerelle API Gateway stockent les paramètres d’autorisation des méthodes et définissent les paramètres de la chaîne de requête de l’URL ainsi que les en-têtes de requête HTTP qui sont reçus du client.
  • Demande d’intégration : les paramètres de la demande d’intégration définissent la cible backend utilisée dans la méthode. C’est également là que vous pouvez définir les modèles de mappage, transformer la demande entrante pour correspondre aux attentes de la cible backend.
  • Réponse d’intégration : les paramètres de la réponse d’intégration sont là où les mappages sont définis entre la réponse de la cible backend et la réponse de la méthode dans la passerelle API Gateway. Vous pouvez également transformer les données retournées par votre cible backend pour les adapter aux attentes de vos utilisateurs finaux et de vos applications.
  • Réponse de méthode : les paramètres de la réponse de méthode définissent les types de réponses de méthode, leurs en-têtes et leurs types de contenu.
  • Modèle : dans la passerelle API Gateway, un modèle définit le format, également appelé schéma ou forme, de certaines données. Vous pouvez créer et utiliser des modèles pour faciliter la création et le mappage des modèles. Étant donné que la passerelle API Gateway est conçu pour fonctionner principalement avec des données au format JSON (JavaScript Object Notation), la passerelle API Gateway utilise le schéma JSON pour définir le schéma attendu des données.
  • Étape : dans la passerelle API Gateway, une étape définit le chemin par lequel un déploiement d’API est accessible. Celles-ci sont couramment utilisées pour différencier les versions, ainsi que les points de terminaison de développement et de production, etc.
  • Plan : un plan Lambda est un exemple de fonction Lambda à utiliser comme base pour développer de nouvelles fonctions Lambda.

Reviews

Start your review of Introduction à Amazon API Gateway (Français) | Introduction to Amazon API Gateway (French)

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.