Hvordan implementerer man en serverløs Node.js API med AWS API Gateway?

Hvordan Implementerer Man En Serverlos Node Js Api Med Aws Api Gateway



AWS er ​​en cloud computing-platform med en bred portefølje af tjenester. Fra datalagring til datamanipulation og dataanalyse dækker disse tjenester forskellige aspekter af IT-industrien. I dag understøtter AWS også flere udviklingssprog og runtime-miljøer. Et af de mest almindelige eksempler på sådanne tjenester er AWS Lambda

AWS Lambda er en hændelsesdrevet computertjeneste af AWS, der giver dets brugere mulighed for at udføre deres kode uden at levere eller administrere serverne. Lambda håndterer effektivt al computerinfrastruktur og administration af ressourcerne. Der er flere udviklingssprog, der understøttes af Lambda-tjenesten, f.eks. Go, Ruby, Python, osv. Lambda betragtes også som en omkostningseffektiv tjeneste, da den kun medfører gebyrer for den computertid, brugeren bruger. Der er ingen ekstra gebyrer, når koden til Lambda-funktionen ikke er i eksekveringstilstand.

Læs mere : Kom godt i gang med AWS Lambda







Hurtig disposition



Denne artikel illustrerer følgende aspekter:



Hvad er et serverløst rammeværk?

Begrebet 'Serverløs' henviser til den terminologi, hvor levering og vedligeholdelse af serverne administreres af enten tredjepartssoftware eller cloud-udbydere. Sådanne rammer giver brugerne mulighed for at fokusere på kerneforretningslogikken i stedet for at vedligeholde serverne. I dag har Serverless Frameworks tiltrukket sig opmærksomhed fra tekniske giganter og tilbyder enorme fordele.





Desuden er dette også en omkostningseffektiv løsning, fordi serverne leveres og administreres af tjenesteudbyderne. I AWS betragtes Lambda som en serverløs tjeneste, da den kun kræver koden fra brugeren at operere på. Med AWS Lambda kan brugerne nemt bygge og skalere applikationerne i forskellige runtime-miljøer på en omkostningseffektiv måde.

Hvad er en API?

API er et akronym for 'Applikationsprogrammeringsgrænseflade'. Den formelle introduktion af API inkluderer, at det er et sæt definitioner og protokoller, der tillader de to komponenter af software eller en applikation at udveksle nyttige oplysninger til kommunikation.



En realtidsanvendelse af API er ved at bruge en webbrowser. Når en bruger søger efter et websted, bliver anmodningen leveret til den server, hvor webstedet ligger. Denne kommunikation mellem serveren og browseren foregår via API'et.

Hvad er API Gateway?

API Gateway er en fuldt administreret tjeneste af AWS, som ligner et API Management-værktøj. Ved at bruge API-gatewayen kan udviklere nemt oprette, administrere, udgive og skalere forskellige API'er. På samme måde giver API-gatewayen brugere mulighed for at kommunikere med de andre mikrotjenester, der kører på serversiden. Det tager input fra brugeren, behandler det og dirigerer det derefter til de relevante mikrotjenester. Disse mikrotjenester vil derefter behandle dette input til outputgenerering.

Hvad er de forskellige typer API i API Gateway?

API-gateway leverer administrationstjenester til tre forskellige typer API'er som nævnt nedenfor:

HTTP API: Denne API bruges i vid udstrækning i webudvikling, som kun er begrænset til klientsiden. Sådanne API'er kan enten klassificeres som private eller offentlige.

Rest API: Udtrykket REST står for 'Representation State Transfer API'. Det er en af ​​de mest almindeligt anvendte tilgange, der adskiller frontend og backend af applikationen. REST API'er er statsløse og fleksible til udvikling og implementering.

WebSocket API: Sådanne API'er bruges, når socket-kommunikation er involveret. WebSocket API giver brugerne mulighed for at skabe sockets til tovejs fuld duplex kommunikation i webudvikling. Disse API'er er skrevet i JavaScript.

Hvordan implementerer man en serverløs Node.js API med API Gateway?

Til udrulningen af ​​en serverløs Node.js API med API Gateway vil vi bruge S3 bucket, Lambda Function og API gateway. S3-bøtten vil indeholde applikationens kode. Den unikke URI for skovlen vil blive leveret til Lambda-funktionen som handler. API-gatewayen vil blive tilføjet som trigger til Lambda-funktionen, som behandler brugerens input og giver det passende output.

Nedenfor er trinene til implementering af en serverløs Node.js API med API-gatewayen:

Trin 1: Opret en Lambda-funktion

For at oprette en Lambda-funktion skal du gå til “Lambda” service fra AWS Management Console :

Lær mere: 'Sådan opretter du en Lambda-funktion med Python Runtime' .

På Lambda Function-grænsefladen skal du klikke på 'Opret funktion' knap:

Fra Create Function-grænsefladen skal du vælge 'Forfatter fra bunden' mulighed:

Dernæst kommer 'Grundlæggende oplysninger' afsnit. I dette afsnit skal du angive navnet på Lambda-funktionen i 'Funktionsnavn' :

Klik på 'Opret funktion' knap placeret i bunden af ​​grænsefladen:

Her, den fungere er blevet oprettet succesfuldt :

Trin 2: Opret API Gateway

Det næste trin er at oprette en API-gateway. Til dette formål skal du få adgang til 'API Gateway' service fra AWS Management Console :

Rul ned i API Gateway-grænsefladen, og klik på 'Byg' mulighed fra REST API blok:

På den 'Opret API' grænseflade, Vælg det følgende fremhævet mulighed . Mens vi bygger en Rest API fra bunden har vi valgt følgende muligheder:

I den Indstillinger sektion på den samme grænseflade, angiv navnet på API'en i 'API-navn' tekstfelt:

Klik på 'Opret API' knap:

Når du har oprettet API'en, skal du klikke på 'Handlinger' knappen og vælg de følgende fremhævede muligheder for at konfigurere ressourcerne og metoderne for API'en:

Angiv derefter navnet på API'en i 'Ressourcenavn' tekstfelt. I den Ressourcesti, brugere kan angive stien til ressourcerne. Denne specificerede sti vil derefter blive kombineret med de originale metoder til at håndtere anmodninger. Klik på 'Opret ressource' knap:

Når du har oprettet ressourcen, skal du klikke på 'Handlinger' fanen igen og vælg 'Opret ressource' metode til at definere metoder og ressourcer inde i API'en:

Angiv navnet på 'Ressourcenavn' feltet og klik på 'Opret ressource' knap:

Når du har konfigureret de indlejrede ressourcer, skal du trykke på 'Handlinger' knappen og klik på 'Opret metode' knappen fra Drop down menu :

Vi ønsker at teste, hvordan vores API fungerer ved at bruge FÅ anmodning i Node.js. Derfor vil vi i metodegrænsefladen vælge 'FÅ' anmodning:

Efter at have valgt FÅ anmodning , klik på 'kontrollere' knap for at bekræfte ændringer:

På den 'FÅ' metodegrænseflade, angiv navnet på Lambda-funktionen, som vi oprettede tidligere, og lav følgende konfigurationer. Efter at ramte 'Gemme' knap for at bekræfte ændringer:

Efter at have klikket på 'Gemme' knappen, vises følgende dialogboks. Klik på 'OKAY' knap:

På samme måde skal du oprette en metode mere ved at følge lignende trin, som vi har fulgt for den første metode. Brugere kan oprette flere metoder inden for en API baseret på deres krav. Når du har konfigureret alle metoder, skal du klikke på 'Handlinger' fanen og vælg 'Implementer API' mulighed:

Dette vil vise følgende dialogboks. I den 'Implementeringsfase' give detaljerne. Dernæst kommer 'Kunstnernavn' felt til angivelse af scenenavnet. Klik på 'Indsætte' knap:

Det API har været oprettet med succes :

Rul ned grænsefladen og klik på 'Gem ændringer' knap:

Trin 3: Opret S3 Bucket

I dette trin vil vi oprette en bøtte til at gemme koden. Denne kode vil blive knyttet til Lambda-funktionen, og API'et vil blive brugt til at hente de attributter, der er konfigureret i koden.

For at oprette en S3-spand skal du søge i 'S3' tjeneste i søgefeltet på AWS Management Console. Tryk på tjenestens navn fra de viste resultater:

På S3-konsollen skal du klikke på 'Opret spand' mulighed for at starte processen:

I den Generel konfiguration sektionen, skal du angive en globalt unik identifikator for bøtten i fremhævet tekstfelt :

Ved at beholde indstillinger som Standard , klik på 'Opret spand' knap i bunden af ​​grænsefladen:

Dette vil skabe spanden. For nu at uploade koden til S3-bøtten har vi givet en simpel Node JS-kode i GitHub depot. Download koden i Zip-format :

Efter at have downloadet Zip-fil , gå til S3 Dashboard og vælg spanden. På den næste grænseflade skal du klikke på 'Upload' knap og upload det Zip-fil til spanden:

Lær mere: Hvordan uploader man objekter i Amazon Simple Storage Service?

Tryk på 'Tilføj filer' knappen placeret til højre for grænsefladen, ved siden af 'Tilføj mappe' knap. Efter tilføjelse af Zip-fil til spanden, ram på 'Upload' knap i bunden af ​​grænsefladen:

Det fil har været succesfuldt uploadet :

Efter uploader filen til bøtten, klik på Objekt for at se ejendomme:

Klik på 'Kopier S3 URI' knap. Dette vil blive tilføjet til Lambda-funktionen:

Gå til Lambda Dashboard og vælg Lambda-funktionen:

Rul ned til 'Kode' sektionen og tryk på 'Upload fra' knap. Fra Drop down menu, klik på “Amazon S3 placering” mulighed:

Indsæt 'S3 URI' i den viste dialogboks, og klik på 'Gemme' knap:

På den Lambdafunktions interface , rul ned til 'Køretidsindstillinger' og klik på 'Redigere' knap:

I den 'Behandler' felt, skal du redigere følgende konfigurationer. Det 'nodeapi' er mappenavnet, der er uploadet til S3-bøtten, og index.js er indgangspunktet. Klik derefter på 'Gemme' knap:

Trin 4: Bekræftelse

Gå til API gateway servicekonsol og klik på 'API' navn:

Når du har valgt API, skal du klikke på 'Niveauer' knappen fra sidebjælken, og klik derefter på implementeringsstadiet, f.eks. første trin:

Kopier URL og start Postbud værktøj på den lokale maskine:

Lave en FÅ anmodning i Postbud og indsæt URL'en i den. Efter at have klikket på 'Sende' knappen, får vi følgende resultater:

Det er alt fra denne guide.

Konklusion

For at implementere Node.js API med API-gatewayen skal du uploade kode til S3-bøtten, tilføje den som en handler og API-gateway som en trigger til Lambda Function. Forespørgslen påbegyndt ved hjælp af postbudet vil blive leveret til Lambda-funktionen via API'et. For at oprette API'en skal du bruge API-gateway-tjenesten fra AWS. S3-spanden, der blev tilføjet som handler til Lambda-funktionen, vil give koden til behandlingen af ​​anmodningen. Outputtet vil blive vist på Postmands konsol. Denne artikel er en trin-for-trin vejledning til implementering af Node.js API med AWS API-gateway.