Comment déployer une API Node.js sans serveur avec AWS API Gateway ?

Comment Deployer Une Api Node Js Sans Serveur Avec Aws Api Gateway



AWS est une plateforme de cloud computing dotée d'un vaste portefeuille de services. Du stockage de données à la manipulation et à l'analyse des données, ces services couvrent différents aspects de l'industrie informatique. Aujourd'hui, AWS prend également en charge plusieurs langages de développement et environnements d'exécution. L'un des exemples les plus courants de tels services est AWS Lambda.

AWS Lambda est un service informatique événementiel d'AWS qui permet à ses utilisateurs d'exécuter leur code sans fournir ni gérer les serveurs. Lambda gère efficacement toute l'infrastructure informatique et l'administration des ressources. Plusieurs langages de développement sont pris en charge par le service Lambda, par exemple Go, Ruby, Python, etc. Lambda est également considéré comme un service rentable car il n'engage que des frais pour le temps de calcul consommé par l'utilisateur. Il n'y a pas de frais supplémentaires lorsque le code fourni à la fonction Lambda n'est pas en cours d'exécution.

En savoir plus : Premiers pas avec AWS Lambda







Aperçu rapide



Cet article illustre les aspects suivants :



Qu'est-ce qu'un framework sans serveur ?

Le terme « Sans serveur » fait référence à la terminologie selon laquelle la fourniture et la maintenance des serveurs sont gérées soit par des logiciels tiers, soit par des fournisseurs de cloud. De tels frameworks permettent aux utilisateurs de se concentrer sur la logique métier de base au lieu de maintenir les serveurs. Aujourd'hui, les frameworks sans serveur ont attiré l'attention des géants de la technologie et offrent d'énormes avantages.





De plus, il s'agit également d'une solution rentable car les serveurs sont fournis et gérés par les prestataires de services. Dans AWS, Lambda est considéré comme un service sans serveur car il ne nécessite que le code de l'utilisateur pour fonctionner. Avec AWS Lambda, les utilisateurs peuvent facilement créer et faire évoluer les applications dans différents environnements d'exécution de manière rentable.

Qu'est-ce qu'une API ?

API est un acronyme pour 'Interface de programmation d'applications'. L'introduction formelle de l'API inclut le fait qu'il s'agit d'un ensemble de définitions et de protocoles qui permettent aux deux composants d'un logiciel ou d'une application d'échanger des informations utiles pour la communication.



Une application en temps réel de l'API consiste à utiliser un navigateur Web. Chaque fois qu'un utilisateur recherche un site Web, la demande est transmise au serveur sur lequel réside le site Web. Cette communication entre le serveur et le navigateur s'effectue via l'API.

Qu'est-ce que la passerelle API ?

API Gateway est un service entièrement géré d'AWS qui est similaire à un outil de gestion d'API. En utilisant la passerelle API, les développeurs peuvent facilement créer, gérer, publier et mettre à l'échelle différentes API. De même, la passerelle API permet aux utilisateurs de communiquer avec les autres microservices exécutés côté serveur. Il prend les données de l'utilisateur, les traite, puis les dirige vers les microservices appropriés. Ces microservices traiteront ensuite cette entrée pour générer une sortie.

Quels sont les différents types d’API dans API Gateway ?

La passerelle API fournit des services de gestion pour trois types différents d'API, comme mentionné ci-dessous :

API HTTP : Cette API est largement utilisée dans le développement Web qui se limite uniquement au côté client. Ces API peuvent être classées comme privées ou publiques.

API de repos : Le terme REST signifie «API de transfert d'état de représentation». C’est l’une des approches les plus couramment utilisées pour séparer le frontend et le backend de l’application. Les API REST sont de nature apatride et sont flexibles en termes de développement et de mise en œuvre.

API WebSocket : De telles API sont utilisées lorsque la communication par socket est impliquée. L'API WebSocket permet aux utilisateurs de créer des sockets pour une communication bidirectionnelle full duplex dans le développement Web. Ces API sont écrites en JavaScript.

Comment déployer une API Node.js sans serveur avec API Gateway ?

Pour le déploiement d'une API Node.js sans serveur avec API Gateway, nous utiliserons le compartiment S3, la fonction Lambda et la passerelle API. Le bucket S3 contiendra le code de l'application. L'URI unique du compartiment sera fourni à la fonction Lambda en tant que gestionnaire. La passerelle API sera ajoutée en tant que déclencheur de la fonction Lambda qui traitera l'entrée de l'utilisateur et fournira la sortie appropriée.

Vous trouverez ci-dessous les étapes de déploiement d'une API Serverless Node.js avec la passerelle API :

Étape 1 : Créer une fonction Lambda

Pour créer une fonction Lambda, accédez au 'Lambda' service du Console de gestion AWS :

Apprendre encore plus: 'Comment créer une fonction Lambda avec Python Runtime' .

Sur l'interface de la fonction Lambda, cliquez sur le bouton 'Créer une fonction' bouton:

Dans l'interface Créer une fonction, sélectionnez le «Auteur à partir de zéro» option:

Vient ensuite le 'Informations de base' section. Dans cette section, indiquez le nom de la fonction Lambda dans le fichier « Nom de la fonction » :

Clique sur le 'Créer une fonction' bouton situé en bas de l'interface :

Ici le fonction a été créé avec succès :

Étape 2 : Créer une passerelle API

L'étape suivante consiste à créer une passerelle API. Pour cela, accédez au « Passerelle API » service du Console de gestion AWS :

Faites défiler l'interface API Gateway et cliquez sur le bouton 'Construire' option du API REST bloc:

Sur le 'Créer une API' interface, sélectionner ce qui suit option en surbrillance . Alors que nous construisons un API de repos à partir de zéro, nous avons choisi les options suivantes :

Dans le Paramètres sur la même interface, indiquez le nom de l'API dans le champ 'Nom de l'API' champ de texte:

Clique sur le 'Créer une API' bouton:

Après avoir créé avec succès l'API, cliquez sur le 'Actions' et sélectionnez les options en surbrillance suivantes pour configurer les ressources et les méthodes de l'API :

Ensuite, indiquez le nom de l'API dans le champ 'Nom de la ressource' champ de texte. Dans le Chemin de ressources, les utilisateurs peuvent spécifier le chemin des ressources. Ce chemin spécifié sera ensuite combiné avec les méthodes d'origine pour gérer les requêtes. Clique le 'Créer une ressource' bouton:

Après avoir créé la ressource, cliquez sur le 'Actions' à nouveau l'onglet et choisissez le 'Créer une ressource' méthode pour définir les méthodes et les ressources à l'intérieur de l'API :

Indiquez le nom du 'Nom de la ressource' champ et cliquez sur le 'Créer une ressource' bouton:

Après avoir configuré les ressources imbriquées, appuyez sur le bouton 'Actions' bouton et cliquez sur le « Créer une méthode » bouton du menu déroulant :

Nous souhaitons tester le fonctionnement de notre API en utilisant le Requête OBTENIR dans Node.js. Par conséquent, dans l’interface Méthodes, nous sélectionnerons le 'OBTENIR' demande:

Après avoir sélectionné le Requête OBTENIR , clique sur le 'vérifier' bouton pour confirmer les modifications :

Sur le 'OBTENIR' interface de méthode, fournissez le nom de la fonction Lambda que nous avons créée précédemment et effectuez les configurations suivantes. Après cela, j'ai frappé le 'Sauvegarder' bouton pour confirmer les modifications :

Après avoir cliqué sur le 'Sauvegarder' bouton, la boîte de dialogue suivante apparaîtra. Clique le 'D'ACCORD' bouton:

De même, créez une méthode supplémentaire en suivant les étapes similaires à celles que nous avons suivies pour la première méthode. Les utilisateurs peuvent créer plusieurs méthodes au sein d'une API en fonction de leurs besoins. Après avoir configuré toutes les méthodes, cliquez sur le 'Actions' et sélectionnez l'onglet 'Déployer l'API' option:

Cela affichera la boîte de dialogue suivante. Dans le « Étape de déploiement » fournir les détails. Vient ensuite le 'Nom de scène' champ pour spécifier le nom de la scène. Clique sur le 'Déployer' bouton:

Le API a été créé avec succès :

Défiler vers le bas l'interface et cliquez sur le 'Sauvegarder les modifications' bouton:

Étape 3 : Créer le compartiment S3

Dans cette étape, nous allons créer un bucket pour stocker le code. Ce code sera associé à la fonction Lambda et l'API sera utilisée pour récupérer les attributs configurés à l'intérieur du code.

Pour créer un compartiment S3, recherchez le 'S3' service dans la barre de recherche du Console de gestion AWS. Appuyez sur le nom du service dans les résultats affichés :

Sur la console S3, cliquez sur le bouton 'Créer un compartiment' option pour lancer le processus :

Dans le Configuration générale section, fournissez un identifiant global unique pour le compartiment dans la champ de texte en surbrillance :

En gardant le paramètres comme défaut , clique sur le 'Créer un compartiment' bouton en bas de l'interface :

Cela créera le bucket. Maintenant, pour télécharger le code dans le compartiment S3, nous avons fourni un code Node JS simple dans GitHub dépôt. Téléchargez le code dans le Format zippé :

Après avoir téléchargé le Fichier zip , aller à Tableau de bord S3 et choisissez le seau. Sur l'interface suivante, cliquez sur le 'Télécharger' bouton et télécharger le Fichier zip au seau :

Apprendre encore plus: Comment télécharger des objets dans Amazon Simple Storage Service ?

Appuyez sur le 'Ajouter des fichiers' bouton situé à droite de l’interface, voisin du 'Ajouter le dossier' bouton. Après avoir ajouté le Fichier zip au seau, frappez le 'Télécharger' bouton en bas de l'interface :

Le déposer a été téléchargé avec succès :

Après Téléchargement le fichier dans le bucket, cliquez sur le Objet pour afficher les propriétés :

Clique sur le 'Copier l'URI S3' bouton. Ceci sera ajouté à la fonction Lambda :

Allez au Tableau de bord Lambda et choisissez la fonction Lambda :

Faites défiler jusqu'à 'Code' et appuyez sur le bouton « Télécharger depuis » bouton. Du menu déroulant, clique sur le 'Emplacement Amazon S3' option:

Collez le «URI S3» dans la boîte de dialogue affichée et cliquez sur le bouton 'Sauvegarder' bouton:

Sur le Interface de la fonction Lambda , faites défiler jusqu'à 'Paramètres d'exécution' et cliquez sur le 'Modifier' bouton:

Dans le « Gestionnaire » , modifiez les configurations suivantes. Le 'nodeapi' est le nom du dossier téléchargé dans le compartiment S3 et index.js est le point d'entrée. Après cela, cliquez sur le 'Sauvegarder' bouton:

Étape 4 : Vérification

Allez au Passerelle API console de service et cliquez sur le 'API' nom:

Après avoir sélectionné l'API, cliquez sur le 'Étapes' dans la barre latérale, puis cliquez sur l'étape de déploiement, par exemple, première étape :

Copiez le URL et lancez le Facteur outil sur la machine locale :

Créer un Requête OBTENIR dans le Facteur et collez-y l'URL. Après avoir cliqué sur le 'Envoyer' bouton, nous obtenons les résultats suivants :

C'est tout de ce guide.

Conclusion

Pour déployer l'API Node.js avec la passerelle API, téléchargez le code dans le compartiment S3, ajoutez-le en tant que gestionnaire et la passerelle API en tant que déclencheur à la fonction Lambda. La requête initiée à l'aide de Postman sera transmise à la fonction Lambda via l'API. Pour créer l'API, utilisez le service de passerelle API d'AWS. Le compartiment S3 qui a été ajouté en tant que gestionnaire à la fonction Lambda fournira le code pour le traitement de la demande. La sortie sera affichée sur la console du Postman. Cet article est un didacticiel étape par étape pour implémenter l'API Node.js avec la passerelle API AWS.