Kas yra „AWS Lambda“? Lambda funkcija su pavyzdžiais

Prieš „AWS Lambda“ funkciją supraskime:

Kas yra be serverio?

„Serverless“ yra terminas, kuris paprastai reiškia programas be serverio. Programos be serverių yra tos, kurioms nereikia jokių serverių nuostatų ir kurioms nereikia tvarkyti serverių.

Kas yra „AWS Lambda“?

„AWS Lambda“ yra įvykių valdoma be serverių skaičiavimo platforma, kurią teikia „Amazon“ kaip „Amazon Web Services“ dalis. Todėl jums nereikia jaudintis dėl to, kuriuos AWS išteklius paleisti, ar kaip juos valdysite. Vietoj to, jūs turite įdėti kodą į „Lambda“ ir jis veikia.

„AWS Lambda“ kodas vykdomas atsižvelgiant į įvykių atsaką AWS tarnybose, pvz., Pridėti / ištrinti failus S3 grupėje, HTTP užklausą iš „Amazon“ API šliuzo ir kt. Tačiau „Amazon Lambda“ galima naudoti tik foninėms užduotims vykdyti.

„AWS Lambda“ funkcija padeda jums sutelkti dėmesį į pagrindinį produktą ir verslo logiką, užuot valdžius operacinės sistemos (OS) prieigos kontrolę, OS pataisą, dydį pagal dydį, atidėjinius, mastelį ir kt.

Šioje „AWS Lambda“ pamokoje pradedantiesiems sužinosite:

  • Kaip veikia „AWS Lambda“?
  • Įvykiai, kurie suaktyvina „AWS Lambda“
  • „AWS Lambda“ koncepcijos
  • AWS Lambda VS AWS EC2
  • „AWS Lambda“ VS „AWS“ elastinis pupelių stiebas
  • Naudokite „AWS Lambda“ dėklus
  • Geriausia „Lambda“ funkcijos praktika
  • Kada nenaudoti „AWS Lambda“
  • „AWS Lambda“ naudojimo pranašumai
  • „AWS Lambda“ apribojimai

Kaip veikia „AWS Lambda“?

Šiame „AWS Lambda“ pavyzdyje su blokine schema paaiškinama „AWS Lambda“ veikla keliais paprastais veiksmais:

1 žingsnis: Pirmiausia įkelkite „AWS Lambda“ kodą bet kuria „AWS Lambda“ palaikoma kalba. „Java“, „Python“, „Go“ ir „C #“ yra keletas kalbų, kurias palaiko „AWS Lambda“ funkcija.

2 žingsnis: Tai yra keletas AWS paslaugų, leidžiančių suaktyvinti „AWS Lambda“.

3 žingsnis: „ AWS Lambda“ padeda įkelti kodą ir išsamią informaciją apie įvykį, dėl kurios jis turėtų būti suaktyvintas.

4 žingsnis: Vykdo AWS Lambda kodą, kai jį suaktyvina AWS paslaugos:

5 veiksmas: AWS imamas tik tada, kai vykdomas AWS lambda kodas, o ne kitaip.

Tai atsitiks šiais atvejais:

  • Įkelkite failus į S3 grupę
  • Kai pasiekiamas HTTP „get / post“ pabaigos taško URL
  • „Dynamo DB“ lentelių įtraukimui / modifikavimui ir ištrynimui
  • Duomenų srautų rinkimo procese
  • „Push“ pranešimas
  • Svetainės talpinimas
  • El. Pašto siuntimas

Pastaba: turėtumėte atsiminti, kad už AWS paslaugas mokėsite tik tada, kai bus vykdomas „AWS Lambda“ kodas, kitaip jums nieko nereikia mokėti.

Įvykiai, kurie suaktyvina „AWS Lambda“

Čia yra įvykiai, kurie bus suaktyvinti, kai naudosite „AWS Lambda“.

  • Įterpkite, atnaujinkite ir ištrinkite „Dynamo DB“ lentelę
  • Įtraukti pranešimus iš karto į SNS
  • Norėdami ieškoti žurnalo istorijos „CloudTrail“
  • Įėjimas į S3 objektą
  • „DynamoDB“ gali suaktyvinti „AWS Lambda“, kai lentelėje yra pridėta, pakeista ir ištrinta duomenų.
  • Padeda suplanuoti įvykį, kad užduotis būtų vykdoma įprastu laiku.
  • Objektų modifikacijos S3 segmentuose
  • Pranešimai išsiųsti iš „Amazon SNS“.
  • „AWS Lambda“ galima naudoti „CloudTrail“ žurnalams apdoroti
  • API šliuzas leidžia suaktyvinti AWS Lambda naudojant GET / POST metodus.

„AWS Lambda“ koncepcijos

Funkcija:

Funkcija yra programa arba scenarijus, veikiantis „AWS Lambda“. „Lambda“ perduoda iškvietimo įvykius į jūsų funkciją, kuri apdoroja įvykį ir pateikia jo atsakymą.

Veikimo laikas:

„Runtime“ leidžia atlikti funkcijas įvairiomis kalbomis, kurios veikia toje pačioje bazės vykdymo aplinkoje. Tai padeda sukonfigūruoti savo funkciją vykdymo metu. Tai taip pat atitinka jūsų pasirinktą programavimo kalbą.

Įvykio šaltinis:

Įvykių šaltinis yra AWS paslauga, pvz., „Amazon SNS“, arba pasirinktinė paslauga. Ši suaktyvinimo funkcija padeda įgyvendinti logiką.

Lambda sluoksniai:

Lambda sluoksniai yra svarbus bibliotekų paskirstymo mechanizmas, pasirinktiniai vykdymo laikai ir kitos svarbios funkcijų priklausomybės. Šis AWS komponentas taip pat padeda valdyti kūrimo funkcijos kodą atskirai nuo besikeičiančio kodo ir jo naudojamų išteklių.

Žurnalo srautai:

„Žurnalo srautas“ leidžia komentuoti savo funkcijos kodą pasirinktiniais registravimo sakiniais, kurie padeda analizuoti „AWS Lambda“ funkcijų vykdymo eigą ir našumą.

Kaip naudotis AWS Lambda

Dabar sužinosime, kaip naudoti „AWS Lambda“ su „AWS Lambda“ pavyzdžiu:

1 žingsnis ) Eikite į https://aws.amazon.com/lambda/ ir pradėkite

2 žingsnis ) Sukurkite paskyrą arba prisijunkite naudodami esamą paskyrą

3 žingsnis ) Kitame „Lambda“ puslapyje

  1. Redaguokite kodą
  2. Spustelėkite Vykdyti

4 žingsnis ) Pamatysite išvestį

AWS Lambda VS AWS EC2

Čia pateikiami keli pagrindiniai „AWS Lambda“ ir „EC2“ skirtumai.

Parametrai „AWS Lambda“ AWS EC2
Apibrėžimas „AWS Lambda“ yra platforma kaip paslauga (PaaS). Tai padeda paleisti ir vykdyti savo vidinį kodą. AWS EC2 yra infrastruktūra kaip paslauga (laaS). Tai teikia virtualizuotus skaičiavimo išteklius.
Lankstumas Nepasiūlo lankstumo prisijungti norint apskaičiuoti egzempliorius. Tai leidžia jums pasirinkti pritaikytą operacinę sistemą arba kalbos vykdymo laiką. Siūloma lanksčiai pasirinkti įvairius egzempliorius, tinkančias naudoti sistemas, saugos pataisas ir tinklą ir kt.
Diegimo procesas Turite pasirinkti aplinką, kurioje norite paleisti kodą, ir įvesti kodą į „AWS Lambda“. Pirmą kartą EC2, turite pasirinkti OS ir įdiegti visą reikalingą programinę įrangą, tada įveskite savo kodą EC2.
Aplinkos apribojimai Jis ribojamas keliomis kalbomis. Jokių aplinkos apribojimų.

„AWS Lambda“ VS „AWS“ elastinis pupelių stiebas

Čia yra keletas pagrindinių skirtumų tarp „AWS Lambda“ ir „Elastic Beanstalk“.

Parametrai „AWS Elastic Beanstalk“ „AWS Lambda“
Pagrindinė užduotis Įdiekite ir tvarkykite programas „AWS Cloud“, nesijaudindami dėl infrastruktūros, kuri palaiko šias programas. „AWS Lambda“ naudojama paleisti ir vykdyti jūsų vidinį kodą. Negalite jo naudoti programai diegti.
AWS išteklių pasirinkimas Tai suteikia jums laisvę pasirinkti AWS išteklius; Pavyzdžiui, galite pasirinkti EC2 egzempliorių, kuris yra optimalus pagal jūsų programą. Negalite pasirinkti AWS išteklių, pvz., EC2 egzemplioriaus tipo, „Lambda“ siūlo išteklius pagal jūsų darbo krūvį.
Sistemos tipas Tai valstybinė sistema. Tai sistema be pilietybės.

Naudokite „AWS Lambda“ dėklus

„AWS Lambda“ naudojama įvairioms programoms, tokioms kaip:

  • Padeda jums atlikti ETL procesą
  • Leidžia atlikti failų apdorojimą realiuoju laiku ir srautų apdorojimą realiuoju laiku
  • Naudokite kuriant žiniatinklio programas
  • Naudokite „Amazon“ produktuose, tokiuose kaip „Alexa Chatbots“ ir „Amazon Echo / Alexa“
  • Duomenų apdorojimas (tiesioginio srauto analizė)
  • Automatizuotos kasdienių užduočių atsarginės kopijos
  • Keičiamos galinės dalys (programos mobiliesiems, „loT“ įrenginiai)
  • Padeda įvykdyti serverio serverio logikos logiką
  • Leidžia filtruoti ir transformuoti duomenis

Geriausia „Lambda“ funkcijos praktika

Štai keletas geriausių „AWS Lambda“ funkcijų praktikos:

  • Naudokite tinkamą „timeout“.
  • Naudokitės 500 MB dydžio vietinės atminties funkcijomis aplanke / temp
  • Sumažinkite pradinio kodo naudojimą, kuris nėra tiesiogiai susijęs su dabartinio įvykio apdorojimu.
  • Norėdami peržiūrėti ir optimizuoti užklausų delsą, turėtumėte naudoti „Lambda“ funkcijų integruotą „CloudWatch“ stebėjimą.

Kada nenaudoti „AWS Lambda“

Toliau pateikiama situacija, kai „Lambda“ tikrai nėra idealus pasirinkimas:

  • Netikslinga naudoti „AWS Lambda“ programinės įrangos paketus ar programas, kurios priklauso nuo pagrindinių „Windows RPC“ iškvietimų
  • Jei naudojama pasirinktinėms programinės įrangos programoms su licencijavimo sutartimis, tokiomis kaip „MS-Office“ dokumentų apdorojimas, „Oracle“ duomenų bazės ir kt.
  • „AWS Lambda“ neturėtų būti naudojama pasirinktiniams aparatūros procesams, pvz., GPU pagreičiui, aparatūros afinitetui.

„AWS Lambda“ naudojimo pranašumai

Čia yra AWS lambda naudojimo privalumai / privalumai:

  • „AWS Lambda“ yra labai lanksti naudoti priemonė
  • Tai padeda jums suteikti prieigą prie išteklių, įskaitant VPC
  • Autorius tiesiogiai naudodamas WYSIWYG redaktorių konsolėje.
  • Galite jį naudoti kaip „Eclipse“ ir „Visual Studio“ papildinį.
  • Kadangi tai yra serverio neturinti architektūra, jums nereikia jaudintis dėl serverių tvarkymo ar atidėjimo.
  • Jums nereikia nustatyti jokios virtualios mašinos.
  • Padeda kūrėjams paleisti ir įvykdyti kodo atsaką į įvykius nestatant jokios infrastruktūros.
  • Jums tereikia už skaičiuotą laiką, tik tada, kai paleidžiamas jūsų kodas.
  • Galite realiai stebėti savo kodo našumą naudodami „CloudWatch“.
  • Tai leidžia paleisti kodą be atsargų ar valdyti bet kurį kitą serverį
  • Padeda vykdyti kodą tik tada, kai to reikia
  • Galite automatiškai išplėsti mastelį, kad apdorotumėte kelias užklausas per dieną ir netgi palaikytumėte daugiau nei tūkstančius užklausų per sekundę.
  • AWS Lambda gali būti sukonfigūruota išorinių įvykių laikmačių pagalba, kad būtų galima atlikti suplanuotas užduotis.
  • AWS „Lambda“ funkcija turėtų būti sukonfigūruota su išoriniais įvykių ir laikmačiais; jis gali būti naudojamas planuoti.
  • „Lambda“ funkcijos yra be pilietybės, kad ją būtų galima greitai keisti.
  • „AWS Lambda“ yra greita, todėl ji įvykdys jūsų kodą per milisekundes.

„AWS Lambda“ apribojimai

Čia yra AWS Lambda naudojimo trūkumai / trūkumai:

  • „AWS Lambda“ įrankis netinka mažiems projektams.
  • „AWS Lambda“ visiškai remiasi AWS infrastruktūra, todėl negalite įdiegti jokios papildomos programinės įrangos, jei to reikalauja jūsų kodas.
  • Kartu vykdoma 100
  • „AWS Lambda“ visiškai priklausė nuo AWS infrastruktūros; negalite įdiegti jokios papildomos programinės įrangos, jei to reikalauja jūsų kodas.
  • Jo atminties tūris gali skirtis nuo 128 iki 1536 MB.
  • Įvykio užklausa neturėtų viršyti 128 KB.
  • „Lambda“ funkcijos padeda rašyti jų žurnalus tik „CloudWatch“. Tai yra vienintelis įrankis, leidžiantis stebėti ar šalinti savo funkcijas.
  • Jo kodo vykdymo skirtasis laikas yra tik 5 minutės.

Santrauka

  • „Serverless“ yra terminas, kuris paprastai reiškia programas be serverio.
  • „AWS Lambda“ yra viena iš tokių serverių skaičiavimo paslaugų. Todėl jums nereikia jaudintis dėl to, kuriuos AWS išteklius paleisti ar kaip jie juos valdys.
  • Funkcija yra programa arba scenarijus, kuris veikia „AWS serverless Lambda“.
  • „Runtime“ leidžia atlikti funkcijas įvairiomis kalbomis, kurios veikia toje pačioje bazės vykdymo aplinkoje.
  • Įvykių šaltinis yra AWS paslauga, pvz., „Amazon SNS“, arba pasirinktinė paslauga.
  • Lambda sluoksniai yra svarbus bibliotekų paskirstymo mechanizmas, pasirinktiniai vykdymo laikai ir kitos svarbios funkcijų priklausomybės.
  • „Žurnalo srautas“ leidžia komentuoti savo funkcijos kodą pasirinktiniais registravimo sakiniais, kurie padeda analizuoti „Lambda“ funkcijų vykdymo eigą ir našumą.
  • „AWS Lambda“ yra platforma kaip paslauga (PaaS). Tai padeda paleisti ir vykdyti savo vidinį kodą.
  • AWS EC2 yra infrastruktūra kaip paslauga (laaS). Tai teikia virtualizuotus skaičiavimo išteklius.
  • Įdiekite ir tvarkykite programas „AWS Cloud“, nesijaudindami dėl infrastruktūros, kuri palaiko šias programas.
  • „AWS Lambda“ naudojama paleisti ir vykdyti jūsų vidinį kodą. Negalite jo naudoti programai diegti.
  • „AWS Lambda“ padeda jums atlikti ETL procesą.
  • Geriausia AWS „Lambda“ funkcijos praktika yra tinkamo „timeout“ naudojimas.
  • Netikslinga naudoti „AWS Lambda“ programinės įrangos paketus ar programas, kurios priklauso nuo pagrindinių „Windows RPC“ iškvietimų
  • „AWS Lambda“ yra labai lanksti priemonė.
  • „AWS Lambda“ įrankis netinka mažiems projektams.
  • Dažnas įvykis, kuris bus suaktyvintas naudojant „AWS Lambda“, yra „Dynamo DB“ duomenų įterpimas, atnaujinimas ir ištrynimas.

Įdomios straipsniai...