Što je AWS Lambda? Lambda funkcija s primjerima
⚡ Pametni sažetak
AWS Lambda je platforma za računalstvo bez servera, vođena događajima. Amazon Web servisi koji pokreću vaš kod kao odgovor na okidače, automatski upravljajući pružanjem usluga, skaliranjem i upravljanjem poslužiteljem tako da se vi usredotočujete samo na poslovnu logiku.
Prije istraživanja AWS Lambde, korisno je razumjeti što znači serverless.
Što je Serverless?
Serverless je pojam koji se općenito odnosi na serverless aplikacije. Serverless aplikacije su one koje ne trebaju nikakvu opskrbu poslužiteljem i ne zahtijevaju od vas da upravljate poslužiteljima.
Što je AWS Lambda?
AWS Lambda je računalna platforma bez poslužitelja vođena događajima koju pruža Amazon kao dio Amazon Web servisi. Stoga se ne morate brinuti o tome koje AWS resurse pokrenuti ili kako ćete njima upravljati. Umjesto toga, trebate staviti kod na Lambdu i on će se pokrenuti.
U AWS Lambdi kod se izvršava na temelju odgovora događaja u AWS uslugama kao što su dodavanje ili brisanje datoteka u S3 spremniku, HTTP zahtjev od Amazon API Gateway i slični događaji. Međutim, Amazon Lambda se može koristiti samo za izvršavanje pozadinskih zadataka.
AWS Lambda funkcija vam pomaže da se usredotočite na svoj osnovni proizvod i poslovnu logiku umjesto upravljanja kontrolom pristupa operativnom sustavu (OS), zakrpama OS-a, optimizacijom veličine, opskrbom, skaliranjem i tako dalje.
Kako radi AWS Lambda?
Sljedeći primjer AWS Lambda s blok dijagramom objašnjava rad AWS Lambda u nekoliko jednostavnih koraka:
Korak 1: Prvo prenesite svoj AWS Lambda kod na bilo kojem jeziku koji podržava AWS Lambda. Java, Python, Go i C# su neki od jezika koje podržava AWS Lambda funkcija.
Korak 2: Ovo su neke AWS usluge koje vam omogućuju pokretanje AWS Lambda.
Korak 3: AWS Lambda pomaže vam da učitate kod i pojedinosti događaja na kojima bi se on trebao pokrenuti.
Korak 4: Izvršava AWS Lambda kod kada ga pokrenu AWS usluge.
Korak 5: AWS naplaćuje samo kada se izvrši AWS Lambda kod, a ne inače.
To će se dogoditi u sljedećim scenarijima:
- Učitajte datoteke u S3 spremnik
- Kada HTTP krajnja točka za dobivanje/post URL je pogođen
- Za dodavanje, izmjenu i brisanje Dynamo DB tablica
- U procesu prikupljanja tokova podataka
- Pritisnite obavijest
- Hosting web stranice
- Slanje e-pošte
Bilješka: Trebate imati na umu da će vam se AWS usluge naplatiti samo kada se izvrši AWS Lambda kod, inače ne morate ništa platiti.
Događaji koji pokreću AWS Lambda
Evo događaja koji će se pokrenuti kada koristite AWS Lambda.
- Umetanje, ažuriranje i brisanje podataka u tablici baze podataka Dynamo
- Za uključivanje push obavijesti u SNS
- Za traženje povijesti dnevnika u CloudTrailu
- Ulazak u objekt S3
- DynamoDB može pokrenuti AWS Lambda kad god se u tablici dodaju, izmijene ili izbrišu podaci.
- Pomaže vam u planiranju događaja kako biste zadatak izvršili u redovitom vremenskom obrascu.
- Izmjene objekata u S3 spremnicima
- Obavijesti poslane s Amazon SNS.
- AWS Lambda se može koristiti za obradu CloudTrail logova.
- API Gateway vam omogućuje pokretanje AWS Lambda na GET/POST metodama.
AWS Lambda Concepts
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 svoj odgovor.
Vrijeme izvođenja: Runtime omogućuje funkcije u raznim jezicima koje se izvršavaju u istom osnovnom okruženju za izvršavanje. To vam pomaže konfigurirati funkciju u runtime okruženju. Također se podudara s vašim odabranim programski jezik.
Izvor događaja: Izvor događaja je AWS servis, kao što je Amazon DNS ili prilagođena usluga. Ovaj okidač pomaže funkciji da izvrši svoju logiku.
Lambda slojevi: Lambda slojevi su važan distribucijski mehanizam za biblioteke, prilagođena vremena izvođenja i druge važne ovisnosti o funkcijama. Ova AWS komponenta također vam pomaže da upravljate svojim kodom razvojne funkcije odvojeno od nepromjenjivog koda i resursa koje koristi.
Tokovi zapisnika: Tok zapisnika vam omogućuje označavanje vašeg funkcijskog koda prilagođenim naredbama zapisnika koje vam pomažu u analizi tijeka izvršavanja i performansi vaših AWS Lambda funkcija.
Kako koristiti AWS Lambda
Sada ćemo naučiti kako koristiti AWS Lambda s primjerom AWS Lambda:
Korak 1) Otvori AWS Lambdu URL
Idi na https://aws.amazon.com/lambda/ i Započnite.
Korak 2) Otvori račun
Zatim kreirajte račun ili se prijavite s postojećim računom.
Korak 3) Uredite kod i kliknite Pokreni
Na sljedećoj Lambda stranici uredite kod i kliknite Pokreni.
Korak 4) Provjerite izlaz
Vidjet ćete izlaz.
AWS Lambda VS AWS EC2
Evo nekih glavnih razlika između AWS Lambde i EC2.
| Parametri | AWS Lambda | AWS EC2 |
| Definicija | AWS Lambda je platforma kao usluga (PaaS). Pomaže vam da pokrenete i izvršite svoj pozadinski kod. | AWS EC2 je infrastruktura kao usluga (IaaS). Pruža virtualizirane računalne resurse. |
| Fleksibilnost | Ne nudi nikakvu fleksibilnost prijave na računalne instance. Omogućuje vam odabir prilagođenog operativnog sustava ili jezičnog okruženja. | Nudi fleksibilnost odabira raznih instanci, prilagođenih operativnih sustava, sigurnosnih zakrpa i mreže itd. |
| Postupak instalacije | Morate odabrati okruženje u kojem želite pokrenuti kod i poslati ga u AWS Lambda. | Po prvi put u EC2, morate odabrati OS i instalirati sav potreban softver, a zatim gurnuti svoj kod u EC2. |
| Ograničenja okoliša | Ograničeno je na nekoliko jezika. | Nema ograničenja okoline. |
AWS Lambda u usporedbi s AWS Elastic Beanstalk
Evo nekih glavnih razlika između AWS Lambda i Elastic Beanstalk.
| Parametri | AWS Elastic Beanstalk | AWS Lambda |
| Glavni zadatak | Implementirajte i upravljajte aplikacijama na AWS Cloudu bez brige o infrastrukturi koja pokreće te aplikacije. | AWS Lambda se koristi za pokretanje i izvršavanje vašeg back-end koda. Ne možete ga koristiti za implementaciju aplikacije. |
| Izbor AWS resursa | Daje vam slobodu odabira AWS resursa; na primjer, možete odabrati EC2 instancu koja je optimalna prema vašoj primjeni. | Ne možete odabrati AWS resurse, poput EC2 instance; Lambda nudi resurse na temelju vašeg radnog opterećenja. |
| Vrsta sustava | To je državni sustav. | To je sustav bez države. |
Slučajevi upotrebe AWS Lambda
AWS Lambda se koristi za širok raspon primjena kao što su:
- Pomaže vam s ETL proces
- Omogućuje vam obradu datoteka u stvarnom vremenu i obradu toka u stvarnom vremenu
- Koristi se za izradu web aplikacija
- Upotrijebite u Amazon proizvoda kao što su Alexa Chatbots i Amazon Echo/Alexa
- Obrada podataka (analiza strujanja u stvarnom vremenu)
- Automatske sigurnosne kopije svakodnevnih zadataka
- Skalabilni backendovi (mobilne aplikacije, IoT uređaji)
- Pomaže vam u izvršavanju pozadinske logike na strani poslužitelja
- Omogućuje filtriranje i transformaciju podataka
Najbolje prakse Lambda funkcije
Evo nekih najboljih praksi za AWS Lambda funkcije:
- Upotrijebite pravo "vremensko ograničenje".
- Koristite funkcije lokalne pohrane koja je veličine 500 MB u mapi /temp.
- Minimizirajte korištenje koda za pokretanje koji nije izravno povezan s obradom trenutnog događaja.
- Trebali biste koristiti ugrađeni CloudWatch nadzor vaših Lambda funkcija za pregled i optimizaciju latencije zahtjeva.
Kada ne koristiti AWS Lambda
Slijede situacije u kojima Lambda sigurno nije idealna opcija:
- Nije prikladno koristiti AWS Lambdu za softverske pakete ili aplikacije koje se oslanjaju na pozivanje temeljnih Windows RPC-ovi.
- Ako se koristi za prilagođene softverske aplikacije s licencnim ugovorima poput obrade dokumenata MS-Officea, Oracle baze podataka itd.
- AWS Lambda se ne smije koristiti za prilagođene hardverske procese kao što su GPU ubrzanje i afinitet hardvera.
Prednosti korištenja AWS Lambda
Evo prednosti/koristi korištenja AWS Lambde:
- AWS Lambda je vrlo fleksibilan alat za korištenje.
- Pomaže vam u odobravanju pristupa resursima, uključujući VPC-ove.
- Autor izravno s WYSIWYG urednik u konzoli.
- Možete ga koristiti kao dodatak za Eclipse i Visual Studio.
- Budući da se radi o serverless arhitekturi, ne morate se brinuti o upravljanju ili pružanju usluga serverima.
- Ne morate ih postavljati Virtualni stroj.
- Pomaže programerima da pokrenu i izvrše odgovor koda na događaje bez izgradnje infrastrukture.
- Samo trebate platiti za vrijeme računanja, samo kada se vaš kod izvršava.
- Možete pratiti izvedbu svog koda u stvarnom vremenu putem CloudWatcha.
- Omogućuje vam pokretanje koda bez pružanja ili upravljanja bilo kojim drugim poslužiteljem.
- Pomaže vam da izvršite kod samo kada je to potrebno.
- Možete ga automatski prilagoditi za obradu nekoliko zahtjeva dnevno, pa čak i podržavati više od tisuće zahtjeva u sekundi.
- AWS Lambda može se konfigurirati uz pomoć vanjskih mjerača vremena događaja za obavljanje zakazanih zadataka.
- Lambda funkcija u AWS-u treba biti konfigurirana s vanjskim događajima i timerom kako bi se mogla koristiti za raspoređivanje.
- Lambda funkcije su bez stanja tako da se mogu brzo skalirati.
- AWS Lambda je brza pa će izvršiti vaš kod unutar milisekundi.
Ograničenja AWS Lambda
Evo nedostataka/nedostataka korištenja AWS Lambda:
- AWS Lambda alat nije prikladan za male projekte.
- AWS Lambda se u potpunosti oslanja na AWS za infrastrukturu, tako da ne možete instalirati nikakav dodatni softver ako vaš kod to zahtijeva.
- Istodobno izvršavanje ima zadano ograničenje od 1,000 po regiji, što se na zahtjev može povećati.
- Volumen memorije može varirati između 128 MB i 10,240 MB.
- Zahtjev za događaj ne smije premašiti 128 KB.
- Lambda funkcije vam pomažu da zapisujete njihove zapise samo u CloudWatch. Ovo je jedini alat koji vam omogućuje praćenje ili rješavanje problema s vašim funkcijama.
- Vrijeme izvršenja koda je ograničeno na 15 minuta.





