Što je AWS Lambda? Lambda funkcija s primjerima

Prije AWS Lambda funkcije, shvatimo:

Što je Serverless?

Bez poslužitelja je pojam koji se općenito odnosi na aplikacije bez poslužitelja. Aplikacije bez poslužitelja one su koje ne zahtijevaju nikakvu uslugu poslužitelja i ne zahtijevaju upravljanje 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 usluge. Stoga ne morate brinuti o tome koje AWS resurse pokrenuti ili kako ćete njima upravljati. Umjesto toga, trebate staviti kod na Lambdu i ona će se pokrenuti.

U AWS Lambda kod se izvršava na temelju odgovora događaja u AWS uslugama kao što su dodavanje/brisanje datoteka u S3 spremniku, HTTP zahtjev od Amazon API pristupnik, itd. Međutim, Amazon Lambda se može koristiti samo za izvršavanje pozadinskih zadataka.

Funkcija AWS Lambda pomaže vam da se usredotočite na svoj osnovni proizvod i poslovnu logiku umjesto na upravljanje kontrolom pristupa operativnom sustavu (OS), krpanjem OS-a, odgovarajućom veličinom, pružanjem usluga, skaliranjem itd.

Kako radi AWS Lambda?

Sljedeći primjer AWS Lambda s blok dijagramom objašnjava rad AWS Lambda u nekoliko jednostavnih koraka:

AWS Lambda blok dijagram
AWS Lambda blok dijagram

Korak 1: Prvo prenesite svoj AWS Lambda kod na bilo kojem jeziku 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 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 Code kada ga pokreću AWS usluge:

Korak 5: AWS naplaćuje samo kada se izvrši AWS lambda kod, inače ne.

To će se dogoditi u sljedećim scenarijima:

  • Učitajte datoteke u S3 spremnik
  • Kada se pogodi HTTP get/post URL krajnje točke
  • Za dodavanje/modificiranje 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 ćete AWS usluge naplatiti samo kada se AWS Lambda kod izvrši, inače ne morate ništa platiti.

Događaji koji pokreću AWS Lambda

Ovdje su događaji koji će se pokrenuti kada koristite AWS Lambda.

  • Umetanje, ažuriranje i brisanje podataka Dynamo DB tablice
  • 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 da zakažete događaj kako biste izvršili zadatak u redovnom vremenskom obrascu.
  • Izmjene objekata u S3 spremnicima
  • Obavijesti poslane s Amazon SNS.
  • AWS Lambda može se koristiti za obradu CloudTrail zapisa
  • 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:

Vrijeme izvođenja dopušta funkcije na različitim jezicima koje se izvode u istom osnovnom okruženju za izvršavanje. To vam pomaže da konfigurirate svoju funkciju tijekom izvođenja. Također odgovara vašem odabiru programski jezik.

Izvor događaja:

Izvor događaja je AWS servis, kao što je Amazon SNS ili prilagođena usluga. Ova funkcija okidača pomaže vam da izvršite 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 omogućuje vam da označite svoj funkcijski kod s prilagođenim izjavama zapisnika koji vam pomažu analizirati tijek izvršenja i performanse vaših AWS Lambda funkcija.

Kako koristiti AWS Lambda

Sada ćemo naučiti kako koristiti AWS Lambda s primjerom AWS Lambda:

Korak 1) Korak 1) Otvorite AWS Lambda URL
Ići https://aws.amazon.com/lambda/ i Započnite

Kako koristiti AWS Lambda

Korak 2) Stvorite račun
Zatim stvorite račun ili se prijavite s postojećim računom

Korak 3) Uredite kod i kliknite Pokreni,
Na sljedećoj Lambda stranici,

  1. Uredite kod
  2. Kliknite Pokreni

Kako koristiti AWS Lambda

Korak 4) Provjerite izlaz
Vidjet ćete izlaz

Kako koristiti AWS Lambda

AWS Lambda VS AWS EC2

Ovdje su neke velike razlike između AWS Lambda 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 (laaS). Omogućuje virtualizirane računalne resurse.
Fleksibilnost Ne nudi nikakvu fleksibilnost za prijavu na računalne instance. Omogućuje vam odabir prilagođenog operativnog sustava ili jezika. Nudi fleksibilnost odabira raznih instanci, prilagođenih operativnih sustava, sigurnosnih zakrpa i mreže itd.
Postupak instalacije Morate odabrati svoje okruženje u kojem želite pokrenuti kod i gurnuti kod 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čen je na nekoliko jezika. Nema ograničenja okoline.

AWS Lambda VS AWS Elastic Beanstalk

Ovdje su neke velike razlike između AWS Lambda i Elastic Beanstalk.

Parametri AWS Elastični grah AWS Lambda
Glavni zadatak Implementirajte 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 implementaciju aplikacije.
Izbor AWS resursa Daje vam slobodu odabira AWS resursa; Na primjer, možete odabrati EC2 instancu koja je optimalna prema vašoj aplikaciji. Ne možete odabrati AWS resurse, poput vrste 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 koristi se za širok raspon aplikacija kao što su:

  • Pomaže vam za 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)
  • Automatizirano sigurnosno kopiranje svakodnevnih zadataka
  • Skalabilna pozadina (mobilne aplikacije, puno uređaja)
  • Pomaže vam u izvršavanju pozadinske logike na strani poslužitelja
  • Omogućuje vam filtriranje i transformaciju podataka

Najbolje prakse Lambda funkcije

Evo nekoliko najboljih primjera iz prakse AWS Lambda funkcije:

  • Upotrijebite pravo "vremensko ograničenje".
  • Iskoristite funkcije lokalne pohrane koja je veličine 500 MB u mapi /temp
  • Minimiziranje upotrebe 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 Lambda softverske pakete ili aplikacije koje se oslanjaju na pozivanje temeljnog Windows RPC-ovi
  • Ako se koristi za prilagođene softverske aplikacije s licencnim ugovorima kao što je obrada dokumenata MS-Office, Oracle baze podataka itd.
  • AWS Lambda ne bi se trebao koristiti za prilagođene hardverske procese kao što je GPU ubrzanje, hardverski afinitet.

Prednosti korištenja AWS Lambda

Ovdje su prednosti/prednosti korištenja AWS lambda:

  • AWS Lambda je vrlo fleksibilan alat za korištenje
  • Pomaže vam da odobrite pristup resursima, uključujući VPC-ove
  • Autor izravno sa WYSIWYG urednik u konzoli.
  • Možete ga koristiti kao dodatak za Eclipse i Visual Studio.
  • Budući da se radi o arhitekturi bez poslužitelja, ne morate se brinuti o upravljanju ili pružanju poslužitelja.
  • Ne morate ih postavljati Virtualni stroj.
  • Pomaže programerima da pokrenu i izvrše odgovor koda na događaje bez izgradnje infrastrukture.
  • Trebate samo za potrebno vrijeme računanja, samo kada se vaš kôd pokrene.
  • Možete pratiti izvedbu svog koda u stvarnom vremenu putem CloudWatcha.
  • Omogućuje vam da pokrenete svoj kod bez pripreme ili da upravljate 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 trebala bi biti konfigurirana s vanjskim događajem i mjeračima vremena; može se 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 u potpunosti se oslanja na AWS za infrastrukturu, tako da ne možete instalirati nikakav dodatni softver ako vaš kod to zahtijeva.
  • Istodobno izvođenje ograničeno je na 100
  • AWS Lambda u potpunosti ovisi o AWS-u za infrastrukturu; ne možete instalirati nikakav dodatni softver ako vaš kôd to zahtijeva.
  • Njegov volumen memorije može varirati između 128 i 1536 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 čekanja izvršenja koda je samo 5 minuta.

Rezime

  • Bez poslužitelja je pojam koji se općenito odnosi na aplikacije bez poslužitelja.
  • AWS Lambda jedna je takva računalna usluga bez poslužitelja. Stoga ne morate brinuti koje AWS resurse pokrenuti ili kako će njima upravljati.
  • Funkcija je program ili skripta koja se izvodi u AWS Lambda bez poslužitelja.
  • Vrijeme izvođenja dopušta funkcije na različitim jezicima koje se izvode u istom osnovnom okruženju za izvršavanje.
  • Izvor događaja je AWS servis, kao što je Amazon SNS ili prilagođena usluga.
  • Lambda slojevi su važan distribucijski mehanizam za biblioteke, prilagođena vremena izvođenja i druge važne ovisnosti o funkcijama.
  • Tok zapisnika omogućuje vam da označite svoj funkcijski kod s prilagođenim izjavama zapisnika koji vam pomažu analizirati tijek izvršenja i performanse vaših Lambda funkcija.
  • AWS Lambda je platforma kao usluga (PaaS). Pomaže vam da pokrenete i izvršite svoj pozadinski kod.
  • AWS EC2 je infrastruktura kao usluga (laaS). Omogućuje virtualizirane računalne resurse.
  • Implementirajte 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 implementaciju aplikacije.
  • AWS Lambda vam pomaže za ETL proces.
  • Najbolja praksa Lambda funkcije u AWS-u je korištenje pravog "timeouta".
  • Nije prikladno koristiti AWS Lambda softverske pakete ili aplikacije koje se oslanjaju na pozivanje temeljnog Windows RPC-ovi
  • AWS Lambda je vrlo fleksibilan alat.
  • AWS Lambda alat nije prikladan za male projekte.
  • Uobičajeni događaj koji će se pokrenuti kada koristite AWS Lambda je umetanje, ažuriranje i brisanje podataka Dynamo DB tablice.

Sažmite ovu objavu uz: