Présentation d'Amazon API Gateway à l'aide d'AWS Lambda

Présentation d'Amazon API Gateway à l'aide d'AWS Lambda

Nœud source: 1860150

Introduction

Qu'est-ce qu'une API?

En termes simples, l'API est un messager ; comprenons cela avec quelques exemples. Disons que vous avez faim et que vous devez cuisiner quelque chose à la maison. Si vous voulez faire des nouilles, il vous suffit de sortir les ingrédients du placard, d'allumer le poêle et de le faire vous-même. Il s'agit d'un programme qui fait quelque chose par lui-même avec ses propres ressources. Mais disons que vous voulez une pizza - vous n'avez pas les ingrédients et votre four domestique n'est pas vraiment adapté pour faire une belle croûte croustillante. Donc, vous allez plutôt dans une pizzeria. Mais contrairement à la maison, vous ne pouvez pas simplement entrer dans la cuisine et commencer à utiliser leurs ingrédients pour faire une pizza. Ils ne veulent pas que vos mains sales recouvrent leurs affaires ! Donc que feras-tu? Vous devez vous rendre au comptoir et passer une commande – il y aura un menu répertoriant les pizzas que vous pouvez commander et les garnitures ou autres options que vous pouvez choisir. Il s'agit d'une API.

Une interface de programmation d'application (API) est un ensemble de règles spécifiant comment deux logiciels doivent interagir.

Une API permet à un logiciel d'accéder aux fonctionnalités d'un autre logiciel. Par exemple, si vous avez un logiciel qui doit récupérer des données sur Internet, il peut utiliser une API pour demander ces données à un serveur. Le serveur répondra alors avec les données demandées, et le logiciel pourra les utiliser au besoin.

Les API sont utilisées pour permettre à différents logiciels de communiquer entre eux et de partager des données et des fonctionnalités. Ils constituent une partie importante du développement de logiciels modernes, car ils permettent à différents systèmes de fonctionner ensemble et permettent la création d'applications logicielles plus complexes et plus puissantes.

API HTTP

L'API HTTP est un type d'API qui utilise le protocole HTTP pour envoyer et recevoir des données. Il permet aux programmes logiciels d'envoyer et de recevoir des données à l'aide de requêtes et de réponses HTTP. Ces demandes et réponses peuvent être dans différents formats, tels que texte brut, JSON ou XML. Ils sont couramment utilisés dans un large éventail d'applications, notamment les applications Web, les applications mobiles et les microservices. Ces API sont relativement moins chères que les API REST et ont moins de fonctionnalités que ces dernières.

API REST

L'API REST est un type d'API qui suit un ensemble de principes architecturaux appelés REST (Representational State Transfer). REST est un style d'architecture logicielle qui définit un ensemble de contraintes pour la création d'API Web.

API avec état

Une API avec état est une API qui conserve des informations sur chaque demande client et utilise ces informations pour traiter les demandes suivantes. Cela signifie que l'API stocke des données sur chaque demande, telles que les paramètres de la demande, dans une session côté serveur. Ces données sont ensuite utilisées pour traiter les demandes ultérieures du même client.

API sans état

Une API sans état, en revanche, ne conserve pas d'informations sur les demandes des clients. Il traite chaque demande indépendamment, sans stocker de données sur les demandes précédentes. Cela signifie que l'API ne maintient pas de session côté serveur et n'utilise pas les données des demandes précédentes pour traiter les demandes suivantes.

Principales différences entre les API avec et sans état

Vous trouverez ci-dessous quelques différences clés entre les API avec état et sans état :

API AVEC ÉTAT

API SANS ÉTAT

1. Exiger une session côté serveur pour stocker les données sur les demandes des clients 1. Ne nécessite pas de session côté serveur pour stocker des données sur les demandes des clients
2. Celles-ci peuvent parfois être plus lentes que les API sans état car elles nécessitent et stockent des données qui prennent du temps. 2. Les API sans état sont plus rapides car elles ne nécessitent pas et ne stockent pas de données sur les requêtes.
3. Les API avec état ne sont pas faciles à mettre à l'échelle  3. Plus facile à mettre à l'échelle car ils n'ont pas besoin de conserver des données sur les demandes précédentes.
4. Généralement considéré comme moins sécurisé que les API sans état 4. Ceux-ci sont généralement considérés comme plus sûrs.

Qu'est-ce qu'Amazon API Gateway ?

Amazon API Gateway est un service AWS utilisé pour créer, maintenir et surveiller les API avec état (websocket) et sans état (HTTP et REST). Nous pouvons utiliser ces API pour accéder :

  1. N'importe quel service AWS
  2. Les données stockées dans le cloud AWS (comme un compartiment S3)
  3. Tout autre service Web.

Si vous êtes un développeur d'API, vous pouvez également facilement proposer vos API à des développeurs tiers.

Il existe principalement deux types d'utilisateurs d'AWS API Gateway.

  1. i) Développeurs d'API qui créent et déploient une API pour activer la fonctionnalité requise dans API Gateway
  2. ii) Développeurs d'applications clients du développeur d'API.

Architecture de passerelle d'API Amazon

architecture

Cette architecture illustre comment des applications sans serveur peuvent être créées avec une expérience de développeur cohérente et intégrée. Des utilisateurs finaux aux centres de données, API Gateway gère toutes les tâches impliquées, telles que l'acceptation et le traitement de milliers d'appels simultanés, la gestion du trafic, l'autorisation, la surveillance, le contrôle d'accès, etc.

Fonctionnalités de la passerelle d'API Amazon

  1. Il prend en charge les API avec et sans état. (Exemples : Websocket, HTTP et REST).
  2. Les puissants mécanismes d'authentification incluent AWS Identity, les politiques de gestion des accès et l'autorisateur Lambda.
  3. Portail des développeurs où les développeurs d'API peuvent publier leurs API.
  4. Journalisation de l'exécution et des accès pour CloudWatch, y compris la possibilité de définir des alarmes.
  5. Intégration avec d'autres services AWS tels que AWS Lambda et AWS Kinesis.
  6. L'intégration avec AWS WAF est utilisée pour la protection contre les exploits Web, et AWS X-Ray est utilisé pour comprendre et mettre l'accent sur les latences de performances.

Premiers pas avec Amazon API Gateway

Nous allons maintenant créer une API sans serveur. Dans une API sans serveur, nous pouvons nous concentrer sur nos applications au lieu de passer du temps à gérer des serveurs. Cela fonctionne comme ceci :

  • L'API est invoquée par le client
  • L'API envoie une requête à lambda
  • Lambda exécute la fonction lambda et renvoie le résultat à l'API
  • Après avoir reçu le résultat de lambda, l'API répond au client

API http

Étape 1 - Créer une fonction lambda

La fonction Lambda est utilisée pour le backend de notre API. Lambda exécute le code uniquement lorsque cela est nécessaire. Il évolue également automatiquement de quelques requêtes par jour à des milliers de requêtes par seconde.

créer une fonction lambada

Création d'une fonction lambda :

1) Accédez à la console lambda à l'adresse https://console.aws.amazon.com/lambda

2) Cliquez sur Créer une fonction.

3) Entrez "my-function" comme nom de fonction.

4) Choisissez Python 3.9 comme runtime.

5) Pour cette fonction, nous n'aurons pas besoin de changer quoi que ce soit dans l'onglet Autorisations et paramètres avancés car les autorisations par défaut sont suffisantes pour cette démonstration.

4) Cliquez sur Créer une fonction.

ÉTAPE 2 - Création d'une API HTTP

API Amazon

L'API HTTP fournit un point de terminaison HTTP pour votre fonction Lambda. Cela fonctionne comme ceci :

  • Le client soumet la requête à l'API HTTP
  • L'API déclenche lambda qui exécute ensuite la fonction lambda
  • Lambda envoie le résultat à l'API
  • L'API répond au client avec la réponse reçue

Étapes pour créer une API HTTP

1) Visitez la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway

2) Cliquez sur Build pour créer votre première API HTTP

3) Cliquez sur Ajouter une intégration pour l'intégration

4) Sélectionnez Lambda.

5) Entrez votre fonction lambda my-function.

6) Pour le nom de l'API, entrez my-http-api.

7) Cliquez sur Suivant.

8) Passez en revue l'itinéraire créé pour vous, puis choisissez Suivant.

9) Passez en revue l'étape créée pour vous, puis choisissez Suivant.

10) Cliquez sur Créer.

ÉTAPE 3 Testez votre API –

Ensuite, nous devons tester notre API pour nous assurer qu'elle fonctionne. Pour cela, nous utiliserons un navigateur Web pour invoquer notre API.

API Amazon

Pour tester notre API

  1. Accédez à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway
  2. Sélectionnez votre API.
  3. Notez l'URL d'appel de votre API. (voir l'image ci-dessus)
  4. Copiez l'URL d'appel de votre API et collez-la dans un navigateur Web. Joignez l'URL d'appel et le nom de votre fonction lambda pour appeler votre fonction Lambda. La console API Gateway crée une route en utilisant le nom de votre fonction Lambda « my-function » par défaut. 

    L'URL complète doit ressembler à https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function. Lorsque vous chargez cette URL, une requête GET est envoyée par votre navigateur à l'API.

  1. Vous devriez voir le texte "Hello from Lambda!" dans votre navigateur. Par conséquent, la réponse de votre API est vérifiée.

API Amazon

Conclusion

Nous avons créé notre première API HTTP en utilisant Amazon API Gateway et AWS Lambda. De plus, nous pouvons explorer divers cas d'utilisation de la même chose, et de la même manière, nous pouvons également créer une API REST, qui fournit plus de fonctionnalités.

As-tu aimé cet article? Faites-nous part de vos réflexions dans le commentaire ci-dessous. Aussi, n'oubliez pas de mentionner quel article vous aimeriez lire ensuite.

Horodatage:

Plus de Analytique Vidhya