Čo je AWS Lambda? Funkcia lambda s príkladmi

Obsah:

Anonim

Pred funkciou AWS Lambda si uvedomme:

Čo je to Serverless?

Serverless je termín, ktorý sa všeobecne vzťahuje na aplikácie bez servera. Aplikácie bez servera sú aplikácie, ktoré nepotrebujú žiadne zabezpečenie servera a nevyžadujú správu serverov.

Čo je AWS Lambda?

AWS Lambda je výpočtová platforma bez serverov založená na udalostiach, ktorú spoločnosť Amazon poskytuje ako súčasť služieb Amazon Web Services. Preto si nemusíte robiť starosti s tým, ktoré zdroje AWS spustiť, alebo ako ich budete spravovať. Namiesto toho musíte umiestniť kód na Lambdu a je spustená.

V AWS Lambda sa kód vykonáva na základe odozvy udalostí v službách AWS, ako sú napríklad pridávanie / mazanie súborov v segmente S3, požiadavka HTTP z brány Amazon API atď. Amazon Lambda sa však dá použiť iba na vykonávanie úloh na pozadí.

Funkcia AWS Lambda vám pomáha sústrediť sa na váš hlavný produkt a obchodnú logiku namiesto riadenia prístupu, operačného systému (OS), opráv operačného systému, nastavenia veľkosti, poskytovania, škálovania atď.

V tomto výučbe AWS Lambda pre začiatočníkov sa dozviete:

  • Ako AWS Lambda funguje?
  • Udalosti, ktoré spúšťajú AWS Lambda
  • AWS Lambda Concepts
  • AWS Lambda VS AWS EC2
  • AWS Lambda VS AWS Elastic Beanstalk
  • Použite prípady AWS Lambda
  • Najlepšie postupy funkcie Lambda
  • Kedy nepoužívať AWS Lambda
  • Výhody použitia AWS Lambda
  • Obmedzenia AWS Lambda

Ako AWS Lambda funguje?

Nasledujúci príklad AWS Lambda s blokovým diagramom vysvetľuje fungovanie AWS Lambda v niekoľkých jednoduchých krokoch:

Krok 1: Najskôr nahrajte svoj kód AWS Lambda v ľubovoľnom jazyku podporovanom AWS Lambda. Java, Python, Go a C # sú niektoré z jazykov, ktoré sú podporované funkciou AWS Lambda.

Krok 2: Toto sú niektoré služby AWS, ktoré vám umožňujú spustiť AWS Lambda.

Krok 3: AWS Lambda vám pomôže nahrať kód a podrobnosti udalosti, na ktorých by sa mal spustiť.

Krok 4: Spustí kód AWS Lambda, keď ho spustia služby AWS:

Krok 5: Služba AWS sa účtuje, iba keď sa vykoná kód AWS lambda, a nie inak.

Stane sa to v nasledujúcich scenároch:

  • Načítajte súbory do segmentu S3
  • Pri zasiahnutí koncového URL koncového bodu HTTP get / post
  • Na pridanie / úpravu a odstránenie tabuliek Dynamo DB
  • V procese zberu dátových tokov
  • Push notifikácia
  • Hosting webových stránok
  • Posielanie e-mailov

Poznámka: Mali by ste pamätať na to, že za služby AWS budete účtovať až po vykonaní kódu AWS Lambda, inak nemusíte nič platiť.

Udalosti, ktoré spúšťajú AWS Lambda

Tu sú udalosti, ktoré sa spustia, keď použijete AWS Lambda.

  • Vkladanie, aktualizácia a mazanie údajov tabuľky Dynamo DB
  • Zahrnutie push oznámení do SNS
  • Ak chcete vyhľadať históriu protokolov v službe CloudTrail
  • Vstup do objektu S3
  • DynamoDB môže spustiť AWS Lambda vždy, keď sú v tabuľke pridané, upravené a odstránené údaje.
  • Pomáha vám naplánovať udalosť tak, aby sa úloha plnila v pravidelnom časovom intervale.
  • Úpravy objektov v segmentoch S3
  • Oznámenia odosielané z Amazonu SNS.
  • AWS Lambda možno použiť na spracovanie protokolov CloudTrail
  • API Gateway umožňuje spúšťať AWS Lambda na metódach GET / POST.

AWS Lambda Concepts

Funkcia:

Funkciou je program alebo skript, ktorý sa spúšťa v AWS Lambda. Lambda odovzdá udalosti vyvolania do vašej funkcie, ktorá udalosť spracuje a vráti jej odpoveď.

Runtime:

Runtime umožňuje funkcie v rôznych jazykoch, ktoré fungujú na rovnakom základnom prostredí vykonávania. To vám pomôže nakonfigurovať vašu funkciu za behu. Zhoduje sa tiež s vybraným programovacím jazykom.

Zdroj udalosti:

Zdrojom udalostí je služba AWS, napríklad Amazon SNS, alebo služba na mieru. Táto spúšťacia funkcia vám pomôže vykonať svoju logiku.

Lambda vrstvy:

Lambda vrstvy sú dôležitým distribučným mechanizmom pre knižnice, prispôsobené runtime a ďalšie dôležité závislosti funkcií. Táto súčasť AWS vám tiež pomáha spravovať váš vývojový funkčný kód oddelene od nemenného kódu a zdrojov, ktoré používa.

Záznamové toky:

Protokol toku umožňuje anotovať váš funkčný kód pomocou vlastných protokolovacích príkazov, ktoré vám pomôžu analyzovať priebeh vykonávania a výkon vašich funkcií AWS Lambda.

Ako používať AWS Lambda

Teraz sa naučíme, ako používať AWS Lambda s príkladom AWS Lambda:

Krok 1 ) Prejdite na https://aws.amazon.com/lambda/ a začnite

Krok 2 ) Vytvorte si účet alebo sa prihláste pomocou svojho existujúceho účtu

Krok 3 ) Na nasledujúcej stránke Lambda

  1. Upravte kód
  2. Kliknite na príkaz Spustiť

Krok 4 ) Uvidíte výstup

AWS Lambda VS AWS EC2

Tu sú niektoré hlavné rozdiely medzi AWS Lambda a EC2.

Parametre AWS Lambda AWS EC2
Definícia AWS Lambda je platforma ako služba (PaaS). Pomáha vám spustiť a spustiť váš backendový kód. AWS EC2 je infraštruktúra ako služba (laaS). Poskytuje virtualizované výpočtové zdroje.
Flexibilita Neponúka žiadnu flexibilitu na prihlásenie do výpočtových inštancií. Umožňuje vám zvoliť si prispôsobený operačný systém alebo jazykový runtime. Ponúka flexibilitu pri výbere rôznych inštancií, vlastných operačných systémov, bezpečnostných opráv a sietí atď.
Inštalačný proces Musíte zvoliť svoje prostredie, kde chcete spustiť kód, a vložiť kód do AWS Lambda. Prvýkrát v EC2 musíte zvoliť OS a nainštalovať všetok požadovaný softvér a potom vložiť kód do EC2.
Environmentálne obmedzenia Je obmedzený na niekoľko jazykov. Žiadne environmentálne obmedzenia.

AWS Lambda VS AWS Elastic Beanstalk

Tu sú niektoré hlavné rozdiely medzi AWS Lambda a Elastic Beanstalk.

Parametre AWS Elastic Beanstalk AWS Lambda
Hlavná úloha Nasadzujte a spravujte aplikácie na AWS Cloud bez obáv o infraštruktúru, ktorá tieto aplikácie prevádzkuje. AWS Lambda sa používa na spustenie a vykonávanie vášho koncového kódu. Nemôžete ho použiť na nasadenie aplikácie.
Výber zdrojov AWS Poskytuje vám slobodu výberu zdrojov AWS; Môžete napríklad zvoliť inštanciu EC2, ktorá je optimálna podľa vašej aplikácie. Nemôžete zvoliť zdroje AWS, ako napríklad inštancia EC2, Lambda ponúka zdroje založené na vašom pracovnom zaťažení.
Typ systému Je to stavový systém. Je to systém bez štátnej príslušnosti.

Použite prípady AWS Lambda

AWS Lambda používané pre širokú škálu aplikácií ako:

  • Pomáha vám pri procese ETL
  • Umožňuje vykonávať spracovanie súborov v reálnom čase a spracovanie streamu v reálnom čase
  • Používa sa na vytváranie webových aplikácií
  • Používajte v produktoch Amazon, ako sú Alexa Chatbots a Amazon Echo / Alexa
  • Spracovanie údajov (analýza streamingu v reálnom čase)
  • Automatické zálohovanie každodenných úloh
  • Škálovateľné zadné časti (mobilné aplikácie, zariadenia loT)
  • Pomáha vám vykonať backendovú logiku na strane servera
  • Umožňuje filtrovať a transformovať údaje

Najlepšie postupy funkcie Lambda

Tu uvádzame niektoré osvedčené postupy funkcií AWS Lambda:

  • Použite správny „časový limit“.
  • Využite funkcie miestneho úložiska s veľkosťou 500 MB v priečinku / temp
  • Minimalizácia použitia štartovacieho kódu, ktorý priamo nesúvisí so spracovaním aktuálnej udalosti.
  • Na prezeranie a optimalizáciu latencie požiadaviek by ste mali používať zabudované sledovanie vašich funkcií Lambda v službe CloudWatch.

Kedy nepoužívať AWS Lambda

Nasleduje situácia, keď Lambda určite nie je ideálnou voľbou:

  • Nie je vhodné používať softvérové ​​balíčky alebo aplikácie AWS Lambda, ktoré sa spoliehajú na volanie základných RPC systému Windows
  • Ak sa používa na zákazkové softvérové ​​aplikácie s licenčnými zmluvami, ako je spracovanie dokumentov MS-Office, databázy Oracle atď.
  • AWS Lambda by sa nemal používať na vlastný hardvérový proces, ako je akcelerácia GPU, príbuznosť hardvéru.

Výhody použitia AWS Lambda

Tu sú výhody a výhody používania AWS lambda:

  • AWS Lambda je vysoko flexibilný nástroj na použitie
  • Pomáha vám poskytnúť prístup k zdrojom vrátane VPC
  • Autor priamo s editorom WYSIWYG v konzole.
  • Môžete ho použiť ako doplnok pre Eclipse a Visual Studio.
  • Pretože sa jedná o architektúru bez servera, nemusíte sa starať o správu alebo poskytovanie serverov.
  • Nie je potrebné nastavovať žiadny virtuálny počítač.
  • Pomáha vývojárom spúšťať a spúšťať reakcie kódu na udalosti bez budovania akejkoľvek infraštruktúry.
  • Potrebujete iba vypočítaný čas, iba keď je spustený váš kód.
  • Výkonnosť kódu môžete sledovať v reálnom čase prostredníctvom služby CloudWatch.
  • Umožňuje vám spustiť váš kód bez poskytovania alebo spravovať akýkoľvek iný server
  • Pomáha vám vykonať kód iba v prípade potreby
  • Môžete ju automaticky škálovať tak, aby vybavovala niekoľko požiadaviek denne a dokonca podporovala viac ako tisíce požiadaviek za sekundu.
  • AWS Lambda je možné nakonfigurovať pomocou externých časovačov udalostí na vykonávanie naplánovaných úloh.
  • Funkcia lambda v AWS by mala byť nakonfigurovaná s externou udalosťou a časovačmi tak; dá sa použiť na plánovanie.
  • Funkcie lambda sú bezstavové, takže je možné ich rýchlo škálovať.
  • AWS Lambda je rýchly, takže vykoná váš kód do milisekúnd.

Obmedzenia AWS Lambda

Tu sú nevýhody / nevýhody používania AWS Lambda:

  • Nástroj AWS Lambda nie je vhodný pre malé projekty.
  • AWS Lambda sa pri infraštruktúre úplne spolieha na AWS, takže ak to vyžaduje váš kód, nemôžete nainštalovať žiadny ďalší softvér.
  • Súčasné vykonávanie je obmedzené na 100
  • AWS Lambda úplne závisel od AWS pre infraštruktúru; ak to vyžaduje váš kód, nemôžete nainštalovať žiadny ďalší softvér.
  • Objem jeho pamäte sa môže pohybovať medzi 128 až 1536 MB.
  • Žiadosť o udalosť by nemala presiahnuť 128 KB.
  • Funkcie Lambda vám pomôžu zapisovať svoje denníky iba do služby CloudWatch. Toto je jediný nástroj, ktorý vám umožňuje monitorovať alebo odstraňovať problémy s vašimi funkciami.
  • Časový limit jeho vykonania kódu je iba 5 minút.

Zhrnutie

  • Serverless je termín, ktorý sa všeobecne vzťahuje na aplikácie bez servera.
  • AWS Lambda je jednou z takýchto serverových výpočtových služieb. Preto si nemusíte robiť starosti s tým, ktoré zdroje AWS spustiť, alebo ako ich budú spravovať.
  • Funkciou je program alebo skript, ktorý sa spúšťa v serveri AWS Lambda bez servera.
  • Runtime umožňuje funkcie v rôznych jazykoch, ktoré fungujú na rovnakom základnom prostredí vykonávania.
  • Zdrojom udalostí je služba AWS, napríklad Amazon SNS, alebo služba na mieru.
  • Lambda vrstvy sú dôležitým distribučným mechanizmom pre knižnice, prispôsobené runtime a ďalšie dôležité závislosti funkcií.
  • Stream protokolu vám umožňuje anotovať váš funkčný kód pomocou vlastných protokolovacích príkazov, ktoré vám pomôžu analyzovať priebeh vykonávania a výkon vašich funkcií Lambda.
  • AWS Lambda je platforma ako služba (PaaS). Pomáha vám spustiť a spustiť váš backendový kód.
  • AWS EC2 je infraštruktúra ako služba (laaS). Poskytuje virtualizované výpočtové zdroje.
  • Nasadzujte a spravujte aplikácie na AWS Cloud bez obáv o infraštruktúru, ktorá tieto aplikácie prevádzkuje.
  • AWS Lambda sa používa na spustenie a vykonávanie vášho koncového kódu. Nemôžete ho použiť na nasadenie aplikácie.
  • AWS Lambda vám pomáha pri procese ETL.
  • Najlepším postupom funkcie Lambda v AWS je použitie správneho „časového limitu“.
  • Nie je vhodné používať softvérové ​​balíčky alebo aplikácie AWS Lambda, ktoré sa spoliehajú na volanie základných RPC systému Windows
  • AWS Lambda je vysoko flexibilný nástroj.
  • Nástroj AWS Lambda nie je vhodný pre malé projekty.
  • Bežnou udalosťou, ktorá sa spustí, keď použijete AWS Lambda, je Vloženie, aktualizácia a odstránenie údajov tabuľky Dynamo DB.