Увод у АВС Ламбда за почетнике

Hajde da istražimo osnove AWS Lambda i korak po korak kako pokrenuti funkciju.

Uvod

Kada razvijate aplikacije, želite da pružite besprekorno korisničko iskustvo. Da bi se to ostvarilo, vašoj aplikaciji je potreban pozadinski kod koji se izvršava kao odgovor na određene događaje.

Međutim, upravljanje infrastrukturom za hostovanje i izvršavanje pozadinskog koda zahteva od vas da dimenzionišete, obezbedite i skalirate mnoštvo servera, upravljate ažuriranjima operativnog sistema, primenjujete bezbednosne zakrpe i nadgledate celokupnu infrastrukturu radi optimizacije performansi i dostupnosti.

Zar ne bi bilo idealno da se fokusirate na razvoj izvanrednih aplikacija bez brige o njihovoj infrastrukturi? Tu na scenu stupa AWS Lambda.

Šta je AWS Lambda?

AWS Lambda je računarska usluga bez servera koja vam omogućava da pokrenete svoj kod bez potrebe za obezbeđivanjem ili upravljanjem bilo kakvim serverima. Možete pokrenuti svoju aplikaciju ili pozadinsku uslugu koristeći AWS Lambda uz minimalnu administraciju. Jednostavno otpremite svoj kod na Lambda, a ona će izvršiti vaš kod, čak i skalirajući infrastrukturu uz visoku dostupnost.

Kod koji se izvršava na AWS Lambda naziva se lambda funkcija. Trenutno podržava sledeće programske jezike:

  • Java
  • Python
  • C#
  • Node.js
  • Go
  • PowerShell
  • Ruby

Takođe nudi runtime API koji se može koristiti za izvršavanje funkcija napisanih u drugim programskim jezicima.

Za rad sa AWS Lambda, postoji samo jedan preduslov: morate imati AWS nalog sa kojeg možete pristupiti AWS upravljačkoj konzoli.

Možete smatrati Lambda kao FaaS (Function-as-a-Service) platformu od strane AWS-a.

AWS Lambda karakteristike

Ispod su neke od ključnih funkcija koje nudi AWS Lambda:

  • AWS Lambda lako skalira infrastrukturu bez dodatne konfiguracije. Ovo smanjuje operativni napor.
  • Pruža razne opcije za pokretanje događaja kao što su AWS S3, CloudWatch, DynamoDB, API Gateway, Kinesis, CodeCommit i mnoge druge.
  • Ne zahteva početno ulaganje. Plaćate samo za memoriju koju lambda funkcija koristi i minimalnu naknadu za broj zahteva, čime je isplativa.
  • AWS Lambda je bezbedan. Koristi AWS IAM za definisanje svih uloga i bezbednosnih politika.
  • Nudi toleranciju grešaka za usluge koje pokreću kod i funkcije. Ne morate brinuti da se aplikacija neće izvršavati.

AWS Lambda cene

Cene AWS Lambda zavise od trajanja i memorije koju koristi lambda funkcija koju ste napisali. Maksimalna količina memorije koju možete dodeliti lambda funkciji je 3008 MB u koracima od 64 MB. Ispod je prikazana tabela cena za 100 milisekundi.

Kako funkcioniše AWS Lambda?

  • Prvo kreirate funkciju i unosite osnovne informacije, kao što je programski jezik koji će se koristiti u funkciji.
  • Zatim pišete svoj kod u lambda editoru ili ga otpremate u zip datoteci u podržanom programskom jeziku.
  • Kada se lambda kod otpremi, usluga upravlja svim skaliranjem kapaciteta, zakrpama i administracijom infrastrukture.
  • Da biste pokrenuli kod, potrebno je pokrenuti lambda funkciju pomoću spoljne AWS usluge, koja može pozvati lambda funkciju. Na primer, to može biti S3 kanta.
  • U roku od nekoliko sekundi, lambda će biti spremna da automatski pokrene vašu funkciju kada dođe do nekog događaja. AWS Lambda pokreće vaš kod kada se pozove okidački događaj. On obezbeđuje upravljanje i nadzor servera umesto vas.
  • Ako vaša funkcija zahteva mnogo procesorske snage, ona će izabrati tip instance koja ima više procesorske snage i RAM-a. Ako se vaš lambda kod izvršava samo dve sekunde, izabraće najnižu moguću instancu, što vam štedi novac i vreme.

Dakle, tako interno funkcioniše AWS Lambda. Dozvolite mi da vam prikažem demo na AWS Lambda.

Kreiranje AWS Lambda funkcije

Napraviću vrlo jednostavnu igru koristeći lambda funkciju u Node.js za ovaj članak. Napraviću lambda funkciju za bacanje kockice, generišući nasumičan broj između 1 i 6 i štampaću ga.

  • Idite na AWS upravljačku konzolu i u traci za pretragu otkucajte Lambda, kliknite na Lambda.

  • Pojaviće se prozor funkcije, kliknite na Kreiraj funkciju.

  • Dobićete različite opcije za kreiranje funkcije sa njihovim objašnjenjem. Pošto je kreiram od nule, izabraću Autor od nule.

  • Nakon toga, potrebno je da unesete neke potrebne informacije za ovu lambda funkciju. Unesite naziv funkcije i izaberite verziju Node.js koju želite da koristite za ovu funkciju.
  • Takođe morate da izaberete izvršnu ulogu. Pošto nemam definisanu nijednu postojeću ulogu u svom AWS nalogu, nastaviću i izabrati opciju kreiranja nove uloge. Kliknite na Kreiraj funkciju.

  • Dobićete poruku o uspehu da je veza stvorena. Kliknite na prozor Dizajnera da biste ga minimizirali.

  • Sledeći je prozor sa kodom funkcije.
  • Stavite dole navedeni kod u editor. Takođe možete da otpremite kod pomoću zip datoteke, ali ja koristim interni AWS editor kodova.

  • To je jednostavan kod koji uzima brojeve samo od 1 do 6 i koristi nasumičnu matematičku funkciju da generiše broj nasumično i odštampa ga kada se funkcija pozove.
exports.handler = async (event) => {
  const min = 1;
  const max = 6;
  const randomNum = Math.floor(Math.random() * (max - min + 1)) + min;
  const out="Dice throw result is: " + randomNum;
  return out;
};
  • Sada kliknite na dugme Test u gornjem desnom uglu. Dobićete iskačući prozor da konfigurišete probni događaj, unesite naziv događaja i kliknite na konfiguriši.

  • Sada kliknite na Sačuvaj, a zatim na Test.

U rezultatu izvršenja videćete izlaz logike funkcije koju smo upravo napisali. Štampa – rezultat bacanja kocke je 2.

  • Pomerite se na gore i kliknite na detaljne rezultate izvršenja da biste dobili kompletan rezime ove lambda funkcije sa očekivanim izlazom. Dostupni su i detalji kao što su ID zahteva, trajanje, trajanje naplate, konfigurisani resursi itd. sa izlazom evidencije.

  • Kliknite na karticu za nadgledanje da biste vizuelno prikazali evidencije praćenja u oblaku i performanse lambda funkcije tokom definisanog vremena.

  • Ako uđete u evidencije koje je kreirao CloudWatch, možete pogledati detalje o tome šta se dogodilo kada je pokrenuta lambda funkcija, koju je nadgledao CloudWatch.

Zaključak

Početak rada sa Lambdom je izuzetno lak. Ako vaša poslovna aplikacija zahteva izvršavanje pozadinskog koda, razmislite o korišćenju platforme bez servera kao što je AWS Lambda.

Da li ste uživali u čitanju članka? Šta kažete na deljenje sa svetom?