Hoe implementeer ik een serverloze Node.js API met AWS API Gateway?

Hoe Implementeer Ik Een Serverloze Node Js Api Met Aws Api Gateway



AWS is een cloud computing-platform met een uitgebreid dienstenportfolio. Van gegevensopslag tot gegevensmanipulatie en gegevensanalyse, deze diensten bestrijken verschillende aspecten van de IT-industrie. Tegenwoordig ondersteunt AWS ook verschillende ontwikkeltalen en runtime-omgevingen. Een van de meest voorkomende voorbeelden van dergelijke diensten is AWS Lambda

AWS Lambda is een gebeurtenisgestuurde computerservice van AWS waarmee gebruikers hun code kunnen uitvoeren zonder de servers aan te bieden of te beheren. Lambda verwerkt op efficiënte wijze alle computerinfrastructuur en het beheer van de bronnen. Er zijn meerdere ontwikkelingstalen die worden ondersteund door de Lambda-service, bijvoorbeeld Go, Ruby, Python, enz. Lambda wordt ook als een kostenefficiënte service beschouwd, omdat er alleen kosten in rekening worden gebracht voor de computertijd die de gebruiker verbruikt. Er zijn geen extra kosten verbonden als de code die aan de Lambda-functie wordt verstrekt, niet in de uitvoeringsstatus verkeert.

Lees verder : Aan de slag met AWS Lambda







Snel overzicht



Dit artikel illustreert de volgende aspecten:



Wat is een serverloos raamwerk?

De voorwaarde “Serverloos” verwijst naar de terminologie waarbij de levering en het onderhoud van de servers worden beheerd door software van derden of cloudproviders. Met dergelijke raamwerken kunnen gebruikers zich concentreren op de kernbedrijfslogica in plaats van op het onderhoud van de servers. Tegenwoordig hebben Serverless Frameworks de aandacht getrokken van technologiegiganten en bieden ze enorme voordelen.





Bovendien is dit ook een kosteneffectieve oplossing omdat de servers worden geleverd en beheerd door de serviceproviders. In AWS wordt Lambda beschouwd als een serverloze service, omdat deze alleen de code van de gebruiker nodig heeft om te kunnen werken. Met AWS Lambda kunnen gebruikers eenvoudig en op een kosteneffectieve manier de applicaties in verschillende runtime-omgevingen bouwen en schalen.

Wat is een API?

API is een afkorting voor “Applicatieprogrammeerinterface”. De formele introductie van API houdt in dat het een reeks definities en protocollen is waarmee de twee componenten van software of een applicatie nuttige informatie voor communicatie kunnen uitwisselen.



Een real-time toepassing van API gebeurt met behulp van een webbrowser. Wanneer een gebruiker naar een website zoekt, wordt het verzoek afgeleverd bij de server waarop de website zich bevindt. Deze communicatie tussen de server en browser vindt plaats via de API.

Wat is API-gateway?

API Gateway is een volledig beheerde service van AWS die vergelijkbaar is met een API Management-tool. Door de API-gateway te gebruiken, kunnen ontwikkelaars eenvoudig verschillende API's maken, beheren, publiceren en schalen. Op dezelfde manier stelt de API-gateway gebruikers in staat te communiceren met de andere microservices die aan de serverzijde draaien. Het neemt de input van de gebruiker, verwerkt deze en stuurt deze vervolgens naar de juiste microservices. Deze microservices verwerken deze invoer vervolgens voor het genereren van uitvoer.

Wat zijn de verschillende soorten API's in API Gateway?

API-gateway biedt beheerservices voor drie verschillende soorten API's, zoals hieronder vermeld:

HTTP-API: Deze API wordt veelvuldig gebruikt bij webontwikkeling en is beperkt tot alleen de clientzijde. Dergelijke API's kunnen worden geclassificeerd als privé of openbaar.

Rest-API: De term REST staat voor “Vertegenwoordiging State Transfer API”. Het is een van de meest gebruikte benaderingen die de frontend en backend van de applicatie scheiden. REST API's zijn stateless van aard en flexibel voor ontwikkeling en implementatie.

WebSocket-API: Dergelijke API's worden gebruikt als er sprake is van socketcommunicatie. Met de WebSocket API kunnen gebruikers sockets creëren voor bidirectionele full-duplex communicatie bij webontwikkeling. Deze API's zijn geschreven in JavaScript.

Hoe implementeer ik een serverloze Node.js API met API Gateway?

Voor de implementatie van een serverloze Node.js API met API Gateway zullen we de S3-bucket, Lambda-functie en API-gateway gebruiken. De S3-bucket bevat de code van de applicatie. De unieke URI van de bucket wordt als handler aan de Lambda-functie verstrekt. De API-gateway zal worden toegevoegd als trigger voor de Lambda-functie, die de invoer van de gebruiker zal verwerken en de juiste uitvoer zal leveren.

Hieronder vindt u de stappen voor het implementeren van een serverloze Node.js API met de API-gateway:

Stap 1: Maak een Lambda-functie

Om een ​​Lambda-functie te maken, gaat u naar de “Lambda” dienst van de AWS-beheerconsole :

Kom meer te weten: “Een Lambda-functie maken met Python Runtime” .

Klik in de Lambda Function-interface op de “Creëer functie” knop:

Selecteer in de interface Functie maken de “Auteur vanaf het begin” keuze:

Vervolgens komt de 'Basis informatie' sectie. Geef in deze sectie de naam op voor de Lambda-functie in de “Functienaam” :

Klik op de “Creëer functie” knop onderaan de interface:

Hier de functie Is gemaakt met succes :

Stap 2: Maak een API-gateway

De volgende stap is het maken van een API Gateway. Ga hiervoor naar de “API-gateway” dienst van de AWS-beheerconsole :

Scroll naar beneden in de API Gateway-interface en klik op de 'Bouwen' optie uit de REST-API blok:

Op de “API maken” koppel, selecteren het volgende gemarkeerde optie . Terwijl we bezig zijn met het bouwen van een Rest-API Vanaf het begin hebben we de volgende opties gekozen:

In de Instellingen sectie op dezelfde interface, geef de naam voor de API op in de “API-naam” tekstveld:

Klik op de “API maken” knop:

Nadat u de API succesvol heeft aangemaakt, klikt u op de “Acties” en selecteer de volgende gemarkeerde opties om de bronnen en methoden van de API te configureren:

Geef vervolgens de naam van de API op in het 'Naam van de bron' tekstveld. In de Bronpad, gebruikers kunnen het pad van de bronnen opgeven. Dit opgegeven pad wordt vervolgens gecombineerd met de oorspronkelijke methoden om verzoeken af ​​te handelen. Klik op de “Creëer hulpbron” knop:

Nadat u de bron hebt gemaakt, klikt u op de “Acties” tab opnieuw en kies de “Creëer hulpbron” methode om methoden en bronnen binnen de API te definiëren:

Geef de naam op van de 'Naam van de bron' veld en klik op de “Creëer hulpbron” knop:

Nadat u de geneste bronnen hebt geconfigureerd, tikt u op de “Acties” knop en klik op de “Maak Methode” knop van de drop-down menu :

We willen de werking van onze API testen door gebruik te maken van de KRIJG verzoek in Node.js. Daarom selecteren we in de Methoden-interface de 'KRIJGEN' verzoek:

Na het selecteren van de KRIJG verzoek , Klik op de 'rekening' knop om wijzigingen te bevestigen:

Op de 'KRIJGEN' method interface, geef de naam op voor de Lambda-functie die we eerder hebben gemaakt en voer de volgende configuraties uit. Daarna raakte de 'Redden' knop om wijzigingen te bevestigen:

Na het klikken op de 'Redden' knop, verschijnt het volgende dialoogvenster. Klik op de 'OK' knop:

Maak op dezelfde manier nog een methode door dezelfde stappen te volgen als we voor de eerste methode hebben gevolgd. Gebruikers kunnen binnen een API meerdere methoden creëren op basis van hun vereisten. Nadat u alle methoden hebt geconfigureerd, klikt u op de “Acties” tabblad en selecteer de “API implementeren” keuze:

Hierdoor wordt het volgende dialoogvenster weergegeven. In de “Implementatiefase” geef de details. Vervolgens komt de 'Artiestennaam' veld voor het opgeven van de fasenaam. Klik op de 'Aanwenden' knop:

De API is geweest succesvol aangemaakt :

Naar beneden scrollen de interface en klik op de 'Wijzigingen opslaan' knop:

Stap 3: Maak de S3-bucket

In deze stap gaan we een bucket maken om de code op te slaan. Deze code wordt gekoppeld aan de Lambda-functie en de API wordt gebruikt om de attributen op te halen die in de code zijn geconfigureerd.

Om een ​​S3-bucket te maken, zoekt u in de 'S3' service in de zoekbalk van de AWS-beheerconsole. Tik op de naam van de service in de weergegeven resultaten:

Klik op de S3-console op de “Emmer maken” optie om het proces te starten:

In de Algemene configuratie sectie, geef een globaal unieke identificatie op voor de bucket in de gemarkeerd tekstveld :

Door het behouden van de instellingen als standaard , Klik op de “Emmer maken” knop onderaan de interface:

Hierdoor wordt de emmer gemaakt. Om de code naar de S3-bucket te uploaden, hebben we nu een eenvoudige Node JS-code in GitHub opslagplaats. Download de code in de Zip-formaat :

Na het downloaden van de Zip bestand , ga naar S3-dashboard en kies de emmer. Klik in de volgende interface op de 'Uploaden' knop en uploaden de Zip bestand naar de emmer:

Kom meer te weten: Hoe objecten uploaden in Amazon Simple Storage Service?

Druk op 'Bestanden toevoegen' knop aan de rechterkant van de interface, naast de 'Map toevoegen' knop. Na het toevoegen van de Zip bestand naar de emmer, druk op de 'Uploaden' knop onderaan de interface:

De bestand is geweest succesvol geüpload :

Na uploaden het bestand naar de bucket, klik op de Voorwerp eigenschappen bekijken:

Klik op de “Kopieer S3-URI” knop. Dit wordt toegevoegd aan de Lambda-functie:

Ga naar de Lambda-dashboard en kies de Lambda-functie:

Scroll naar beneden naar de 'Code' sectie en tik op “Uploaden van” knop. Van de drop-down menu, Klik op de “Amazon S3-locatie” keuze:

Plak de “S3-URI” in het weergegeven dialoogvenster en klik op de 'Redden' knop:

Op de Lambda-functie-interface , scroll naar beneden naar de “Runtime-instellingen” en klik op de 'Bewerking' knop:

In de “Behandelaar” veld, bewerk de volgende configuraties. De “nodeapi” is de mapnaam die is geüpload naar de S3-bucket en index.js is het toegangspunt. Klik daarna op de 'Redden' knop:

Stap 4: Verificatie

Ga naar de API-gateway serviceconsole en klik op de “API” naam:

Nadat u de API hebt geselecteerd, klikt u op de “Fases” knop in de zijbalk en klik vervolgens op de implementatiefase, bijvoorbeeld eerste fase:

Kopieer de URL en start de Postbode tool op de lokale machine:

Maak een KRIJG verzoek in de Postbode en plak de URL erin. Na het klikken op de 'Versturen' knop, verkrijgen we de volgende resultaten:

Dat komt allemaal uit deze gids.

Conclusie

Als u de Node.js API wilt implementeren met de API-gateway, uploadt u code naar de S3-bucket, voegt u deze toe als handler en API-gateway als trigger voor de Lambda-functie. Het verzoek dat met de Postman wordt geïnitieerd, wordt via de API aan de Lambda-functie afgeleverd. Gebruik voor het maken van de API de API-gatewayservice van AWS. De S3-bucket die als handler aan de Lambda-functie is toegevoegd, levert de code voor de verwerking van het verzoek. De uitvoer wordt weergegeven op de console van de postbode. Dit artikel is een stapsgewijze zelfstudie voor het implementeren van de Node.js API met AWS API-gateway.