AWS Lambda Tutorial: Vaš vodič za Amazonovo računalo bez poslužitelja

Ovaj Vodič za AWS Lambda opisuje računarsku platformu bez poslužitelja AWS-a koja pokriva detalje o funkciji Lambda, Izvoru događaja, Lambda cijeni s primjerom upotrebe.

Vodič za AWS Lambda

Danas ćemo razgovarati o AWS Lambda. AWS Lambda je računalna usluga koju nudi Amazon. Sigurno vas zanima, jer postoji nekoliko drugih računalnih usluga tvrtke AWS, poput AWS EC2, AWS Elastic Beanstalk, AWS Opsworks itd., Zašto onda druga računarska usluga? U ovom vodiču za AWS Lambda otkrit ćete što je AWS Lambda, zašto se koristi i u kojim slučajevima upotrebe biste to trebali uzeti u obzir.

Pogledajmo kako Amazon definira AWS Lambda, a zatim ćemo duboko zaroniti u ključne koncepte, razumjeti primjer korištenja s praktičnim na kraju.





Lambda računalo bez poslužitelja - aws lambda tutorial

Što je AWS Lambda?

Amazon objašnjava, AWS Lambda (& lambda) kao računalna usluga bez poslužitelja, što znači da programeri, ne moraju brinuti koje AWS resurse pokrenuti ili kako će njima upravljati, oni samo stave kôd na lambda i on radi , to je tako jednostavno! Pomaže vam da se usredotočite na temeljnu kompetenciju, tj. Na izgradnju aplikacija ili kod.



Gdje ću koristiti AWS Lambda?

AWS Lambda izvršava vaš pozadinski kôd, automatskim upravljanjem AWS resursima. Kad kažemo 'upravljati', to uključuje pokretanje ili ukidanje instanci, zdravstvene preglede, automatsko skaliranje, ažuriranje ili krpanje novih ažuriranja itd.

Pa, kako to djeluje?

Kôd za koji želite da Lambda radi poznat je kao Lambda funkcija . Kao što znamo, funkcija se izvodi samo kad je pozvana, zar ne? Ovdje, Izvor događaja je entitet koji pokreće Lambda funkciju, a zatim se izvršava zadatak.

Uzmimo primjer da bismo ga jasnije razumjeli.



Pretpostavimo da imate aplikaciju za prijenos slika. Sada kada prenosite sliku, prije spremanja uključeno je puno zadataka, poput promjene veličine, primjene filtara, kompresije itd.

Dakle, ovaj zadatak prijenosa slike može se definirati kao Izvor događaja ili ‘okidač’ koji će pozvati Lambda funkciju, a zatim se svi ti zadaci mogu izvršiti putem Lambda funkcije.

U ovom primjeru programer samo mora definirati izvor događaja i prenijeti kôd.

Shvatimo sada ovaj primjer sa stvarnim AWS resursima,

Slika Lambda slučaj korištenja sa S3

Ovdje ćemo prenositi slike u obliku predmeta u S3 kantu. Ovo učitavanje slike u segment S3 postat će izvor događaja ili 'okidač'.

Čitav postupak, kao što vidite na dijagramu, podijeljen je u 5 koraka, shvatimo svaki od njih.

prijenos datoteka na ec2 linux instancu
  1. Korisnik za Lambda prenosi sliku (objekt) u izvornu kantu u S3 koja ima priloženu obavijest.
  2. Obavijest čita S3 i odlučuje kamo će poslati tu obavijest.
  3. S3 šalje obavijest Lambdi, ta obavijest djeluje kao pozivni poziv lambda funkcije.
  4. Izvršna se uloga u Lambdi može definirati upotrebom IAM-a (upravljanje identitetima i pristupom) za davanje dozvole za pristup AWS resursima, za ovaj primjer ovdje bi to bio S3.
  5. Konačno, poziva željenu lambda funkciju koja radi na objektu koji je prenesen u S3 segment.

Da tradicionalno, zajedno s razvojem, rješavate ovaj scenarij, angažirali biste ljude za upravljanje sljedećim zadacima:

  • Veličina, pružanje i proširivanje grupe poslužitelja
  • Upravljanje ažuriranjima OS-a
  • Primijenite sigurnosne zakrpe i
  • Pratite svu ovu infrastrukturu radi performansi i dostupnosti.

To bi bio skup, dosadan i naporan zadatak, stoga je potreba za AWS Lambda opravdana.AWS Lambda kompatibilan je s Node.JS, Python i Java, tako da datoteku možete prenijeti u zip datoteku, definirati izvor događaja i spremni ste!

Možete pročitati više o S3 AWS ovdje za dublje razumijevanje.

Sada znamo -Kako Lambda djeluje iKakva lambda srna s .

Nau, da razumijemo-

  • Gdje koristiti Lambdu?
  • Čemu služi Lambda, toostale usluge AWS Compute ne?

Ako biste trebali dizajnirati rješenje problema, trebali biste znati gdje koristiti Lambdu, zar ne?

Dakle, kao arhitekt imate sljedeće mogućnosti za izvršavanje zadatka:

  • AWS EC2
  • AWS Elastični grah
  • AWS OpsWorks
  • AWS Lambda

Uzmimo gornji slučaj upotrebe kao primjer i shvatimo zašto smo odabrali Lambdu da ga riješimo.

AWS OpsWorks i AWS ElasticBeanstalk koriste se za postavljanje aplikacije, pa je naš slučaj upotrebe ne za stvaranje aplikacije , već za izvršavanje pozadinskog koda.

Zašto onda ne EC2?

Ako biste koristili EC2, morali biste sve dizajnirati, tj. Uravnoteživač opterećenja, volumen EBS-a, hrpe softvera itd. U lambdi ne morate brinuti ni o čemu, samo umetnite svoj kôd, a AWS će upravljati ostatkom!

Na primjer , u EC2 biste na virtualni stroj instalirali softverske pakete koji bi podržavali vaš kôd, ali u Lambdi ne morate brinuti o bilo kojem VM-u, samo umetnite običan kôd i Lambda će ga izvršiti umjesto vas.

Ali, ako će se vaš kôd izvoditi satima, a očekujete neprekidni tok zahtjeva, vjerojatno biste trebali ići s EC2, jer je arhitektura Lambde za sporadičnu vrstu radnog opterećenja, pri čemu će biti mirnih sati i ponešto skokova u br. zahtjeva također.

Na primjer , bilježeći aktivnosti e-pošte za recimo malu tvrtku, vidjet će više aktivnosti tijekom dana nego noću, također može biti dana kada ima manje e-adresa za obradu, a ponekad bi vam cijeli svijet mogao početi slati e-poštu! U oba slučaja Lambda vam stoji na usluzi.

Uzimajući u obzir ovaj slučaj upotrebe za veliku tvrtku za društvene mreže, u kojoj e-adrese nikad ne prestaju jer ima ogromnu bazu korisnika, Lambda možda nije prikladan izbor.

Možete pročitati više o EC2 AWS ovdje za dublje razumijevanje.

Ograničenja AWS Lambda

Neka su ograničenja specifična za hardver, a neka veže arhitektura, razgovarajmo o svima njima.

Ograničenja hardvera uključuju veličinu diska, koja je ograničena na 512 MB, memorija može varirati između 128 MB i 1536 MB. Potom postoje i neki drugi, poput vremenskog ograničenja izvršenja, koje se može povećati na samo 5 minuta, korisna nosivost tijela zahtjeva ne može biti veća od 6 MB, a tijelo zahtjeva 128 KB. Korisni teret tijela zahtjeva je poput podataka koje šaljete sa zahtjevom „GET“ ili „PUT“ u HTTP-u, gdje bi kao tijelo zahtjeva bila vrsta zahtjeva, zaglavlja itd.

vrste operatora u javascriptu

Zapravo to nisu ograničenja, već su granice dizajna postavljene u arhitekturi Lambde, pa ako vaš slučaj upotrebe ne odgovara njima, uvijek ćete imati na raspolaganju ostale računske usluge AWS-a.

U ovom uputstvu za AWS Lambda raspravljali smo o tome kako izvršavanje zadataka u Lambdi 'nije' zamorno i zamorno. Pokrijmo sada i dio troškova.

Cijene u AWS Lambda

Kao i većina AWS usluga, AWS Lambda također je usluga plaćanja po korištenju, što znači da plaćate samo ono što koristite, pa vam se naplaćuju sljedeći parametri

  • Broj zahtjevi koje napravite za svoju lambda funkciju
  • The trajanje za koju se izvršava vaš kod.

Zahtjevi

  • Naplaćuje vam se broj zahtjeva koje podnesete za sve svoje lambda funkcije.
  • AWS Lambda broji zahtjev svaki put kad započne izvršavanje kao odgovor na izvor događaja ili poziv na poziv, uključujući i poziv koji se poziva iz konzole. Pogledajmo cijene sada:
    • Prvih milijun zahtjeva, svaki mjesec je besplatno.
    • Nakon toga 0,20 dolara na milijun zahtjeva.

Trajanje

  • Trajanje se izračunava od trenutka kada se kôd počne izvršavati do trenutka kada se vrati ili završi, zaokružuje se na najbližih 100 ms.
  • Cijena ovisi o količini memorije koju dodijelite svojoj funkciji, naplaćuje vam se 0,00001667 USD za svaku korištenu GB-sekundu.

* Izvor: službena web stranica AWS-a

Ako ste stigli do ovdje, spremni ste za praktični rad u Lambdi. Idemo se zabaviti!

Praktično: AWS Lambda uradi sam

Stvorimo Lambda funkciju koja će zabilježiti 'Objekt je dodan' nakon što dodate objekt u određeni segment u S3.

Korak 1: Iz odjeljka AWS Management Console u odjeljku za izračun odaberite AWS Lambda.

Korak 2: Na AWS Lambda konzoli kliknite na 'Stvori Lambda funkciju'.

Korak 3: Na sljedećoj stranici morate odabrati nacrt. Na primjer, odabrat ćemo praznu funkciju za naš slučaj upotrebe.

Korak 4: Na sljedećoj ćete stranici (1) postaviti okidač, jer ćemo raditi na S3, (2) odabrati okidač S3, a zatim (3) kliknuti Dalje.

Korak 5: Na stranici za konfiguraciju ispunite detalje. Možete staviti vlastiti kôd ili ga možete kopirati iz ovog slučaja upotrebe. Nakon toga popunite obrađivač i ulogu, ostavite napredne postavke kakve jesu, na kraju kliknite sljedeći.

Korak 6: Na sljedećoj stranici pregledajte sve podatke i kliknite na 'Stvori funkciju'.

Korak 7: Sad, budući da smo stvorili funkciju za S3 segment, čim dodate datoteku u svoj S3 segment, trebali biste dobiti zapisnik za isti u CloudWatchu, koji je usluga nadzora od AWS-a.

Čestitamo!Uspješno ste izvršili Lambda funkciju.

pretvori niz u niz php

Nadam se da ste uživali u dubokom zaronu u AWS Lambda Tutorial. Jedno je od najpoželjnijih područja znanja u AWS ekosustavu za radna mjesta poput Solutions Architect, Cloud Engineer, DevOps Engineer. Evo kolekcije od koji će vam pomoći da se pripremite za sljedeći razgovor za posao u AWS-u.

Ako vam se učini da je ovaj AWS Lambda Tutorial relevantan, možete pogledati Edurekin tečaj uživo i voditelja instruktora na , koju su zajedno stvorili stručnjaci iz industrije.

Imate pitanje za nas? Molimo spomenite to u odjeljku za komentare i javit ćemo vam se.