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

Hvordan Distribuere En Serverlos Node Js Api Med Aws Api Gateway



AWS er ​​en cloud computing-plattform med en enorm portefølje av tjenester. Fra datalagring til datamanipulering og dataanalyse dekker disse tjenestene ulike aspekter av IT-bransjen. I dag støtter AWS også flere utviklingsspråk og kjøretidsmiljøer. Et av de vanligste eksemplene på slike tjenester er AWS Lambda

AWS Lambda er en hendelsesdrevet databehandlingstjeneste av AWS som lar brukerne kjøre koden deres uten å levere eller administrere serverne. Lambda håndterer effektivt all datainfrastruktur og administrasjon av ressursene. Det er flere utviklingsspråk som støttes av Lambda-tjenesten, f.eks. Go, Ruby, Python, etc. Lambda regnes også som en kostnadseffektiv tjeneste, da den kun påløper kostnader for datatiden brukeren bruker. Det er ingen ekstra kostnader når koden som er gitt til Lambda-funksjonen ikke er i utførelsestilstand.

Les mer : Komme i gang med AWS Lambda







Rask oversikt



Denne artikkelen illustrerer følgende aspekter:



Hva er et serverløst rammeverk?

Begrepet 'Serverløst' refererer til terminologien der levering og vedlikehold av serverne administreres av enten tredjepartsprogramvare eller skyleverandører. Slike rammeverk lar brukere fokusere på kjernevirksomhetslogikk i stedet for å vedlikeholde serverne. I dag har Serverless Frameworks tiltrukket seg oppmerksomheten til tekniske giganter og tilbyr enorme fordeler.





Videre er dette også en kostnadseffektiv løsning fordi serverne leveres og administreres av tjenesteleverandørene. I AWS regnes Lambda som en serverløs tjeneste da den kun krever koden fra brukeren for å operere på. Med AWS Lambda kan brukere enkelt bygge og skalere applikasjonene i forskjellige kjøretidsmiljøer på en kostnadseffektiv måte.

Hva er en API?

API er et akronym for 'Applikasjonsprogrammeringsgrensesnitt'. Den formelle introduksjonen av API inkluderer at det er et sett med definisjoner og protokoller som lar de to komponentene av programvare eller en applikasjon utveksle nyttig informasjon for kommunikasjon.



En sanntidsapplikasjon av API er ved å bruke en nettleser. Hver gang en bruker søker etter et nettsted, blir forespørselen levert til serveren der nettstedet ligger. Denne kommunikasjonen mellom serveren og nettleseren skjer gjennom API.

Hva er API Gateway?

API Gateway er en fullstendig administrert tjeneste av AWS som ligner på et API Management-verktøy. Ved å bruke API-gatewayen kan utviklere enkelt opprette, administrere, publisere og skalere forskjellige APIer. På samme måte lar API-gatewayen brukere kommunisere med de andre mikrotjenestene som kjører på serversiden. Den tar innspillene fra brukeren, behandler dem og sender dem deretter til de aktuelle mikrotjenestene. Disse mikrotjenestene vil deretter behandle denne inngangen for produksjon av utdata.

Hva er de forskjellige typene API i API Gateway?

API-gateway tilbyr administrasjonstjenester for tre forskjellige typer APIer som nevnt nedenfor:

HTTP API: Denne API-en er mye brukt i webutvikling som er begrenset til kun klientsiden. Slike API-er kan enten klassifiseres som private eller offentlige.

Rest API: Begrepet REST står for 'Representation State Transfer API'. Det er en av de mest brukte tilnærmingene som skiller frontend og backend av applikasjonen. REST APIer er statsløse og er fleksible for utvikling og implementering.

WebSocket API: Slike API-er brukes når socketkommunikasjon er involvert. WebSocket API lar brukere lage sockets for toveis full duplekskommunikasjon i webutvikling. Disse API-ene er skrevet i JavaScript.

Hvordan distribuere en serverløs Node.js API med API-gateway?

For distribusjon av en Serverless Node.js API med API Gateway, vil vi bruke S3-bøtten, Lambda-funksjonen og API-gatewayen. S3-bøtten vil inneholde koden til applikasjonen. Den unike URI-en til skuffen vil bli gitt til Lambda-funksjonen som handler. API-gatewayen vil bli lagt til som utløser til Lambda-funksjonen som vil behandle brukerens input og gi riktig utgang.

Nedenfor er trinnene for å distribuere en serverløs Node.js API med API-gatewayen:

Trinn 1: Lag en Lambda-funksjon

For å opprette en Lambda-funksjon, gå til 'Lambda' tjeneste fra AWS-administrasjonskonsoll :

Lære mer: 'Hvordan lage en Lambda-funksjon med Python Runtime' .

På Lambda Function-grensesnittet klikker du på 'Opprett funksjon' knapp:

Fra Create Function-grensesnittet velger du «Forfatter fra bunnen av» alternativ:

Neste kommer 'Grunnleggende informasjon' seksjon. I denne delen oppgir du navnet på Lambda-funksjonen i 'Funksjonsnavn' :

Klikk på 'Opprett funksjon' knapp nederst i grensesnittet:

Her, den funksjon har blitt skapt vellykket :

Trinn 2: Opprett API-gateway

Det neste trinnet er å lage en API-gateway. For dette formålet, gå til 'API-gateway' tjeneste fra AWS-administrasjonskonsoll :

Rull ned API Gateway-grensesnittet og klikk på 'Bygge' alternativ fra REST API blokkere:

'Opprett API' grensesnitt, plukke ut følgende uthevet alternativ . Mens vi bygger en Rest API fra bunnen av har vi valgt følgende alternativer:

I Innstillinger i det samme grensesnittet, oppgi navnet på API-en i 'API-navn' tekstfelt:

Klikk på 'Opprett API' knapp:

Etter å ha opprettet API, klikker du på 'Handlinger' og velg følgende uthevede alternativer for å konfigurere ressursene og metodene til API:

Deretter oppgir du navnet på API-en i 'Ressursnavn' tekstfelt. I Ressursbane, brukere kan spesifisere banen til ressursene. Denne angitte banen vil deretter bli kombinert med de opprinnelige metodene for å håndtere forespørsler. Klikk på 'Opprett ressurs' knapp:

Etter å ha opprettet ressursen, klikk på 'Handlinger' fanen igjen og velg 'Opprett ressurs' metode for å definere metoder og ressurser inne i APIen:

Oppgi navnet på 'Ressursnavn' feltet og klikk på 'Opprett ressurs' knapp:

Etter å ha konfigurert de nestede ressursene, trykk på 'Handlinger' knappen og klikk på 'Opprett metode' knappen fra nedtrekksmenyen :

Vi ønsker å teste funksjonen til API-en vår ved å bruke FÅ forespørsel i Node.js. Derfor, i metodegrensesnittet, vil vi velge 'FÅ' be om:

Etter å ha valgt FÅ forespørsel , Klikk på 'Sjekk' knappen for å bekrefte endringer:

'FÅ' metodegrensesnitt, oppgi navnet på Lambda-funksjonen som vi opprettet tidligere og gjør følgende konfigurasjoner. Etter det traff 'Lagre' knappen for å bekrefte endringer:

Etter å ha klikket på 'Lagre' knappen, vil følgende dialogboks vises. Klikk på 'OK' knapp:

På samme måte oppretter du en metode til ved å følge lignende trinn som vi har fulgt for den første metoden. Brukere kan lage flere metoder innenfor et API basert på deres krav. Etter å ha konfigurert alle metodene, klikk på 'Handlinger' og velg «Deploy API» alternativ:

Dette vil vise følgende dialogboks. I «Implementeringsstadiet» oppgi detaljene. Neste kommer 'Artistnavnet' feltet for å spesifisere scenenavnet. Klikk på 'Utplassere' knapp:

De API har vært opprettet vellykket :

Bla nedover grensesnittet og klikk på 'Lagre endringer' knapp:

Trinn 3: Lag S3-bøtten

I dette trinnet skal vi lage en bøtte for å lagre koden. Denne koden vil bli assosiert med Lambda-funksjonen og API-en vil bli brukt til å hente attributtene som er konfigurert inne i koden.

For å lage en S3-bøtte, søk i 'S3' tjeneste i søkefeltet til AWS-administrasjonskonsoll. Trykk på tjenestens navn fra de viste resultatene:

På S3-konsollen klikker du på 'Opprett bøtte' alternativ for å starte prosessen:

I Generell konfigurasjon oppgi en globalt unik identifikator for bøtte i uthevet tekstfelt :

Ved å beholde innstillinger som misligholde , Klikk på 'Opprett bøtte' knappen nederst i grensesnittet:

Dette vil lage bøtta. Nå, for å laste opp koden til S3-bøtten, har vi gitt en enkel Node JS-kode i GitHub oppbevaringssted. Last ned koden i Zip-format :

Etter å ha lastet ned Zip-fil , gå til S3 Dashboard og velg bøtte. På neste grensesnitt klikker du på 'Laste opp' knapp og laste opp de Zip-fil til bøtta:

Lære mer: Hvordan laste opp objekter i Amazon Simple Storage Service?

Trykk på 'Legg til filer' knappen plassert til høyre for grensesnittet, ved siden av 'Legg til mappe' knapp. Etter å ha lagt til Zip-fil til bøtta, trykk på 'Laste opp' knappen nederst i grensesnittet:

De fil har vært lastet opp :

Etter laster opp filen til bøtta, klikk på Gjenstand for å se eiendommer:

Klikk på 'Kopier S3 URI' knapp. Dette vil bli lagt til Lambda-funksjonen:

Gå til Lambda Dashboard og velg Lambda-funksjonen:

Rull ned til 'Kode' og trykk på «Last opp fra» knapp. Fra nedtrekksmenyen, Klikk på “Amazon S3 plassering” alternativ:

Lim inn «S3 URI» i den viste dialogboksen og klikk på 'Lagre' knapp:

Lambdafunksjonsgrensesnitt , bla ned til 'Kjøretidsinnstillinger' og klikk på 'Redigere' knapp:

I 'Handler' feltet, rediger følgende konfigurasjoner. De 'nodeapi' er mappenavnet som er lastet opp til S3-bøtten og index.js er inngangspunktet. Etter det klikker du på 'Lagre' knapp:

Trinn 4: Verifisering

Gå til API-gateway servicekonsollen og klikk på 'API' Navn:

Etter å ha valgt API, klikk på «Stages» knappen fra sidefeltet og klikk deretter på distribusjonsstadiet, f.eks. første trinn:

Kopier URL og start Postbud verktøy på den lokale maskinen:

Lage en FÅ forespørsel i Postbud og lim inn URL-en i den. Etter å ha klikket på 'Sende' knappen, får vi følgende resultater:

Det er alt fra denne guiden.

Konklusjon

For å distribuere Node.js API med API-gatewayen, last opp kode til S3-bøtten, legg den til som en behandler og API-gateway som en trigger til Lambda Function. Forespørselen initiert ved hjelp av postmannen vil bli levert til Lambda-funksjonen gjennom API. For å lage API, bruk API-gateway-tjenesten til AWS. S3-bøtten som ble lagt til som handler i Lambda-funksjonen vil gi koden for behandlingen av forespørselen. Utgangen vil vises på Postmans konsoll. Denne artikkelen er en trinn-for-trinn-veiledning for implementering av Node.js API med AWS API-gateway.