Mis on AWS Lambda? Lambda funktsioon näidetega

⚡ Nutikas kokkuvõte

AWS Lambda on sündmustepõhine serverita arvutusplatvorm ettevõttelt Amazon Veebiteenused, mis käivitavad teie koodi vastuseks päästikutele, tegeledes automaatselt serveri seadistamise, skaleerimise ja haldamisega, nii et teie saate keskenduda ainult äriloogikale.

  • ☁️ Serverita mudel: AWS Lambda käitab koodi ilma servereid ette valmistamata või haldamata, eemaldades operatsioonisüsteemi paikamise, skaleerimise ja mahutavuse planeerimise vajaduse.
  • Sündmustepõhine teostus: Funktsioonid käivituvad AWS-teenustest, näiteks S3-st, DynamoDB, API lüüs ja sotsiaalvõrgustik, mis töötavad ainult sündmuse toimumise korral.
  • 🧩 Keeletoetus: Lambda toetab Node.js-i, Python, Java, Go, C# ja Ruby, lisaks kohandatud käituskeskkonnad teistele keeltele.
  • 💰 Maksa kasutuskorra järgi: Billing kehtib ainult koodi täitmise ajal, mõõdetuna millisekundites, püsiva igakuise tasuta astmega üks miljon päringut.
  • 🛠️ Põhimõisted: Funktsioonid, käitusajad, sündmuste allikad, kihid ja logivood määravad, kuidas Lambda koodi käivitab ja haldab.
  • 🤖 AI abi: GitHubi kaaspiloot ja Amazon Q genereerib Lambda koodi, samas kui Lambda orkestreerib genereerivaid tehisintellekti järeldusi läbi Amazon Aluspõhi.

Mis on AWS Lambda?

Enne AWS Lambda uurimist on kasulik mõista, mida serverita tähendab.

Mis on serverita?

Serverita on termin, mis viitab üldiselt serverita rakendustele. Serverita rakendused on sellised, mis ei vaja serveri eraldamist ega serverite haldamist.

Mis on AWS Lambda?

AWS Lambda on sündmustepõhine serverita andmetöötlusplatvorm, mida pakub Amazon osana Amazon Veebiteenused. Seega ei pea te muretsema, milliseid AWS-i ressursse käivitada või kuidas neid hallata. Selle asemel peate koodi Lambdasse panema ja see töötab.

AWS Lambdas käivitatakse kood AWS-teenuste sündmuste vastuse põhjal, näiteks failide lisamine või kustutamine S3-ämbris, HTTP-päring saidilt Amazon API värav ja sarnased sündmused. Siiski Amazon Lambdat saab kasutada ainult taustaülesannete täitmiseks.

AWS Lambda funktsioon aitab teil keskenduda oma põhitootele ja äriloogikale, selle asemel et hallata operatsioonisüsteemi (OS) juurdepääsu kontrolli, OS-i paikamist, õige suuruse määramist, varustamist, skaleerimist jne.

Kuidas AWS Lambda töötab?

Järgmine AWS Lambda näide koos plokkskeemiga selgitab AWS Lambda tööd mõne lihtsa sammuga:

AWS lambda plokkskeem

Samm 1: Esmalt laadige üles oma AWS Lambda kood mis tahes keeles, mida AWS Lambda toetab. Java, Python, Go ja C# on mõned keeled, mida AWS Lambda funktsioon toetab.

Samm 2: Need on mõned AWS-i teenused, mis võimaldavad teil käivitada AWS Lambda.

Samm 3: AWS Lambda aitab teil üles laadida koodi ja sündmuse üksikasjad, mille puhul see käivitada.

Samm 4: Käivitab AWS Lambda koodi, kui AWS teenused selle käivitavad.

Samm 5: AWS võtab tasu ainult siis, kui AWS Lambda kood käivitub, mitte muul ajal.

See juhtub järgmiste stsenaariumide korral:

  • Laadige failid üles S3 ämbrisse
  • Kui HTTP get/post lõpp-punkt URL on tabatud
  • Dynamo DB tabelite lisamiseks, muutmiseks ja kustutamiseks
  • Andmevoogude kogumise protsessis
  • Tõuketeade
  • Veebisaidi hostimine
  • Meilide saatmine

Märge: Pea meeles, et AWS teenuste eest võetakse tasu ainult siis, kui AWS Lambda kood käivitub, vastasel juhul ei pea sa midagi maksma.

Sündmused, mis käivitavad AWS lambda

Siin on sündmused, mis käivituvad AWS Lambda kasutamisel.

  • Andmete sisestamine, värskendamine ja kustutamine Dynamo DB tabelis
  • Tõukemärguannete lisamine SNS-i
  • Logiajaloo otsimiseks CloudTrailist
  • S3 objekti sisenemine
  • DynamoDB võib käivitada AWS Lambda alati, kui tabelisse on andmeid lisatud, muudetud või kustutatud.
  • Aitab teil ajastada sündmuse nii, et ülesanne täidetakse regulaarse ajakava järgi.
  • S3 ämbrites olevate objektide modifikatsioonid
  • Teated saadetud aadressilt Amazon SNS.
  • CloudTraili logide töötlemiseks saab kasutada AWS Lambdat.
  • API lüüs võimaldab teil käivitada AWS Lambda GET/POST meetoditel.

AWS Lambda Concepts

Ametikoht: Funktsioon on programm või skript, mis töötab AWS Lambdas. Lambda edastab kutsumissündmused teie funktsiooni, mis töötleb sündmust ja tagastab selle vastuse.

Kestusajad: Käituskeskkond lubab funktsioone erinevates keeltes, mis töötavad samas baaskeskkonnas. See aitab teil oma funktsiooni käituskeskkonnas konfigureerida. See vastab ka teie valitud keelele. programmeerimiskeel.

Sündmuse allikas: Sündmuse allikaks on AWS-teenus, näiteks Amazon SNS või kohandatud teenus. See päästik aitab funktsioonil oma loogikat täita.

Lambda kihid: Lambda kihid on raamatukogude, kohandatud käitusaegade ja muude oluliste funktsioonide sõltuvuste jaoks oluline jaotusmehhanism. See AWS-i komponent aitab teil hallata ka arendusfunktsiooni koodi eraldi muutumatust koodist ja ressurssidest, mida see kasutab.

Logi vood: Logivoog võimaldab teil oma funktsioonikoodi kohandatud logimislausetega märkida, mis aitavad teil analüüsida AWS Lambda funktsioonide täitmisvoogu ja jõudlust.

Kuidas kasutada AWS Lambdat

Nüüd õpime, kuidas AWS Lambdat kasutada AWS Lambda näite abil:

Step 1) Avatud AWS Lambda URL

Minna https://aws.amazon.com/lambda/ ja Alusta.

Kuidas kasutada AWS Lambdat

Step 2) Kontot looma

Järgmisena looge konto või logige sisse oma olemasoleva kontoga.

Kuidas kasutada AWS Lambdat

Step 3) Redigeeri koodi ja klõpsa nupul „Käivita”

Järgmisel Lambda lehel muutke koodi ja klõpsake nuppu „Käivita”.

Step 4) Kontrollige väljundit

Näete väljundit.

Kuidas kasutada AWS Lambdat

AWS Lambda VS AWS EC2

Siin on mõned peamised erinevused AWS Lambda ja EC2.

parameetrid AWS Lambda AWS EC2
Määratlus AWS Lambda on platvorm teenusena (PaaS). See aitab teil taustakoodi käivitada ja käivitada. AWS EC2 on infrastruktuur teenusena (IaaS). See pakub virtualiseeritud arvutusressursse.
Paindlikkus Ei paku arvutusinstanssedesse sisselogimiseks paindlikkust. See võimaldab teil valida kohandatud operatsioonisüsteemi või keele käituskeskkonna. Pakub paindlikkust valida mitmesuguseid eksemplare, kohandatud operatsioonisüsteeme, turvapaiku ja võrku jne.
Paigaldusprotsess Peate valima keskkonna, kus soovite koodi käivitada, ja sisestama koodi AWS Lambdasse. Esimest korda EC2-s peate valima OS-i ja installima kogu vajaliku tarkvara ning seejärel sisestama oma koodi EC2-s.
Keskkonnapiirangud See on piiratud väheste keeltega. Keskkonnapiiranguid pole.

AWS Lambda vs AWS Elastic Beanstalk

Siin on mõned peamised erinevused AWS Lambda ja Elasticu vahel Beanstalk.

parameetrid AWS Elastne Beanstalk AWS Lambda
Peamine ülesanne Juurutage ja hallake rakendusi AWS Cloudis, ilma et peaksite muretsema infrastruktuuri pärast, mis neid rakendusi käitab. AWS Lambdat kasutatakse teie taustsüsteemi koodi käitamiseks ja täitmiseks. Te ei saa seda kasutada rakenduse juurutamiseks.
AWS-i ressursside valik See annab teile vabaduse valida AWS-i ressursse; näiteks saate valida EC2 eksemplari, mis on teie rakenduse jaoks optimaalne. Te ei saa valida AWS-i ressursse, näiteks EC2 eksemplari tüüpi; Lambda pakub ressursse teie töökoormuse põhjal.
Süsteemi tüüp See on olekupõhine süsteem. See on kodakondsuseta süsteem.

AWS Lambda kasutusjuhised

AWS Lambdat kasutatakse paljudes rakendustes, näiteks:

  • Aitab teil sellega ETL protsess
  • Võimaldab teostada reaalajas failide töötlemist ja reaalajas vootöötlust
  • Kasutage veebirakenduste loomiseks
  • Kasutage sisse Amazon tooted nagu Alexa Chatbots ja Amazon Kaja / Alexa
  • Andmetöötlus (reaalajas voogesituse analüüs)
  • Igapäevaste ülesannete automatiseeritud varukoopiad
  • Skaleeritavad tagasüsteemid (mobiilirakendused, IoT-seadmed)
  • Aitab teil käivitada serveripoolset taustaloogikat
  • Võimaldab andmeid filtreerida ja teisendada

Lambda funktsiooni parimad tavad

Siin on mõned AWS Lambda funktsioonide parimad tavad:

  • Kasutage õiget "ajalõppu".
  • Kasutage kohaliku salvestusruumi funktsioone, mille suurus on 500 MB ja mis asub kaustas /temp.
  • Minimeerige käivituskoodi kasutamist, mis pole otseselt seotud praeguse sündmuse töötlemisega.
  • Taotluste latentsusaegade vaatamiseks ja optimeerimiseks peaksite kasutama oma Lambda funktsioonide sisseehitatud CloudWatchi jälgimist.

Millal mitte kasutada AWS Lambdat?

Järgnevalt on toodud olukorrad, kus Lambda pole kindlasti ideaalne valik:

  • AWS Lambda kasutamine ei ole kohane tarkvarapakettide või rakenduste puhul, mis tuginevad aluskoodi kutsumisele. Windows RPC-d.
  • Kui seda kasutatakse litsentsilepingutega kohandatud tarkvararakenduste jaoks, näiteks MS-Office'i dokumenditöötlus, Oracle andmebaasid jne.
  • AWS Lambdat ei tohiks kasutada kohandatud riistvaraprotsesside, näiteks GPU kiirenduse ja riistvaralise afiinsuse jaoks.

AWS Lambda kasutamise eelised

Siin on AWS Lambda kasutamise plussid/eelised:

  • AWS Lambda on väga paindlik tööriist.
  • See aitab teil anda juurdepääsu ressurssidele, sealhulgas VPC-dele.
  • Autor otse koos WYSIWYG toimetaja konsoolis.
  • Saate seda kasutada pistikprogrammina Eclipse ja Visual Studio.
  • Kuna tegemist on serverita arhitektuuriga, ei pea te muretsema serverite haldamise ega ettevalmistamise pärast.
  • Te ei pea ühtegi seadistama Virtuaalne masin.
  • Aitab arendajatel käivitada ja käivitada koodi vastuseid sündmustele ilma infrastruktuuri ehitamata.
  • Sa pead maksma ainult arvutusaja eest, ainult siis, kui sinu kood töötab.
  • Saate CloudWatchi kaudu oma koodi jõudlust reaalajas jälgida.
  • See võimaldab teil oma koodi käivitada ilma ühtegi teist serverit looma või haldamata.
  • Aitab koodi käivitada ainult siis, kui see on vajalik.
  • Saate seda automaatselt skaleerida, et käsitleda mõnda päringut päevas ja toetada isegi rohkem kui tuhandeid taotlusi sekundis.
  • AWS Lambda saab konfigureerida väliste sündmuste taimerite abil ajastatud toimingute tegemiseks.
  • AWS-i lambdafunktsioon tuleks konfigureerida väliste sündmuste ja taimeritega, et seda saaks ajastamiseks kasutada.
  • Lambda funktsioonid on olekuta, nii et neid saab kiiresti skaleerida.
  • AWS Lambda on kiire, nii et see käivitab teie koodi millisekundite jooksul.

AWS lambda piirangud

Siin on AWS Lambda kasutamise miinused / puudused:

  • AWS Lambda tööriist ei sobi väikeste projektide jaoks.
  • AWS Lambda tugineb infrastruktuuri osas täielikult AWS-ile, seega ei saa te installida täiendavat tarkvara, kui teie kood seda nõuab.
  • Samaaegse täitmise vaikelimiit on 1,000 piirkonna kohta, mida saab soovi korral suurendada.
  • Selle mälumaht võib varieeruda vahemikus 128 MB kuni 10 240 MB.
  • Sündmuse päring ei tohi ületada 128 KB.
  • Lambda funktsioonid aitavad teil nende logisid kirjutada ainult CloudWatchis. See on ainus tööriist, mis võimaldab teil oma funktsioone jälgida või tõrkeotsingut teha.
  • Selle koodi täitmise ajalõpp on piiratud 15 minutiga.

KKK

AWS Lambda toetab natiivselt Node.js-i, Python, Java, Go, C#, PowerShell ja Ruby. Käitusaja API ja konteineri kujutiste tugi võimaldavad käitada peaaegu kõiki teisi keeli, seega pole meeskondade eelistatud programmeerimiskeel peaaegu kunagi piiratud.

AWS Lambda sisaldab püsivat tasuta taset, mis võimaldab teenindada miljon päringut ja 400 000 GB-sekundit arvutusaega kuus. Lisaks maksate ainult päringute ja teie koodi tegelikult kasutatava arvutusaja eest, mida arveldatakse millisekundi kohta.

Külmkäivitus on lühike viivitus, mille jooksul Lambda initsialiseerib jõudeolekus olnud funktsiooni jaoks uue täitmiskeskkonna. Seda saab vähendada eraldatud samaaegsuse, väiksemate pakettide või SnapStarti abil. Java funktsioone.

Jah. Lisaks ZIP-arhiivi üleslaadimisele võimaldab Lambda teil funktsiooni pakendada kuni 10 GB suuruse konteinerkujutisena. See sobib suuremate sõltuvuste ja masinõppe teekidega, säilitades samal ajalping sama sündmustepõhine, serverita täitmismudel.

Lambda käitab lühikesi, sündmustepõhiseid funktsioone automaatse skaleerimise ja millisekundipõhise arveldusega. AWS Fargate käitab pikemaid konteinerdatud töökoormusi ilma servereid haldamata. Valige Lambda kiirete sündmustele reageerimiseks ja Fargate stabiilsete, pikaajaliste konteinerülesannete jaoks.

Jah. Lambda toetab tehisintellekti rakendusi tavaliselt kergete järelduste tegemise ja selliste teenuste kõnede korraldamise kaudu nagu Amazon Bedrock ja SageMaker. Konteinerikujutiste tugi aitab pakendada masinõppe teeke, samas kui Lambda tegeleb generatiivse tehisintellekti torujuhtme skaleerimisega.

Jah. GitHubi koopia kirjutab käitleja funktsioonid kommentaarist või nimest, samal ajal kui Amazon Q Developer lisab AWS-teadliku abi IAM-poliitikate, CloudFormationi ja SDK-kõnede jaoks, kiirendades serverita arendust.

Andke igale funktsioonile vähima privileegiga IAM-roll, salvestage saladusi krüpteeritud keskkonnamuutujatesse või saladuste haldurisse ning paigutage tundlikke funktsioone VPC-sse. Seejärel logivad CloudWatch ja CloudTrail tegevust jälgimiseks ja auditeerimiseks.

Võta see postitus kokku järgmiselt: