Paano Mag-deploy ng Serverless Node.js API na may AWS API Gateway?

Paano Mag Deploy Ng Serverless Node Js Api Na May Aws Api Gateway



Ang AWS ay isang cloud computing platform na may malawak na portfolio ng mga serbisyo. Mula sa pag-iimbak ng data hanggang sa pagmamanipula ng data at pagsusuri ng data, saklaw ng mga serbisyong ito ang iba't ibang aspeto ng Industriya ng IT. Sa ngayon, sinusuportahan din ng AWS ang ilang mga development language at runtime environment. Ang isa sa mga pinakakaraniwang halimbawa ng naturang mga serbisyo ay ang AWS Lambda

AWS Lambda ay isang serbisyo ng computing na hinimok ng kaganapan ng AWS na nagbibigay-daan sa mga user nito na isagawa ang kanilang code nang hindi ibinibigay o pinamamahalaan ang mga server. Mahusay na pinangangasiwaan ng Lambda ang lahat ng imprastraktura sa pag-compute at pangangasiwa ng mga mapagkukunan. Mayroong maraming mga wika sa pag-develop na sinusuportahan ng serbisyo ng Lambda hal., Go, Ruby, Python, atbp. Ang Lambda ay itinuturing din na isang cost-efficient na serbisyo dahil nagkakaroon lamang ito ng mga singil para sa oras ng pag-compute na ginagamit ng user. Walang karagdagang singil kapag ang code na ibinigay sa Lambda function ay wala sa executing state.

Magbasa pa : Pagsisimula Sa AWS Lambda







Mabilis na Balangkas



Inilalarawan ng artikulong ito ang mga sumusunod na aspeto:



Ano ang Serverless Framework?

Ang termino “Walang Server” ay tumutukoy sa terminolohiya kung saan ang probisyon at pagpapanatili ng mga server ay pinamamahalaan ng alinman sa third-party na software o cloud provider. Ang ganitong mga Framework ay nagbibigay-daan sa mga user na tumuon sa pangunahing lohika ng negosyo sa halip na panatilihin ang mga server. Ngayon, ang Serverless Frameworks ay nakakuha ng atensyon ng mga higanteng Tech at nag-aalok ng napakalaking benepisyo.





Higit pa rito, isa rin itong cost-effective na solusyon dahil ang mga server ay ibinibigay at pinamamahalaan ng mga service provider. Sa AWS, ang Lambda ay itinuturing na isang Serverless na serbisyo dahil nangangailangan lamang ito ng code mula sa user para gumana. Sa AWS Lambda, madaling mabuo at masusukat ng mga user ang mga application sa iba't ibang runtime environment sa isang cost-effective na paraan.

Ano ang isang API?

API ay isang acronym para sa 'Application Programming Interface'. Kasama sa pormal na pagpapakilala ng API na ito ay isang hanay ng mga kahulugan at protocol na nagpapahintulot sa dalawang bahagi ng software o isang application na makipagpalitan ng kapaki-pakinabang na impormasyon para sa komunikasyon.



Ang isang real-time na application ng API ay sa pamamagitan ng paggamit ng isang web browser. Sa tuwing maghahanap ang isang user para sa isang website, ang kahilingan ay inihahatid sa server kung saan nakatira ang website. Ang komunikasyong ito sa pagitan ng server at browser ay nangyayari sa pamamagitan ng API.

Ano ang API Gateway?

Ang API Gateway ay isang ganap na pinamamahalaang serbisyo ng AWS na katulad ng isang tool sa Pamamahala ng API. Sa pamamagitan ng paggamit ng API gateway, ang mga developer ay madaling makagawa, mamahala, mag-publish, at mag-scale ng iba't ibang mga API. Katulad nito, pinapayagan ng API gateway ang mga user na makipag-ugnayan sa iba pang mga microservice na tumatakbo sa gilid ng server. Kinukuha nito ang input mula sa user, pinoproseso ito, at pagkatapos ay ididirekta ito sa naaangkop na mga microservice. Ipoproseso ng mga microservice na ito ang input na ito para sa pagbuo ng output.

Ano ang Iba't ibang Uri ng API sa API Gateway?

Ang API gateway ay nagbibigay ng mga serbisyo sa pamamahala para sa tatlong magkakaibang uri ng mga API tulad ng nabanggit sa ibaba:

HTTP API: Ang API na ito ay malawakang ginagamit sa web development na limitado sa client-side lamang. Ang mga nasabing API ay maaaring iuri bilang pribado o pampubliko.

Rest API: Ang terminong REST ay nangangahulugang “Representation State Transfer API”. Isa ito sa mga pinakakaraniwang ginagamit na diskarte na naghihiwalay sa frontend at backend ng application. Ang mga REST API ay walang estado sa kalikasan at nababaluktot para sa pagbuo at pagpapatupad.

WebSocket API: Ang mga naturang API ay ginagamit kapag may kasamang socket communication. Binibigyang-daan ng WebSocket API ang mga user na lumikha ng mga socket para sa bi-directional full duplex na komunikasyon sa Web development. Ang mga API na ito ay nakasulat sa JavaScript.

Paano Mag-deploy ng Serverless Node.js API Gamit ang API Gateway?

Para sa deployment ng Serverless Node.js API na may API Gateway, gagamitin namin ang S3 bucket, Lambda Function, at API gateway. Ang S3 bucket ay maglalaman ng code ng application. Ang natatanging URI ng bucket ay ibibigay sa Lambda Function bilang isang handler. Ang API gateway ay idaragdag bilang trigger sa Lambda Function na magpoproseso ng input ng user at magbibigay ng naaangkop na output.

Nasa ibaba ang mga hakbang para sa pag-deploy ng Serverless Node.js API gamit ang API gateway:

Hakbang 1: Gumawa ng Lambda Function

Upang lumikha ng Lambda Function, i-access ang “Lambda” serbisyo mula sa AWS Management Console :

Matuto pa: 'Paano Gumawa ng Lambda Function Gamit ang Python Runtime' .

Sa interface ng Lambda Function, mag-click sa 'Gumawa ng function' pindutan:

Mula sa interface ng Lumikha ng Function, piliin ang 'May-akda mula sa simula' opsyon:

Susunod na dumating ang 'Batayang impormasyon' seksyon. Sa seksyong ito, ibigay ang pangalan para sa function ng Lambda sa 'Pangalan ng function' :

Mag-click sa 'Gumawa ng function' button na matatagpuan sa ibaba ng interface:

Dito, ang function ay nilikha matagumpay :

Hakbang 2: Lumikha ng API Gateway

Ang susunod na hakbang ay upang lumikha ng isang API Gateway. Para sa layuning ito, i-access ang “API Gateway” serbisyo mula sa AWS Management Console :

Mag-scroll pababa sa interface ng API Gateway at mag-click sa 'Bumuo' opsyon mula sa REST API harangan:

Sa 'Gumawa ng API' interface, pumili ang mga sumusunod naka-highlight na opsyon . Habang nagtatayo kami ng isang Rest API mula sa simula, pinili namin ang mga sumusunod na opsyon:

Nasa Mga setting seksyon sa parehong interface, ibigay ang pangalan para sa API sa “Pangalan ng API” field ng teksto:

Mag-click sa 'Gumawa ng API' pindutan:

Pagkatapos ng matagumpay na paglikha ng API, mag-click sa 'Mga Aksyon' button at piliin ang mga sumusunod na naka-highlight na opsyon para i-configure ang mga mapagkukunan at pamamaraan ng API:

Susunod, ibigay ang pangalan ng API sa 'Pangalan ng Mapagkukunan' field ng teksto. Nasa Resource Path, maaaring tukuyin ng mga user ang landas ng mga mapagkukunan. Ang tinukoy na landas na ito ay isasama sa mga orihinal na pamamaraan upang mahawakan ang mga kahilingan. I-click ang 'Gumawa ng Resource' pindutan:

Pagkatapos gawin ang Resource, mag-click sa 'Mga Aksyon' tab muli at piliin ang 'Gumawa ng Resource' paraan upang tukuyin ang mga pamamaraan at mapagkukunan sa loob ng API:

Ibigay ang pangalan ng 'Pangalan ng Mapagkukunan' field at mag-click sa 'Gumawa ng Resource' pindutan:

Pagkatapos i-configure ang mga nested na mapagkukunan, i-tap ang 'Mga Aksyon' button at i-click ang 'Lumikha ng Paraan' button mula sa drop-down na menu :

Gusto naming subukan ang paggana ng aming API sa pamamagitan ng paggamit ng GET kahilingan sa Node.js. Samakatuwid, sa interface ng Mga Paraan, pipiliin namin ang “KUMUHA” hiling:

Matapos piliin ang GET kahilingan , i-click ang 'suriin' button para kumpirmahin ang mga pagbabago:

Sa “KUMUHA” method interface, ibigay ang pangalan para sa Lambda function na ginawa namin kanina at gawin ang mga sumusunod na configuration. Pagkatapos ay pindutin ang 'I-save' button para kumpirmahin ang mga pagbabago:

Matapos i-click ang 'I-save' button, lalabas ang sumusunod na dialog box. I-click ang “OK” pindutan:

Katulad nito, lumikha ng isa pang paraan sa pamamagitan ng pagsunod sa mga katulad na hakbang tulad ng sinundan namin para sa unang paraan. Ang mga user ay maaaring gumawa ng maraming pamamaraan sa loob ng isang API batay sa kanilang mga kinakailangan. Pagkatapos i-configure ang lahat ng Paraan, mag-click sa 'Mga Aksyon' tab at piliin ang 'I-deploy ang API' opsyon:

Ipapakita nito ang sumusunod na dialog box. Nasa 'Yugto ng deployment' ibigay ang mga detalye. Susunod na dumating ang 'Pangalan ng entablado' field para sa pagtukoy sa pangalan ng Stage. Mag-click sa 'I-deploy' pindutan:

Ang API ay matagumpay na nalikha :

Mag-scroll pababa ang interface at mag-click sa 'I-save ang mga pagbabago' pindutan:

Hakbang 3: Gumawa ng S3 Bucket

Sa hakbang na ito, gagawa kami ng bucket para iimbak ang code. Ang code na ito ay iuugnay sa Lambda function at ang API ay gagamitin para kunin ang mga attribute na na-configure sa loob ng code.

Para gumawa ng S3 bucket, hanapin ang 'S3' serbisyo sa search bar ng AWS Management Console. I-tap ang pangalan ng serbisyo mula sa mga ipinapakitang resulta:

Sa S3 console, i-click ang 'Gumawa ng bucket' opsyon upang simulan ang proseso:

Nasa Pangkalahatang pagsasaayos seksyon, magbigay ng globally unique identifier para sa bucket sa naka-highlight na field ng teksto :

Sa pamamagitan ng pagsunod sa mga setting bilang default , i-click ang 'Gumawa ng bucket' button sa ibaba ng interface:

Gagawa ito ng balde. Ngayon, para i-upload ang code sa S3 bucket, nagbigay kami ng a simpleng Node JS code sa GitHub imbakan. I-download ang code sa Format ng zip :

Matapos i-download ang ZIP file , pumunta sa S3 Dashboard at piliin ang balde. Sa susunod na interface, mag-click sa “Mag-upload” pindutan at mag-upload ang ZIP file sa balde:

Matuto pa: Paano Mag-upload ng Mga Bagay sa Amazon Simple Storage Service?

I-tap ang 'Magdagdag ng mga file' button na matatagpuan sa kanan ng interface, malapit sa 'Magdagdag ng folder' pindutan. Matapos idagdag ang ZIP file sa balde, pindutin ang “Mag-upload” button sa ibaba ng interface:

Ang file ay matagumpay na na-upload :

Pagkatapos pag-upload ang file sa bucket, i-click ang Bagay upang tingnan ang mga katangian:

Mag-click sa “Kopyahin ang S3 URI” pindutan. Ito ay idaragdag sa Lambda function:

Pumunta sa Dashboard ng Lambda at piliin ang Lambda function:

Mag-scroll pababa sa “Code” seksyon at i-tap ang “Mag-upload mula sa” pindutan. Galing sa drop-down na menu, i-click ang 'Lokasyon ng Amazon S3' opsyon:

Idikit ang “S3 URI” sa ipinapakitang dialog box at i-click ang 'I-save' pindutan:

Sa Interface ng Lambda Function , mag-scroll pababa sa 'Mga setting ng runtime' at i-click ang 'I-edit' pindutan:

Nasa “Handler” field, i-edit ang mga sumusunod na configuration. Ang “nodeapi” ay ang pangalan ng folder na na-upload sa S3 bucket at index.js ang entry point. Pagkatapos nito, mag-click sa 'I-save' pindutan:

Hakbang 4: Pag-verify

Pumunta sa gateway ng API service console at mag-click sa “API” pangalan:

Pagkatapos piliin ang API, mag-click sa 'Mga Yugto' button mula sa sidebar at pagkatapos ay i-click ang yugto ng pag-deploy hal., unang yugto:

Kopyahin ang URL at ilunsad ang Postman tool sa lokal na makina:

Gumawa ng GET kahilingan nasa Postman at i-paste ang URL dito. Matapos i-click ang 'Ipadala' button, makuha namin ang mga sumusunod na resulta:

Iyon ay mula sa gabay na ito.

Konklusyon

Para i-deploy ang Node.js API gamit ang API gateway, mag-upload ng code sa S3 bucket, idagdag ito bilang handler, at API gateway bilang trigger sa Lambda Function. Ang kahilingang pinasimulan gamit ang Postman ay ihahatid sa Lambda Function sa pamamagitan ng API. Para sa paggawa ng API, gamitin ang API gateway service ng AWS. Ang S3 bucket na idinagdag bilang handler sa Lambda Function ay magbibigay ng code para sa pagproseso ng kahilingan. Ipapakita ang output sa console ng Postman. Ang artikulong ito ay isang step-by-step na tutorial para sa pagpapatupad ng Node.js API na may AWS API gateway.