Hur distribuerar man ett serverlöst Node.js API med AWS API Gateway?

Hur Distribuerar Man Ett Serverlost Node Js Api Med Aws Api Gateway



AWS är en cloud computing-plattform med en stor portfölj av tjänster. Från datalagring till datamanipulation och dataanalys täcker dessa tjänster olika aspekter av IT-branschen. Idag stöder AWS även flera utvecklingsspråk och runtime-miljöer. Ett av de vanligaste exemplen på sådana tjänster är AWS Lambda

AWS Lambda är en händelsedriven datortjänst från AWS som låter sina användare exekvera sin kod utan att tillhandahålla eller hantera servrarna. Lambda hanterar effektivt all datorinfrastruktur och administration av resurserna. Det finns flera utvecklingsspråk som stöds av Lambda-tjänsten, t.ex. Go, Ruby, Python, etc. Lambda anses också vara en kostnadseffektiv tjänst eftersom den endast medför avgifter för den datortid som användaren förbrukar. Det tillkommer inga extra avgifter när koden som tillhandahålls för Lambdafunktionen inte är i exekverande tillstånd.

Läs mer : Komma igång med AWS Lambda







Snabb översikt



Den här artikeln illustrerar följande aspekter:



Vad är ett serverlöst ramverk?

Termen 'Serverlös' hänvisar till den terminologi där tillhandahållandet och underhållet av servrarna hanteras av antingen tredjepartsprogramvara eller molnleverantörer. Sådana ramar tillåter användare att fokusera på kärnverksamhetens logik istället för att underhålla servrarna. Idag har Serverless Frameworks uppmärksammats av tekniska jättar och erbjuder enorma fördelar.





Dessutom är detta också en kostnadseffektiv lösning eftersom servrarna tillhandahålls och hanteras av tjänsteleverantörerna. I AWS anses Lambda vara en serverlös tjänst då den bara kräver koden från användaren för att fungera på. Med AWS Lambda kan användare enkelt bygga och skala applikationerna i olika runtime-miljöer på ett kostnadseffektivt sätt.

Vad är ett API?

API är en akronym för 'Applikationsprogrammeringsgränssnitt'. Den formella introduktionen av API inkluderar att det är en uppsättning definitioner och protokoll som tillåter de två komponenterna i programvaran eller en applikation att utbyta användbar information för kommunikation.



En realtidsapplikation av API är att använda en webbläsare. Närhelst en användare söker efter en webbplats levereras begäran till servern där webbplatsen finns. Denna kommunikation mellan servern och webbläsaren sker via API:et.

Vad är API Gateway?

API Gateway är en fullt hanterad tjänst av AWS som liknar ett API-hanteringsverktyg. Genom att använda API-gatewayen kan utvecklare enkelt skapa, hantera, publicera och skala olika API:er. På liknande sätt tillåter API-gatewayen användare att kommunicera med de andra mikrotjänsterna som körs på serversidan. Den tar input från användaren, bearbetar den och dirigerar den sedan till lämpliga mikrotjänster. Dessa mikrotjänster kommer sedan att bearbeta denna indata för generering av utdata.

Vilka är de olika typerna av API i API Gateway?

API-gateway tillhandahåller hanteringstjänster för tre olika typer av API:er som nämns nedan:

HTTP API: Detta API används flitigt i webbutveckling som är begränsad till enbart klientsidan. Sådana API:er kan antingen klassificeras som privata eller offentliga.

Rest API: Termen REST står för 'Representation State Transfer API'. Det är ett av de mest använda tillvägagångssätten som skiljer applikationens frontend och backend åt. REST API:er är tillståndslösa till sin natur och är flexibla för utveckling och implementering.

WebSocket API: Sådana API:er används när socketkommunikation är inblandad. WebSocket API tillåter användare att skapa sockets för dubbelriktad full duplexkommunikation i webbutveckling. Dessa API:er är skrivna i JavaScript.

Hur man distribuerar en serverlös Node.js API med API Gateway?

För distributionen av en serverlös Node.js API med API Gateway kommer vi att använda S3-bucket, Lambda Function och API-gateway. S3-hinken kommer att innehålla koden för applikationen. Skopans unika URI kommer att tillhandahållas till Lambda-funktionen som hanterare. API-gatewayen kommer att läggas till som utlösare till Lambda-funktionen som kommer att bearbeta användarens input och tillhandahålla lämplig utdata.

Nedan följer stegen för att distribuera en serverlös Node.js API med API-gatewayen:

Steg 1: Skapa en Lambda-funktion

För att skapa en Lambda-funktion, gå till 'Lambda' service från AWS Management Console :

Läs mer: 'Hur man skapar en Lambda-funktion med Python Runtime' .

På Lambda Function-gränssnittet klickar du på 'Skapa funktion' knapp:

Från gränssnittet Skapa funktion väljer du 'Författare från grunden' alternativ:

Därefter kommer 'Grundläggande information' sektion. I det här avsnittet anger du namnet för Lambda-funktionen i 'Funktionsnamn' :

Klicka på 'Skapa funktion' knappen som finns längst ner i gränssnittet:

Här, den fungera Har skapats framgångsrikt :

Steg 2: Skapa API Gateway

Nästa steg är att skapa en API-gateway. För detta ändamål, gå till 'API Gateway' service från AWS Management Console :

Rulla ner API Gateway-gränssnittet och klicka på 'Bygga' alternativ från REST API blockera:

'Skapa API' gränssnitt, Välj det följande markerat alternativ . När vi bygger en Rest API från grunden har vi valt följande alternativ:

I den inställningar i samma gränssnitt, ange namnet för API:et i 'API-namn' textfält:

Klicka på 'Skapa API' knapp:

När du har skapat API:et klickar du på 'Handlingar' och välj följande markerade alternativ för att konfigurera resurserna och metoderna för API:t:

Ange sedan namnet på API:t i 'Resursnamn' textfält. I den Resursväg, användare kan ange sökvägen till resurserna. Denna angivna sökväg kommer sedan att kombineras med de ursprungliga metoderna för att hantera förfrågningar. Klicka på 'Skapa resurs' knapp:

När du har skapat resursen klickar du på 'Handlingar' fliken igen och välj 'Skapa resurs' metod för att definiera metoder och resurser i API:t:

Ange namnet på 'Resursnamn' fältet och klicka på 'Skapa resurs' knapp:

När du har konfigurerat de kapslade resurserna trycker du på 'Handlingar' knappen och klicka på 'Skapa metod' knappen från rullgardinsmenyn :

Vi vill testa hur vårt API fungerar genom att använda GET-förfrågan i Node.js. Därför väljer vi i gränssnittet för metoder 'SKAFFA SIG' begäran:

Efter att ha valt GET-förfrågan , Klicka på 'kolla upp' knapp för att bekräfta ändringar:

'SKAFFA SIG' metodgränssnitt, ange namnet för Lambda-funktionen som vi skapade tidigare och gör följande konfigurationer. Efter att träffa 'Spara' knapp för att bekräfta ändringar:

Efter att ha klickat på 'Spara' knappen visas följande dialogruta. Klicka på 'OK' knapp:

Skapa på samma sätt ytterligare en metod genom att följa liknande steg som vi har följt för den första metoden. Användare kan skapa flera metoder inom ett API baserat på deras krav. Efter att ha konfigurerat alla metoder, klicka på 'Handlingar' fliken och välj 'Deploy API' alternativ:

Detta kommer att visa följande dialogruta. I den 'Isättningsstadiet' ge detaljerna. Därefter kommer 'Artistnamn' fältet för att ange scennamnet. Klicka på 'Distribuera' knapp:

De API har varit skapat framgångsrikt :

Scrolla ner gränssnittet och klicka på 'Spara ändringar' knapp:

Steg 3: Skapa S3 Bucket

I det här steget kommer vi att skapa en hink för att lagra koden. Denna kod kommer att associeras med Lambda-funktionen och API:t kommer att användas för att hämta de attribut som konfigurerats inuti koden.

För att skapa en S3-hink, sök i 'S3' tjänsten i sökfältet i AWS Management Console. Tryck på tjänstens namn från de visade resultaten:

På S3-konsolen klickar du på 'Skapa hink' alternativ för att initiera processen:

I den Allmän konfiguration ange en globalt unik identifierare för hinken i markerade textfält :

Genom att behålla inställningar som standard , Klicka på 'Skapa hink' knappen längst ned i gränssnittet:

Detta kommer att skapa hinken. Nu, för att ladda upp koden till S3-hinken, har vi tillhandahållit en enkel Node JS-kod i GitHub förvaret. Ladda ner koden i Zip-format :

Efter att ha laddat ner Zip fil , gå till S3 instrumentpanel och välj hinken. På nästa gränssnitt, klicka på 'Ladda upp' knapp och ladda upp de Zip fil till hinken:

Läs mer: Hur laddar man upp objekt i Amazon Simple Storage Service?

Tryck på 'Lägga till filer' knappen placerad till höger om gränssnittet, intill 'Lägg till mapp' knapp. Efter att ha lagt till Zip fil till hinken, slå på 'Ladda upp' knappen längst ned i gränssnittet:

De fil har varit har laddats upp :

Efter laddar upp filen till hinken, klicka på Objekt för att se fastigheter:

Klicka på 'Kopiera S3 URI' knapp. Detta kommer att läggas till i Lambda-funktionen:

Gå till Lambda instrumentbräda och välj Lambda-funktionen:

Scrolla ner till 'Koda' sektionen och tryck på 'Ladda upp från' knapp. Från rullgardinsmenyn, Klicka på “Amazon S3 plats” alternativ:

Klistra in 'S3 URI' i den visade dialogrutan och klicka på 'Spara' knapp:

Lambdafunktionsgränssnitt , scrolla ner till 'Körtidsinställningar' och klicka på 'Redigera' knapp:

I den 'Hanterare' fältet, redigera följande konfigurationer. De 'nodeapi' är mappnamnet som laddats upp till S3-hinken och index.js är startpunkten. Klicka sedan på 'Spara' knapp:

Steg 4: Verifiering

Gå till API-gateway servicekonsolen och klicka på 'API' namn:

När du har valt API klickar du på 'Scenier' knappen från sidofältet och klicka sedan på distributionsstadiet, t.ex. första steget:

Kopiera URL och starta Brevbärare verktyg på den lokala maskinen:

Skapa en GET-förfrågan i Brevbärare och klistra in URL:en i den. Efter att ha klickat på 'Skicka' knappen får vi följande resultat:

Det är allt från den här guiden.

Slutsats

För att distribuera Node.js API med API-gateway, ladda upp kod till S3-bucket, lägg till den som en hanterare och API-gateway som en utlösare till Lambda Function. Begäran som initieras med hjälp av Postman kommer att levereras till Lambdafunktionen via API:n. För att skapa API, använd API-gatewaytjänsten för AWS. S3-skopan som lades till som hanterare till Lambda-funktionen kommer att tillhandahålla koden för bearbetningen av begäran. Utgången kommer att visas på Postmans konsol. Den här artikeln är en steg-för-steg-handledning för implementering av Node.js API med AWS API-gateway.