Co je AWS Lambda? Lambda funkce s příklady

Před funkcí AWS Lambda si ujasněme:

Co je Serverless?

Serverless je termín, který obecně označuje aplikace bez serveru. Bezserverové aplikace jsou takové, které nepotřebují žádné zajištění serveru a nevyžadují správu serverů.

Co je AWS Lambda?

AWS Lambda je událostmi řízená, bezserverová počítačová platforma poskytovaná společností Amazon jako součást Amazon Webové služby. Nemusíte se tedy starat o to, které prostředky AWS spustit nebo jak je budete spravovat. Místo toho musíte vložit kód na Lambda a spustí se.

V AWS Lambda se kód spouští na základě odezvy na události ve službách AWS, jako je přidání/smazání souborů v bucketu S3, požadavek HTTP z Amazon brána API atd. Amazon Lambda lze použít pouze k provádění úloh na pozadí.

Funkce AWS Lambda vám pomůže zaměřit se na váš hlavní produkt a obchodní logiku namísto správy řízení přístupu k operačnímu systému (OS), záplatování OS, správné velikosti, zřizování, škálování atd.

Jak funguje AWS Lambda?

Následující příklad AWS Lambda s blokovým diagramem vysvětluje fungování AWS Lambda v několika jednoduchých krocích:

Blokové schéma lambda AWS
Blokové schéma lambda AWS

Krok 1: Nejprve nahrajte svůj kód AWS Lambda v jakémkoli jazyce podporovaném AWS Lambda. Java, Python, Go a C# jsou některé z jazyků, které jsou podporovány funkcí AWS Lambda.

Krok 2: Toto jsou některé služby AWS, které vám umožňují spouštět AWS Lambda.

Krok 3: AWS Lambda vám pomůže nahrát kód a podrobnosti o události, při které by měl být spuštěn.

Krok 4: Spustí AWS Lambda kód, když je spuštěn službami AWS:

Krok 5: AWS se účtuje pouze tehdy, když se spustí kód lambda AWS, a ne jinak.

K tomu dojde v následujících scénářích:

  • Nahrajte soubory do bucketu S3
  • Při zásahu adresy URL koncového bodu HTTP get/post
  • Pro přidávání/úpravu a mazání tabulek Dynamo DB
  • V procesu sběru datových toků
  • Oznámení
  • Hosting webových stránek
  • Odeslání emailu

Poznámka: Měli byste si uvědomit, že za služby AWS budete účtovat pouze tehdy, když se spustí kód AWS Lambda, jinak nemusíte nic platit.

Události, které spouští AWS Lambda

Zde jsou události, které se spustí, když použijete AWS Lambda.

  • Vkládání, aktualizace a mazání dat tabulky Dynamo DB
  • Chcete-li do SNS zahrnout oznámení push
  • Chcete-li vyhledat historii protokolů v CloudTrail
  • Vstup do objektu S3
  • DynamoDB může spustit AWS Lambda, kdykoli jsou v tabulce přidána, upravena nebo odstraněna data.
  • Pomáhá vám naplánovat událost tak, aby byla úloha provedena v pravidelném časovém vzoru.
  • Úpravy objektů v bucklech S3
  • Oznámení odeslaná z Amazon SNS.
  • AWS Lambda lze použít ke zpracování protokolů CloudTrail
  • API Gateway umožňuje spouštět AWS Lambda na metodách GET/POST.

AWS Lambda Concepts

Funkce:

Funkce je program nebo skript, který běží v AWS Lambda. Lambda předává události vyvolání do vaší funkce, která událost zpracuje a vrátí její odpověď.

Běh:

Runtime umožňuje funkce v různých jazycích, které běží na stejném základním prováděcím prostředí. To vám pomůže nakonfigurovat vaši funkci za běhu. Také odpovídá vámi vybranému programovací jazyk.

Zdroj události:

Zdrojem události je služba AWS, jako je např Amazon SNS nebo vlastní služba. Tato spouštěcí funkce vám pomůže provést její logiku.

Lambda vrstvy:

Lambda vrstvy jsou důležitým distribučním mechanismem pro knihovny, vlastní runtime a další důležité funkce. Tato komponenta AWS vám také pomáhá spravovat kód vývojové funkce odděleně od neměnného kódu a prostředků, které používá.

Zaznamenat streamy:

Log stream vám umožňuje anotovat váš funkční kód pomocí vlastních protokolovacích příkazů, které vám pomohou analyzovat tok provádění a výkon vašich funkcí AWS Lambda.

Jak používat AWS Lambda

Nyní se naučíme, jak používat AWS Lambda s příkladem AWS Lambda:

Krok 1) Krok 1) Otevřete AWS Lambda URL
Jít https://aws.amazon.com/lambda/ a Začínáme

Jak používat AWS Lambda

Krok 2) Vytvořit účet
Dále vytvořte účet nebo se přihlaste pomocí svého stávajícího účtu

Krok 3) Upravte kód a klikněte na Spustit,
Na další stránce Lambda

  1. Upravte kód
  2. Klepněte na tlačítko Spustit

Jak používat AWS Lambda

Krok 4) Zkontrolujte výstup
Uvidíte výstup

Jak používat AWS Lambda

AWS Lambda VS AWS EC2

Zde jsou některé hlavní rozdíly mezi AWS Lambda a EC2.

parametry AWS Lambda AWS EC2
Definice AWS Lambda je platforma jako služba (PaaS). Pomáhá vám spouštět a spouštět váš backendový kód. AWS EC2 je infrastruktura jako služba (laaS). Poskytuje virtualizované výpočetní zdroje.
Flexibilita Nenabízí žádnou flexibilitu pro přihlášení k výpočetním instancím. Umožňuje vám vybrat si přizpůsobený operační systém nebo jazykové prostředí. Nabízí flexibilitu pro výběr různých instancí, vlastních operačních systémů, bezpečnostních záplat a sítě atd.
Instalační proces Musíte vybrat své prostředí, kde chcete spustit kód, a vložit kód do AWS Lambda. Poprvé v EC2 si musíte vybrat OS a nainstalovat veškerý požadovaný software a poté vložit svůj kód do EC2.
Omezení prostředí Je omezena na několik jazyků. Žádná omezení prostředí.

AWS Lambda VS AWS Elastická fazolová stopka

Zde jsou některé hlavní rozdíly mezi AWS Lambda a Elastic Beanstalk.

parametry AWS Elastická fazolová stopka AWS Lambda
Hlavní úkol Nasazujte a spravujte aplikace na AWS Cloud, aniž byste se museli starat o infrastrukturu, která tyto aplikace provozuje. AWS Lambda se používá ke spouštění a spouštění vašeho Back-end kódu. Nemůžete jej použít k nasazení aplikace.
Výběr zdrojů AWS Poskytuje vám svobodu ve výběru zdrojů AWS; Můžete si například vybrat instanci EC2, která je optimální pro vaši aplikaci. Nemůžete vybrat prostředky AWS, jako je typ instance EC2, Lambda nabízí prostředky na základě vaší pracovní zátěže.
Typ systému Je to stavový systém. Je to bezstavový systém.

Případy použití AWS Lambda

AWS Lambda se používá pro širokou škálu aplikací, jako jsou:

  • Pomáhá vám pro proces ETL
  • Umožňuje provádět zpracování souborů v reálném čase a zpracování streamů v reálném čase
  • Použití pro tvorbu webových aplikací
  • Použití v Amazon produkty jako Alexa Chatbots a Amazon Echo/Alexa
  • Zpracování dat (analýza streamování v reálném čase)
  • Automatické zálohování každodenních úkolů
  • Škálovatelné backendy (mobilní aplikace, loT zařízení)
  • Pomáhá vám spustit logiku backendu na straně serveru
  • Umožňuje filtrovat a transformovat data

Osvědčené postupy funkce Lambda

Zde jsou některé osvědčené postupy AWS Funkce lambda:

  • Použijte správný „časový limit“.
  • Využijte funkce místního úložiště o velikosti 500 MB ve složce /temp
  • Minimalizace použití spouštěcího kódu, který přímo nesouvisí se zpracováním aktuální události.
  • Pro zobrazení a optimalizaci latence požadavků byste měli používat vestavěné monitorování CloudWatch vašich funkcí Lambda.

Kdy nepoužívat AWS Lambda

Následuje situace, kdy Lambda určitě není ideální volbou:

  • Není vhodné používat softwarové balíčky nebo aplikace AWS Lambda, které se spoléhají na základní volání Windows RPC
  • Pokud se používá pro zakázkové softwarové aplikace s licenčními smlouvami, jako je zpracování dokumentů MS-Office, Oracle databáze atd.
  • AWS Lambda by se nemělo používat pro vlastní hardwarové procesy, jako je akcelerace GPU, hardwarová afinita.

Výhody použití AWS Lambda

Zde jsou výhody/výhody používání AWS lambda:

  • AWS Lambda je vysoce flexibilní nástroj k použití
  • Pomáhá vám udělit přístup ke zdrojům, včetně VPC
  • Autor přímo s WYSIWYG editor v konzoli.
  • Můžete jej použít jako plugin pro Eclipse si Visual Studio.
  • Protože se jedná o bezserverovou architekturu, nemusíte se starat o správu nebo zajišťování serverů.
  • Nemusíte žádné nastavovat Virtuální stroj.
  • Pomáhá vývojářům spouštět a spouštět odezvu kódu na události bez budování jakékoli infrastruktury.
  • Potřebujete pouze výpočetní čas, pouze když váš kód běží.
  • Výkon svého kódu můžete sledovat v reálném čase prostřednictvím CloudWatch.
  • Umožňuje vám spouštět kód bez zřizování nebo spravovat jakýkoli jiný server
  • Pomůže vám spustit kód pouze v případě potřeby
  • Můžete jej automaticky škálovat tak, aby zpracoval několik požadavků za den a dokonce podporoval více než tisíce požadavků za sekundu.
  • AWS Lambda lze nakonfigurovat pomocí externích časovačů událostí pro provádění naplánovaných úloh.
  • Funkce lambda v AWS by měla být nakonfigurována s externími událostmi a časovači; lze jej použít pro plánování.
  • Funkce lambda jsou bezstavové, takže je lze rychle škálovat.
  • AWS Lambda je rychlý, takže váš kód spustí během milisekund.

Omezení AWS Lambda

Zde jsou nevýhody/nevýhody používání AWS Lambda:

  • Nástroj AWS Lambda není vhodný pro malé projekty.
  • AWS Lambda zcela spoléhá na AWS pro infrastrukturu, takže nemůžete instalovat žádný další software, pokud to váš kód vyžaduje.
  • Souběžné provádění je omezeno na 100
  • AWS Lambda zcela závisela na AWS pro infrastrukturu; nemůžete nainstalovat žádný další software, pokud to váš kód vyžaduje.
  • Objem jeho paměti se může pohybovat mezi 128 až 1536 MB.
  • Požadavek na událost by neměl přesáhnout 128 kB.
  • Funkce Lambda vám pomohou zapisovat jejich protokoly pouze v CloudWatch. Toto je jediný nástroj, který vám umožňuje sledovat nebo odstraňovat problémy s vašimi funkcemi.
  • Jeho časový limit spuštění kódu je pouhých 5 minut.

Shrnutí

  • Serverless je termín, který obecně označuje aplikace bez serveru.
  • AWS Lambda je jednou takovou bezserverovou výpočetní službou. Nemusíte se tedy starat o to, které prostředky AWS spustit nebo jak je budou spravovat.
  • Funkce je program nebo skript, který běží v AWS bez serveru Lambda.
  • Runtime umožňuje funkce v různých jazycích, které běží na stejném základním prováděcím prostředí.
  • Zdrojem události je služba AWS, jako je např Amazon SNS nebo vlastní služba.
  • Lambda vrstvy jsou důležitým distribučním mechanismem pro knihovny, vlastní runtime a další důležité funkce.
  • Log stream vám umožňuje anotovat váš funkční kód pomocí vlastních protokolovacích příkazů, které vám pomohou analyzovat tok provádění a výkon vašich funkcí Lambda.
  • AWS Lambda je platforma jako služba (PaaS). Pomáhá vám spouštět a spouštět váš backendový kód.
  • AWS EC2 je infrastruktura jako služba (laaS). Poskytuje virtualizované výpočetní zdroje.
  • Nasazujte a spravujte aplikace na AWS Cloud, aniž byste se museli starat o infrastrukturu, která tyto aplikace provozuje.
  • AWS Lambda se používá ke spouštění a spouštění vašeho Back-end kódu. Nemůžete jej použít k nasazení aplikace.
  • AWS Lambda vám pomůže ETL proces.
  • Nejlepším postupem funkce Lambda v AWS je použít správný „časový limit“.
  • Není vhodné používat softwarové balíčky nebo aplikace AWS Lambda, které se spoléhají na základní volání Windows RPC
  • AWS Lambda je vysoce flexibilní nástroj.
  • Nástroj AWS Lambda není vhodný pro malé projekty.
  • Běžnou událostí, která se spustí, když používáte AWS Lambda, je vložení, aktualizace a odstranění dat tabulky Dynamo DB.