Prije funkcije AWS Lambda, shvatimo:
Što je bez poslužitelja?
Bez poslužitelja je pojam koji se općenito odnosi na aplikacije bez poslužitelja. Aplikacije bez poslužitelja one su koje ne trebaju nikakve poslužiteljske usluge i ne trebaju za upravljanje poslužiteljima.
Što je AWS Lambda?
AWS Lambda računalna je platforma bez poslužitelja vođena događajima koju nudi Amazon kao dio Amazon Web Services. Stoga ne trebate brinuti koje AWS resurse pokrenuti niti kako ćete njima upravljati. Umjesto toga, morate staviti kod na Lambda i on radi.
U AWS Lambda kôd se izvršava na temelju odgovora na događaje u AWS uslugama kao što su dodavanje / brisanje datoteka u segmentu S3, HTTP zahtjev iz Amazon API gatewaya itd. Međutim, Amazon Lambda može se koristiti samo za izvršavanje pozadinskih zadataka.
AWS Lambda funkcija pomaže vam da se usredotočite na svoj osnovni proizvod i poslovnu logiku, umjesto da upravljate kontrolom pristupa operacijskog sustava (OS), zakrpavanjem OS-a, određivanjem veličine, omogućavanjem, skaliranjem itd.
U ovom uputstvu za početnike AWS Lambda naučit ćete:
- Kako djeluje AWS Lambda?
- Događaji koji pokreću AWS Lambda
- AWS Lambda koncepti
- AWS Lambda VS AWS EC2
- AWS Lambda VS AWS Elastična grah
- Koristite slučajeve AWS Lambda
- Najbolji primjeri Lambda funkcije
- Kada ne koristiti AWS Lambda
- Prednosti upotrebe AWS Lambda
- Ograničenja AWS Lambda
Kako djeluje AWS Lambda?
Sljedeći AWS Lambda primjer s blok dijagramom objašnjava rad AWS Lambde u nekoliko jednostavnih koraka:
Korak 1: Prvo prenesite svoj AWS Lambda kôd na bilo koji jezik koji podržava AWS Lambda. Java, Python, Go i C # neki su od jezika koje podržava funkcija AWS Lambda.
Korak 2: Ovo su neke AWS usluge koje vam omogućuju aktiviranje AWS Lambda.
Korak 3: AWS Lambda pomaže vam u prijenosu koda i detalja događaja na kojima bi se trebao pokrenuti.
Korak 4: Izvršava AWS Lambda kod kada ga pokreću usluge AWS:
Korak 5: AWS se naplaćuje samo kada se izvrši AWS lambda kôd, a ne drugačije.
To će se dogoditi u sljedećim scenarijima:
- Prenesite datoteke u S3 segment
- Kada se pogodi HTTP URL dobivanja / objavljivanja krajnje točke
- Za dodavanje / izmjenu i brisanje Dynamo DB tablica
- U procesu prikupljanja tokova podataka
- Push obavijest
- Hosting web stranice
- Slanje e-pošte
Napomena: Trebali biste imati na umu da ćete usluge AWS naplaćivati samo kada se AWS Lambda kôd izvrši, inače ne morate ništa platiti.
Događaji koji pokreću AWS Lambda
Evo događaja koji će se aktivirati kada koristite AWS Lambda.
- Umetanje, ažuriranje i brisanje podataka Dynamo DB tablice
- Uključivanje push obavijesti u SNS
- Za traženje povijesti dnevnika u CloudTrailu
- Ulazak u S3 objekt
- DynamoDB može pokrenuti AWS Lambda kad god se u tablici dodaju, mijenjaju i brišu podaci.
- Pomaže vam da rasporedite događaj kako biste izvršili zadatak u redovnom vremenskom uzorku.
- Izmjene objekata u segmentima S3
- Obavijesti poslane s Amazon SNS-a.
- AWS Lambda može se koristiti za obradu zapisnika CloudTrail
- API Gateway omogućuje pokretanje AWS Lambda na GET / POST metodama.
AWS Lambda koncepti
Funkcija:
Funkcija je program ili skripta koja se izvodi u AWS Lambda. Lambda prosljeđuje događaje pozivanja u vašu funkciju koja obrađuje događaj i vraća njegov odgovor.
Vrijeme izvođenja:
Runtime omogućuje funkcije na raznim jezicima koji se izvode u istom osnovnom okruženju izvršenja. To vam pomaže da konfigurirate svoju funkciju u vrijeme izvođenja. Također se podudara s odabranim programskim jezikom.
Izvor događaja:
Izvor događaja je usluga AWS, poput Amazon SNS, ili prilagođena usluga. Ova funkcija okidača pomaže vam u izvršavanju njene logike.
Lambda slojevi:
Lambda slojevi važan su mehanizam distribucije za knjižnice, prilagođena vremena izvođenja i ostale važne ovisnosti funkcija. Ova AWS komponenta također vam pomaže da upravljate kodom razvojne funkcije odvojeno od nepromjenjivog koda i resursa koje koristi.
Zapisnici:
Potok dnevnika omogućuje vam da svoj funkcijski kôd označite prilagođenim zapisnicima za bilježenje, što vam pomaže da analizirate tijek izvršavanja i izvedbu vaših AWS Lambda funkcija.
Kako se koristi AWS Lambda
Sada ćemo naučiti kako koristiti AWS Lambda s primjerom AWS Lambda:
Korak 1 ) Idite na https://aws.amazon.com/lambda/ i započnite
Korak 2 ) Stvorite račun ili se prijavite postojećim računom
Korak 3 ) Na sljedećoj Lambda stranici,
- Uredite kod
- Pritisnite Run
Korak 4 ) Vidjet ćete izlaz
AWS Lambda VS AWS EC2
Evo nekoliko glavnih razlika između AWS Lambda i EC2.
Parametri | AWS Lambda | AWS EC2 |
Definicija | AWS Lambda je platforma kao usluga (PaaS). Pomaže vam u pokretanju i izvršavanju vašeg pozadinskog koda. | AWS EC2 je infrastruktura kao usluga (laaS). Pruža virtualizirane računalne resurse. |
Fleksibilnost | Ne nudi fleksibilnost za prijavu u računske instance. Omogućuje vam odabir prilagođenog operativnog sustava ili vremena izvođenja jezika. | Nudi fleksibilnost odabira raznih instanci, sustava za upravljanje, sigurnosnih zakrpa i mreže itd. |
Postupak instalacije | Morate odabrati svoje okruženje u kojem želite provesti kôd i gurnuti ga u AWS Lambda. | Prvi put u EC2 morate odabrati OS i instalirati sav potreban softver, a zatim gurnuti svoj kôd u EC2. |
Ograničenja okoline | Ograničen je na nekoliko jezika. | Bez ograničenja okoline. |
AWS Lambda VS AWS Elastična grah
Evo nekoliko glavnih razlika između AWS Lambda i Elastic Beanstalk.
Parametri | AWS Elastično zrno graha | AWS Lambda |
Glavni zadatak | Postavite i upravljajte aplikacijama na AWS Cloudu bez brige o infrastrukturi koja pokreće te aplikacije. | AWS Lambda koristi se za pokretanje i izvršavanje vašeg pozadinskog koda. Ne možete ga koristiti za postavljanje aplikacije. |
Izbor resursa AWS-a | Daje vam slobodu odabira AWS resursa; Na primjer, možete odabrati primjerak EC2 koji je optimalan u skladu s vašom aplikacijom. | Ne možete odabrati AWS resurse, poput vrste instance EC2, Lambda nudi resurse na temelju vašeg radnog opterećenja. |
Vrsta sustava | To je sustav s državom. | To je sustav bez državljanstva. |
Koristite slučajeve AWS Lambda
AWS Lambda koristi se za širok spektar aplikacija poput:
- Pomaže vam u ETL procesu
- Omogućuje vam obradu datoteka u stvarnom vremenu i obradu toka u stvarnom vremenu
- Koristite za izradu web aplikacija
- Koristite u Amazon proizvodima poput Alexa Chatbots i Amazon Echo / Alexa
- Obrada podataka (analitika strujanja u stvarnom vremenu)
- Automatizirane sigurnosne kopije svakodnevnih zadataka
- Prilagodljivi stražnji krajevi (mobilne aplikacije, loT uređaji)
- Pomaže vam u izvršavanju pozadinske logike na strani poslužitelja
- Omogućuje filtriranje i transformaciju podataka
Najbolji primjeri Lambda funkcije
Evo nekoliko najboljih praksi rada AWS Lambda:
- Upotrijebite pravi "timeout".
- Upotrijebite funkcije lokalne pohrane veličine 500 MB u mapi / temp
- Smanjivanje upotrebe početnog koda koji nije izravno povezan s obradom trenutnog događaja.
- Trebali biste koristiti ugrađeni CloudWatch nadzor vaših Lambda funkcija za pregled i optimizaciju kašnjenja zahtjeva.
Kada ne koristiti AWS Lambda
Slijedi situacija u kojoj Lambda sigurno nije idealna opcija:
- Nije prikladno koristiti softverske pakete ili programe AWS Lambda koji se oslanjaju na pozivanje osnovnih Windows RPC-ova
- Ako se koristi za prilagođene softverske aplikacije s ugovorima o licenciranju poput MS-Office obrade dokumenata, Oracle baza podataka itd.
- AWS Lambda se ne smije koristiti za prilagođeni hardverski postupak kao što je ubrzanje GPU-a, afinitet hardvera.
Prednosti upotrebe AWS Lambda
Evo prednosti i prednosti upotrebe AWS lambda:
- AWS Lambda izuzetno je fleksibilan alat za upotrebu
- Pomaže vam da odobrite pristup resursima, uključujući VPC-ove
- Autor izravno s WYSIWYG editor u konzoli.
- Možete ga koristiti kao dodatak za Eclipse i Visual Studio.
- Budući da se radi o arhitekturi bez poslužitelja, ne trebate se brinuti o upravljanju ili pružanju poslužitelja.
- Ne morate postaviti nijedan virtualni stroj.
- Pomaže programerima da pokrenu i izvrše odgovor koda na događaje bez izgradnje bilo kakve infrastrukture.
- Samo trebate za izračunato vrijeme potrebno, samo kad se vaš kôd pokrene.
- Izvedbu koda možete pratiti u stvarnom vremenu putem CloudWatch-a.
- Omogućuje vam pokretanje koda bez provizije ili upravljanje bilo kojim drugim poslužiteljem
- Pomaže vam u izvršavanju koda samo po potrebi
- Možete ga automatski prilagoditi tako da obrađuje nekoliko zahtjeva dnevno, pa čak i podržati više od tisuća zahtjeva u sekundi.
- AWS Lambda se može konfigurirati uz pomoć vanjskih mjerača vremena za izvršavanje planiranih zadataka.
- Lambda funkcija u AWS-u trebala bi biti konfigurirana s vanjskim događajima i tajmerima; može se koristiti za zakazivanje.
- Lambda funkcije su bez državljanstva, tako da se mogu brzo prilagoditi.
- AWS Lambda je brz pa će izvršiti vaš kôd u roku od milisekundi.
Ograničenja AWS Lambda
Evo nedostataka / nedostataka upotrebe AWS Lambda:
- AWS Lambda alat nije prikladan za male projekte.
- AWS Lambda u potpunosti se oslanja na AWS za infrastrukturu, tako da ne možete instalirati dodatni softver ako vaš kôd to zahtijeva.
- Istodobno izvršavanje ograničeno je na 100
- AWS Lambda u potpunosti je ovisio o AWS-u za infrastrukturu; ne možete instalirati ništa dodatni softver ako to zahtijeva vaš kôd.
- Volumen memorije može varirati između 128 i 1536 MB.
- Zahtjev za događajem ne smije premašiti 128 KB.
- Lambda funkcije pomažu vam da zapisujete njihove zapisnike samo u CloudWatchu. Ovo je jedini alat koji vam omogućuje nadgledanje ili rješavanje problema sa vašim funkcijama.
- Njegovo vrijeme izvršavanja koda je samo 5 minuta.
Sažetak
- Bez poslužitelja je pojam koji se općenito odnosi na aplikacije bez poslužitelja.
- AWS Lambda jedna je od takvih računalnih usluga bez poslužitelja. Stoga ne trebate brinuti koje AWS resurse pokrenuti ili kako će njima upravljati.
- Funkcija je program ili skripta koji se izvodi u AWS Lambda bez poslužitelja.
- Runtime omogućuje funkcije na raznim jezicima koji se izvode u istom osnovnom okruženju izvršenja.
- Izvor događaja je usluga AWS, poput Amazon SNS, ili prilagođena usluga.
- Lambda slojevi važan su mehanizam distribucije za knjižnice, prilagođena vremena izvođenja i ostale važne ovisnosti funkcija.
- Potok dnevnika omogućuje vam da svoj funkcijski kôd označite prilagođenim zapisnicima za bilježenje koji vam pomažu u analiziranju tijeka izvršavanja i izvedbe vaših Lambda funkcija.
- AWS Lambda je platforma kao usluga (PaaS). Pomaže vam u pokretanju i izvršavanju vašeg pozadinskog koda.
- AWS EC2 je infrastruktura kao usluga (laaS). Pruža virtualizirane računalne resurse.
- Postavite i upravljajte aplikacijama na AWS Cloudu bez brige o infrastrukturi koja pokreće te aplikacije.
- AWS Lambda koristi se za pokretanje i izvršavanje vašeg pozadinskog koda. Ne možete ga koristiti za postavljanje aplikacije.
- AWS Lambda vam pomaže u ETL procesu.
- Najbolja praksa Lambda funkcije u AWS-u je korištenje ispravnog "timeout-a".
- Nije prikladno koristiti softverske pakete ili programe AWS Lambda koji se oslanjaju na pozivanje osnovnih Windows RPC-ova
- AWS Lambda vrlo je fleksibilan alat.
- AWS Lambda alat nije prikladan za male projekte.
- Uobičajeni događaj koji će se aktivirati kada koristite AWS Lambda je Umetanje, ažuriranje i brisanje podataka Dynamo DB tablice.