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

⚡ Chytré shrnutí

AWS Lambda je událostmi řízená, bezserverová výpočetní platforma od společnosti Amazon Webové služby, které spouštějí váš kód v reakci na spouštěče a automaticky zpracovávají zřizování, škálování a správu serveru, takže se můžete soustředit pouze na obchodní logiku.

  • ☁️ Bezserverový model: AWS Lambda spouští kód bez nutnosti zřizování nebo správy serverů, čímž eliminuje nutnost záplatování operačního systému, škálování a plánování kapacity.
  • Provádění řízené událostmi: Funkce spouštěné ze služeb AWS, jako je S3, DynamoDB, API Gateway a SNS, spouštěné pouze v případě, že dojde k události.
  • 🧩 Jazyková podpora: Lambda podporuje Node.js, Python, Java, Go, C# a Ruby, plus vlastní běhové prostředí pro další jazyky.
  • ???? Platba za použití: BillPlatí pouze po dobu provádění kódu, měřeno v milisekundách, s trvalou měsíční bezplatnou úrovní jednoho milionu požadavků.
  • 🛠️ Základní koncepty: Funkce, běhové prostředí, zdroje událostí, vrstvy a logovací proudy definují, jak Lambda spouští a spravuje kód.
  • 🤖 Asistence AI: GitHub Copilot a Amazon Q generuje kód Lambda, zatímco Lambda orchestruje generativní inferenci umělé inteligence prostřednictvím Amazon Podklad.

Co je AWS Lambda

Než se pustíme do AWS Lambda, je dobré pochopit, co znamená bezserverový přístup (serverless).

Co je Serverless?

Termín „serverless“ se obecně vztahuje na bezserverové aplikace. Bezserverové aplikace jsou ty, které nepotřebují žádné zprovoznění serveru a nevyžadují od vás jeho správu.

Co je AWS Lambda?

AWS Lambda je událostmi řízená, bezserverová výpočetní platforma poskytovaná společností Amazon jako součást Amazon Webové služby. Proto se nemusíte starat o to, které zdroje AWS spustit nebo jak je budete spravovat. Místo toho stačí umístit kód na Lambdu a ten běží.

V AWS Lambda se kód spouští na základě odezvy událostí ve službách AWS, jako je přidání nebo odstranění souborů v bucketu S3, požadavek HTTP od Amazon API Gateway a podobné události. Nicméně Amazon Lambda lze použít pouze k provádění úloh na pozadí.

Funkce AWS Lambda vám pomáhá soustředit se na váš klíčový produkt a obchodní logiku namísto správy řízení přístupu k operačnímu systému (OS), oprav OS, úpravy 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

Krok 1: Nejprve nahrajte svůj kód AWS Lambda v jakémkoli jazyce podporovaném AWS Lambda. Java, PythonMezi jazyky, které funkce AWS Lambda podporuje, patří , Go a C#.

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í kód AWS Lambda, když je spuštěn službami AWS.

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

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

  • Nahrajte soubory do bucketu S3
  • Když koncový bod HTTP get/post URL je zasažen
  • Pro přidávání, úpravu a mazání tabulek databáze Dynamo
  • 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 poplatky za služby AWS vám budou účtovány pouze v případě spuštění kódu AWS Lambda, jinak nemusíte platit nic.

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

Zde jsou události, které se spustí při používání AWS Lambda.

  • Vkládání, aktualizace a mazání dat v tabulce databáze Dynamo
  • 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 úkol probíhal v pravidelném časovém rámci.
  • Ú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ěží ve stejném základním spouštěcím prostředí. To vám pomůže nakonfigurovat funkci v běhovém prostředí. Také to odpovídá vámi zvolenému programovací jazyk.

Zdroj události: Zdrojem události je služba AWS, jako je např Amazon Sociální sítě nebo vlastní služba. Tento spouštěč pomáhá funkci spustit 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: Proud protokolů umožňuje anotovat váš funkční kód pomocí vlastních příkazů protokolování, 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 na příkladu AWS Lambda:

Krok 1) Otevřete AWS Lambda URL

Přejít https://aws.amazon.com/lambda/ a Začít.

Jak používat AWS Lambda

Krok 2) Vytvořit účet

Dále si vytvořte účet nebo se přihlaste pomocí stávajícího účtu.

Jak používat AWS Lambda

Krok 3) Upravte kód a klikněte na Spustit

Na další stránce Lambda upravte kód a klikněte na Spustit.

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 (IaaS). Poskytuje virtualizované výpočetní zdroje.
Flexibilita Nenabízí žádnou flexibilitu pro přihlašování k výpočetním instancím. Umožňuje vám zvolit si vlastní operační systém nebo běhové prostředí. Nabízí flexibilitu výběru 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 prostředí, ve kterém chcete kód spustit, a vložit ho 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 omezeno na několik jazyků. Žádná omezení prostředí.

AWS Lambda VS AWS Elastic Beanstalk

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

parametry AWS Elastic Beanstalk 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 provádění back-endového kódu. Nelze ji použít k nasazení aplikace.
Výběr zdrojů AWS Dává vám svobodu výběru zdrojů AWS; například si můžete vybrat instanci EC2, která je optimální pro vaši aplikaci. Nemůžete si vybrat zdroje AWS, jako je tomu u instance EC2; Lambda nabízí zdroje 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 například:

  • Pomáhá vám s ETL proces
  • 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álohy každodenních úkolů
  • Škálovatelné backendy (mobilní aplikace, IoT 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 pro funkce AWS Lambda:

  • Použijte správný „časový limit“.
  • Využijte funkce lokálního úložiště, které má velikost 500 MB ve složce /temp.
  • Minimalizujte používání 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ásledují situace, kdy Lambda rozhodně není ideální volbou:

  • Není vhodné používat AWS Lambda pro softwarové balíčky nebo aplikace, které se spoléhají na volání podkladových 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ěla používat pro vlastní hardwarové procesy, jako je akcelerace GPU a 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.
  • 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 a Visual Studio.
  • Protože se jedná o bezserverovou architekturu, nemusíte se starat o správu ani zřizová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.
  • Platit stačí za výpočetní čas, a to pouze tehdy, když se váš kód spustí.
  • 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 váš kód bez nutnosti zřizování nebo správy jakéhokoli jiného serveru.
  • Pomáhá vám spustit kód pouze tehdy, když je to potřeba.
  • 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 konfigurována s externími událostmi a časovači, aby ji bylo možné použít pro plánování.
  • Lambda funkce 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 se pro infrastrukturu zcela spoléhá na AWS, takže pokud to váš kód vyžaduje, nemůžete instalovat žádný další software.
  • Souběžné spouštění má výchozí limit 1 000 na region, který lze na vyžádání zvýšit.
  • Jeho objem paměti se může pohybovat mezi 128 MB a 10 240 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.
  • Časový limit pro spuštění jeho kódu je omezen na 15 minut.

Nejčastější dotazy

AWS Lambda nativně podporuje Node.js, Python, Java, Go, C#, PowerShell a Ruby. Runtime API a podpora kontejnerových obrazů vám umožňují spustit téměř jakýkoli jiný jazyk, takže týmy jsou jen zřídka omezeny svým preferovaným stackem.

AWS Lambda zahrnuje trvalou bezplatnou úroveň jednoho milionu požadavků a 400 000 GB sekund výpočetního času měsíčně. Kromě toho platíte pouze za požadavky a výpočetní čas, který váš kód skutečně využije, a to za milisekundy.

Studený start je krátké zpoždění, kdy Lambda inicializuje nové prostředí pro spuštění funkce, která byla nečinná. Můžete ho zkrátit pomocí zřízené souběžnosti, menších balíčků nebo SnapStartu pro... Java funkce.

Ano. Kromě nahrání ZIP archivu umožňuje Lambda zabalit funkci jako kontejnerový obraz až do velikosti 10 GB. To je vhodné pro větší závislosti a knihovny strojového učení a zároveň zachovává...ping stejný model provádění řízený událostmi a bez serveru.

Lambda spouští krátké funkce řízené událostmi s automatickým škálováním a fakturací po milisekundách. AWS Fargate spouští delší kontejnerizované úlohy bez správy serverů. Zvolte Lambdu pro rychlé reakce na události a Fargate pro stabilní, dlouhodobé kontejnerové úlohy.

Ano. Lambda běžně pohání aplikace umělé inteligence spuštěním lehké inference a orchestrováním volání služeb, jako je Amazon Bedrock a SageMaker. Podpora kontejnerových imagí pomáhá s balíčkováním knihoven strojového učení, zatímco Lambda se stará o škálování generativního kanálu umělé inteligence.

Ano. GitHub Copilot zapisuje obslužné funkce z komentáře nebo názvu, zatímco Amazon Q Developer přidává nápovědu s ohledem na AWS pro zásady IAM, CloudFormation a volání SDK, čímž urychluje vývoj bez serveru.

Udělte každé funkci roli IAM s nejnižšími oprávněními, uložte tajné informace do šifrovaných proměnných prostředí nebo do Správce tajných informací a umístěte citlivé funkce do VPC. CloudWatch a CloudTrail poté zaznamenávají aktivitu pro účely monitorování a auditu.

Shrňte tento příspěvek takto: