AWS Lambda Tutorial: Ang Iyong Patnubay Sa Amazon Serverless Computing



Inilalarawan ng AWS Lambda Tutorial na ito ang Serverless Compute Platform ng AWS na sumasaklaw sa mga detalye tungkol sa pag-andar ng Lambda, Pinagmulan ng Kaganapan, Pagpepresyo ng Lambda na may isang kaso ng paggamit.

AWS Lambda Tutorial

Ngayon ay pag-uusapan natin ang tungkol sa AWS Lambda. Ang AWS Lambda ay isang serbisyo sa compute na inaalok ng Amazon. Dapat kang maging mausisa dahil maraming iba pang mga serbisyo sa compute mula sa AWS, tulad ng AWS EC2, AWS Elastic Beanstalk, AWS Opsworks atbp, kung gayon bakit isa pang serbisyo sa compute? Sa AWS Lambda tutorial na ito matutuklasan mo kung ano ang AWS Lambda, kung bakit ito ginagamit at kung aling mga kaso ng paggamit ang dapat mong isaalang-alang ito.

Tingnan natin kung paano tinukoy ng Amazon ang AWS Lambda at pagkatapos ay magsasagawa kami ng isang malalim na pagsisid sa mga pangunahing konsepto, maunawaan ang isang kaso ng paggamit na may hands-on sa huli.





Lambda Serverless computing - aws lambda tutorial

Ano ang AWS Lambda?

Ipinaliwanag ng Amazon, ang AWS Lambda (& lambda) bilang isang 'serverless' compute service, nangangahulugang ang mga developer, hindi mag-alala tungkol sa kung aling mga mapagkukunang AWS upang ilunsad, o kung paano nila mapamahalaan ang mga ito, inilagay lamang nila ang code sa lambda at tumatakbo ito , simple lang yan! Tinutulungan ka nitong mag-focus sa core-competency ibig sabihin, ang App Building o ang code.



Saan ko gagamitin ang AWS Lambda?

Isinasagawa ng AWS Lambda ang iyong backend code, sa pamamagitan ng awtomatikong pamamahala ng mga mapagkukunan ng AWS. Kapag sinabi naming 'pamahalaan', nagsasama ito ng paglulunsad o pagwawakas ng mga pagkakataon, mga pagsusuri sa kalusugan, pag-scale ng auto, pag-update o pag-tap sa mga bagong update atbp.

Kaya, paano ito gumagana?

Ang code na nais mong patakbuhin ng Lambda ay kilala bilang a Pagpapaandar ng lambda . Ngayon, tulad ng alam nating tumatakbo lamang ang isang pag-andar kapag tinawag ito, tama? Dito, Pinagmulan ng Kaganapan ay ang nilalang na nagpapalitaw ng isang Lambda Function, at pagkatapos ang gawain ay naisakatuparan.

Kumuha tayo ng isang halimbawa upang maunawaan ito nang mas malinaw.



Ipagpalagay na mayroon kang isang app para sa pag-upload ng imahe. Ngayon kapag nag-upload ka ng isang imahe, maraming mga kasangkot na gawain bago iimbak ito, tulad ng pagbabago ng laki, paglalapat ng mga filter, compression atbp.

Kaya, ang gawaing ito ng pag-upload ng isang imahe ay maaaring tukuyin bilang isang Pinagmulan ng Kaganapan o ang 'gatilyo' na tatawag sa Lambda Function, at pagkatapos ang lahat ng mga gawaing ito ay maaaring maisagawa sa pamamagitan ng pagpapaandar ng Lambda.

Sa halimbawang ito, kailangang tukuyin lamang ng isang developer ang mapagkukunan ng kaganapan at i-upload ang code.

Unawain natin ang halimbawang ito sa mga tunay na mapagkukunan ng AWS ngayon,

Ang kaso ng paggamit ng Fig. Lambda sa S3

Sa paglipas dito ay mag-a-upload kami ng mga imahe sa anyo ng mga bagay sa isang S3 na balde. Ang pag-upload ng isang imahe sa S3 bucket, ay magiging isang mapagkukunan ng kaganapan o ang 'gatilyo'.

Ang buong proseso, tulad ng nakikita mo sa diagram, ay nahahati sa 5 mga hakbang, unawain natin ang bawat isa sa kanila.

kung paano gamitin ang kapangyarihan sa sawa
  1. Nag-upload ang gumagamit ng isang imahe (object) sa isang pinagmulang bucket sa S3 na may naka-attach na notification dito, para sa Lambda.
  2. Ang notification ay binabasa ng S3 at nagpapasya ito kung saan ipapadala ang notification na iyon.
  3. Ipinapadala ng S3 ang abiso sa Lambda, ang notification na ito ay gumaganap bilang isang tawag sa tawag ng pagpapaandar ng lambda.
  4. Ang papel ng pagpapatupad sa Lambda ay maaaring tukuyin sa pamamagitan ng paggamit ng IAM (Identity and Access Management) upang magbigay ng pahintulot sa pag-access para sa mga mapagkukunan ng AWS, para sa halimbawang ito dito ay magiging S3.
  5. Sa wakas, inaanyayahan nito ang nais na pagpapaandar ng lambda na gumagana sa object na na-upload sa S3 bucket.

Kung nais mong malutas ang senaryong ito ayon sa kaugalian, kasama ang pag-unlad, kukuha ka ng mga tao para sa pamamahala ng mga sumusunod na gawain:

  • Laki, probisyon at sukatin ang pangkat ng mga server
  • Pamamahala sa mga pag-update sa OS
  • Mag-apply ng mga security patch at
  • Subaybayan ang lahat ng imprastrakturang ito para sa pagganap at kakayahang magamit.

Ito ay maaaring maging isang mamahaling, nakakapagod at nakakapagod na gawain, kaya't ang pangangailangan para sa AWS Lambda ay makatarungan.Ang AWS Lambda ay katugma sa Node. JS, Python at Java, kaya maaari mong i-upload ang iyong file sa isang zip, tukuyin ang isang mapagkukunan ng kaganapan at itinakda ka!

Maaari kang magbasa nang higit pa tungkol sa S3 AWS dito para sa isang mas malalim na pag-unawa.

Alam na natin ngayon -Paano gumagana ang Lambda atAno ang ginagawa ni Lambda s .

No, intindihin natin-

  • Saan gagamitin ang Lambda?
  • Anong pakay ang pinaglilingkuran ni Lambda, iyonang iba pang mga serbisyo ng AWS Compute ay hindi?

Kung nais mong arkitekto ang isang solusyon sa isang problema, dapat mong makilala kung saan gagamitin ang Lambda, tama ba?

Kaya, bilang isang arkitekto mayroon kang mga sumusunod na pagpipilian upang magpatupad ng isang gawain:

  • AWS EC2
  • AWS Elastic Beanstalk
  • AWS OpsWorks
  • AWS Lambda

Gawin nating halimbawa ang kaso sa paggamit sa itaas at unawain kung bakit pinili namin ang Lambda upang malutas ito.

Ang AWS OpsWorks at AWS ElasticBeanstalk ay ginagamit upang mag-deploy ng isang app, kaya't ang aming kaso sa paggamit ay hindi upang lumikha ng isang app , ngunit upang magpatupad ng isang back-end code.

Saka bakit hindi EC2?

Kung gagamit ka ng EC2, kakailanganin mong i-arkitekto ang lahat hal hal. I-load ang balanse, mga volume ng EBS, mga stack ng software atbp. Sa lambda hindi mo kailangang mag-alala tungkol sa anumang bagay, ipasok lamang ang iyong code, at pamahalaan ng AWS ang natitira!

Halimbawa , sa EC2 mai-install mo ang mga pakete ng software sa iyong virtual machine na susuporta sa iyong code, ngunit sa Lambda hindi mo kailangang mag-alala tungkol sa anumang VM, ipasok lamang ang simpleng code at ipapatupad ito ng Lambda para sa iyo.

Ngunit, kung tatakbo ang iyong code ng maraming oras, at inaasahan mong isang tuluy-tuloy na stream ng mga kahilingan, malamang na sumama ka sa EC2, dahil ang arkitektura ng Lambda ay para sa isang sporadic na uri ng workload, kung saan magkakaroon ng ilang mga tahimik na oras at ilang mga spike sa no. ng mga kahilingan din.

Halimbawa , pag-log sa aktibidad ng email para sa isang maliit na kumpanya, makakakita ng mas maraming aktibidad sa araw kaysa sa gabi, maaari ding magkaroon ng mga araw kung may mas kaunting mga email na mapoproseso, at kung minsan ang buong mundo ay maaaring magsimulang mag-email sa iyo! Sa parehong mga kaso, ang Lambda ay nasa iyong serbisyo.

Isinasaalang-alang ang kaso ng paggamit na ito para sa isang malaking kumpanya sa social networking, kung saan ang mga email ay hindi nagtatapos dahil mayroon itong isang malaking base ng gumagamit, maaaring hindi ang apl na pagpipilian ang Lambda.

Maaari kang magbasa nang higit pa tungkol sa EC2 AWS dito para sa isang mas malalim na pag-unawa.

Mga limitasyon ng AWS Lambda

Ang ilang mga limitasyon ay tukoy sa hardware at ang ilan ay nakasalalay sa arkitektura, talakayin natin ang lahat ng mga ito.

Mga limitasyon sa hardware isama ang laki ng disk, na kung saan ay limitado sa 512 MB, ang memorya ay maaaring mag-iba sa pagitan ng 128 MB at 1536 MB. Pagkatapos may ilang iba pang tulad ng pagpapatupad ng timeout ay maaaring ma-maximize sa 5 minuto lamang, ang iyong kahilingan sa payload ng katawan ay maaaring hindi hihigit sa 6 MB at ang iyong hiniling na katawan ay 128 KB. Ang payload ng body ng kahilingan ay tulad ng data na ipinadala mo na may isang 'GET' o 'PUT' na kahilingan sa HTTP, kung saan bilang ang hiniling na katawan ay ang uri ng kahilingan, ang mga header atbp.

pagdaan ng halaga kumpara sa pagdaan ng sanggunian na java

Sa totoo lang, hindi ito mga limitasyon, ngunit ang mga hangganan sa disenyo na naitakda sa arkitektura ng Lambda kaya kung ang iyong kaso ng paggamit ay hindi umaangkop sa mga ito, palagi kang may ibang mga serbisyo sa compute ng AWS na magagamit mo.

Tinalakay namin sa AWS Lambda Tutorial na ito na kung paano ang paggawa ng mga gawain sa Lambda ay 'hindi' nakakapagod at nakakapagod. Sakyan din natin ngayon ang bahagi ng gastos.

Pagpepresyo sa AWS Lambda

Tulad ng karamihan sa mga serbisyo ng AWS, ang AWS Lambda ay isang serbisyo rin sa pay per use, nangangahulugang babayaran mo lang ang ginagamit mo, samakatuwid sinisingil ka sa mga sumusunod na parameter

  • Ang bilang ng mga hiling na ginagawa mo sa pagpapaandar ng lambda mo
  • Ang tagal na kung saan ang iyong code ay nagpapatupad.

Mga Kahilingan

  • Sinisingil ka para sa bilang ng mga kahilingan na iyong ginagawa sa lahat ng iyong pag-andar ng lambda.
  • Nagbibilang ang AWS Lambda ng isang kahilingan sa bawat oras na magsimula itong magpatupad bilang tugon sa isang mapagkukunan ng kaganapan o tumawag sa tawag, kasama na ang pagsubok ay ipinataw mula sa console. Tingnan natin ang mga presyo ngayon:
    • Unang 1 milyong mga kahilingan, bawat buwan ay libre.
    • 0.20 $ bawat milyong mga kahilingan pagkatapos.

Tagal

  • Kinakalkula ang tagal mula sa sandali na nagsisimulang magpatupad ang iyong code hanggang sa sandaling bumalik o natapos ito, bilugan ito hanggang sa pinakamalapit na 100ms.
  • Ang presyo ay nakasalalay sa dami ng memorya na iyong inilalaan sa iyong pagpapaandar, sisingilin ka ng $ 0.00001667 para sa bawat ginamit na GB-segundo.

* Pinagmulan: opisyal na website ng AWS

Kung naabot mo hanggang dito handa ka na para sa isang Hands-on sa Lambda. Magsaya tayo!

Mga hands-on: AWS Lambda DIY

Lumikha tayo ng isang pag-andar ng Lambda na kung saan ay mag-log ng 'Ang isang bagay ay naidagdag' sa sandaling magdagdag ka ng isang bagay sa isang tukoy na timba sa S3.

Hakbang1: Mula sa AWS Management Console sa ilalim ng seksyon ng compute, piliin ang AWS Lambda.

Hakbang2: Sa AWS Lambda Console, mag-click sa 'Lumikha ng isang pag-andar ng Lambda'.

Hakbang3: Sa susunod na pahina, kailangan mong pumili ng isang blueprint. Halimbawa, pipiliin namin ang blangko na pag-andar para sa aming use-case.

Hakbang4: Sa susunod na pahina ikaw ay (1) magtakda ng isang gatilyo, dahil gagana kami sa S3, (2) piliin ang S3 gatilyo at pagkatapos ay (3) i-click ang Susunod.

kung paano gamitin ang file sa java

Hakbang5: Sa pahina ng pagsasaayos, punan ang mga detalye. Maaari mong ilagay ang iyong sariling code, o maaari mong kopyahin ang parehong code mula sa use-case na ito. Pagkatapos nito, punan ang handler at papel, iwanan ang mga advanced na setting na ito, sa dulo mag-click sa susunod.

Hakbang6: Sa susunod na pahina, suriin ang lahat ng impormasyon, at mag-click sa 'Lumikha ng pag-andar'.

Hakbang7: Ngayon, dahil nilikha namin ang pagpapaandar para sa S3 bucket, sa sandaling magdagdag ka ng isang file sa iyong S3 bucket, dapat kang makakuha ng isang log para sa pareho sa CloudWatch, na isang serbisyo sa pagsubaybay mula sa AWS.

Binabati kita!Matagumpay mong naisagawa ang Lambda Function.

Inaasahan kong nasiyahan ka sa malalim na pagsisid sa AWS Lambda Tutorial. Ito ay isa sa pinakamahalagang lugar ng kaalaman sa ecosystem ng AWS para sa mga posisyon sa trabaho tulad ng Solutions Architect, Cloud Engineer, DevOps Engineer. Narito ang isang koleksyon ng upang matulungan kang maghanda para sa iyong susunod na pakikipanayam sa trabaho ng AWS.

Kung nalaman mong nauugnay ang AWS Lambda Tutorial na ito, maaari mong suriin ang live at pinapangunahan ng kurso ng Edureka , kapwa nilikha ng mga nagsasanay ng industriya.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento at babalikan ka namin.