Š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.

  • ☁️ Model bez servera: AWS Lambda pokreće kod bez pružanja ili upravljanja poslužiteljima, uklanjajući zakrpe operativnog sustava, skaliranje i planiranje kapaciteta.
  • Izvršavanje vođeno događajima: Funkcije se pokreću iz AWS usluga kao što je S3, DynamoDB, API Gateway i SNS, koji se pokreću samo kada se dogodi događaj.
  • 🧩 Jezična podrška: Lambda podržava Node.js, Python, Java, Go, C# i Ruby, plus prilagođena okruženja za izvođenje za druge jezike.
  • 💰 Plaćanje po korištenju: BillPrimjenjuje se samo dok se kod izvršava, mjereno u milisekundama, s trajnom mjesečnom besplatnom razinom od milijun zahtjeva.
  • 🛠️ Osnovni koncepti: Funkcije, vremena izvođenja, izvori događaja, slojevi i log tokovi definiraju kako Lambda izvršava i upravlja kodom.
  • 🤖 AI pomoć: GitHub Copilot i Amazon Q generira Lambda kod, dok Lambda orkestrira generativno zaključivanje umjetne inteligencije putem Amazon Temelj.

Što je AWS Lambda

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:

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# 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.

Kako koristiti AWS Lambda

Korak 2) Otvori račun

Zatim kreirajte račun ili se prijavite s postojećim računom.

Kako koristiti AWS Lambda

Korak 3) Uredite kod i kliknite Pokreni

Na sljedećoj Lambda stranici uredite kod i kliknite Pokreni.

Korak 4) Provjerite izlaz

Vidjet ćete izlaz.

Kako koristiti AWS Lambda

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.

Pitanja i odgovori

AWS Lambda izvorno podržava Node.js, Python, Java, Go, C#, PowerShell i Ruby. Runtime API i podrška za slike kontejnera omogućuju vam pokretanje gotovo bilo kojeg drugog jezika, tako da su timovi rijetko ograničeni svojim preferiranim programskim jezikom.

AWS Lambda uključuje trajnu besplatnu razinu od milijun zahtjeva i 400,000 GB sekundi računanja svaki mjesec. Nakon toga, plaćate samo za zahtjeve i vrijeme računanja koje vaš kod stvarno koristi, naplaćujući se po milisekundi.

Hladni start je kratko kašnjenje kada Lambda inicijalizira novo okruženje za izvršavanje funkcije koja je bila u stanju mirovanja. Možete ga smanjiti omogućenom konkurentnošću, manjim paketima ili SnapStartom za... Java funkcije.

Da. Osim prijenosa ZIP arhive, Lambda vam omogućuje pakiranje funkcije kao slike spremnika do 10 GB. To odgovara većim ovisnostima i bibliotekama strojnog učenja, a istovremeno zadržavaping isti model izvršavanja vođen događajima i bez servera.

Lambda pokreće kratke funkcije vođene događajima s automatskim skaliranjem i naplatom po milisekundi. AWS Fargate pokreće dulja kontejnerizirana opterećenja bez upravljanja poslužiteljima. Odaberite Lambdu za brze odgovore na događaje, a Fargate za stabilne, dugotrajne kontejnerske zadatke.

Da. Lambda obično pokreće AI aplikacije izvršavanjem laganog zaključivanja i orkestriranjem poziva uslugama poput Amazon Bedrock i SageMaker. Podrška za slike kontejnera pomaže u pakiranju biblioteka strojnog učenja, dok Lambda rješava skaliranje generativnog AI cjevovoda.

Da. GitHub kopilot zapisuje funkcije rukovatelja iz komentara ili imena, dok Amazon Q Developer dodaje AWS-svjesnu pomoć za IAM politike, CloudFormation i SDK pozive, ubrzavajući razvoj bez servera.

Dodijelite svakoj funkciji IAM ulogu s najmanjim privilegijama, pohranite tajne podatke u šifrirane varijable okruženja ili Upravitelj tajni i postavite osjetljive funkcije unutar VPC-a. CloudWatch i CloudTrail zatim bilježe aktivnosti za praćenje i reviziju.

Sažmite ovu objavu uz: