Úvod do AWS Lambda pro začátečníky

Pojďme se společně podívat na základy služby AWS Lambda a naučit se, jak krok za krokem spustit funkci.

Základní seznámení

Při vývoji aplikací je klíčové, aby poskytovaly uživatelům skvělý zážitek. K tomu, aby se tak stalo, potřebuje vaše aplikace backendový kód, který reaguje na různé události.

Správa infrastruktury pro hosting a spouštění backendového kódu však obnáší mnoho úkolů: dimenzování, zajišťování a škálování serverů, správu aktualizací operačního systému, aplikování bezpečnostních záplat a následné monitorování výkonu a dostupnosti celé této infrastruktury.

Nebyl by skvělé, kdybyste se mohli plně soustředit na vytváření výjimečných aplikací, aniž byste se museli starat o veškerou infrastrukturu? Právě zde přichází na scénu AWS Lambda.

Co je to AWS Lambda?

AWS Lambda je bezserverová výpočetní služba, která vám umožňuje spouštět váš kód, aniž byste se museli starat o jakékoli servery. Můžete provozovat vaši aplikaci nebo backendovou službu s AWS Lambda s nulovou administrací. Stačí jen nahrát váš kód a Lambda se postará o spuštění a škálování infrastruktury s vysokou dostupností.

Kód, který spouštíte na AWS Lambda, se nazývá lambda funkce. V současné době podporuje tyto programovací jazyky:

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

Kromě toho nabízí také runtime API, které umožňuje spouštět funkce napsané i v jiných (nativních) programovacích jazycích.

Pro práci s AWS Lambda je nutné mít pouze jeden předpoklad: mít aktivní účet na AWS, který vám umožní přístup do AWS Management Console.

Lambda je FaaS (Function-as-a-Service) služba od AWS.

Funkce AWS Lambda

Níže naleznete seznam některých důležitých funkcí, které AWS Lambda nabízí:

  • AWS Lambda snadno škáluje infrastrukturu bez nutnosti jakékoli další konfigurace, čímž minimalizuje provozní zátěž.
  • Nabízí mnoho možností spouštění událostí, jako jsou AWS S3, CloudWatch, DynamoDB, API Gateway, Kinesis, CodeCommit a mnoho dalších.
  • Nevyžaduje žádné počáteční investice. Platíte pouze za paměť, kterou funkce Lambda využívá, a minimální poplatek za počet požadavků, což z ní činí nákladově efektivní řešení.
  • AWS Lambda je bezpečná. Pro správu rolí a bezpečnostních zásad využívá AWS IAM.
  • Poskytuje odolnost proti chybám jak pro služby, které spouští kód, tak i pro samotné funkce. Nemusíte se obávat selhání aplikace.

Ceny AWS Lambda

Cena AWS Lambda se odvíjí od doby trvání spuštění funkce a množství paměti, kterou lambda funkce využívá. Maximální množství paměti, které můžete funkci lambda přidělit, je 3008 MB v krocích po 64 MB. Níže naleznete tabulku s cenami za 100 milisekund pro různé alokace paměti.

Jak AWS Lambda funguje?

  • Nejprve vytvoříte funkci a zadáte základní informace, jako je programovací jazyk, který se má použít.
  • Následně napíšete kód přímo v lambda editoru, nebo ho nahrajete v ZIP souboru v podporovaném programovacím jazyce.
  • Po nahrání kódu se služba automaticky postará o škálování kapacity, údržbu a správu infrastruktury.
  • Pro spuštění kódu je potřeba funkci lambda aktivovat pomocí externí služby AWS, která funkci vyvolá. Může to být například S3 bucket.
  • Během několika sekund je Lambda připravená automaticky spustit vaši funkci při výskytu události. AWS Lambda provede váš kód, když je spouštěcí událost zavolána. Stará se o správu a monitorování serverů za vás.
  • Pokud vaše funkce vyžaduje velký výpočetní výkon, Lambda vybere instanci s větším výpočetním výkonem a RAM. Pokud se váš kód spouští pouze dvě sekundy, vybere nejmenší možnou instanci, čímž šetří vaše peníze a čas.

Takto interně funguje AWS Lambda. Nyní si ukážeme praktické demo použití AWS Lambda.

Vytvoření funkce AWS Lambda

V tomto článku si vytvoříme jednoduchou hru pomocí funkce Lambda v Node.js. Vytvoříme lambda funkci pro hod kostkou, která vygeneruje náhodné číslo v rozmezí 1 až 6 a vypíše ho.

  • Přejděte do AWS Management Console a do vyhledávacího pole zadejte „Lambda“ a klikněte na Lambda.

  • Zobrazí se vám okno funkce. Klikněte na „Vytvořit funkci“.

  • Zobrazí se vám různé možnosti pro vytvoření funkce. Protože ji vytváříme od začátku, vyberte „Autor od začátku“.

  • Poté je potřeba vyplnit základní informace o funkci Lambda. Zadejte název funkce a vyberte verzi Node.js, kterou chcete použít.
  • Dále si musíte vybrat prováděcí roli. Protože nemáme žádnou definovanou roli v našem AWS účtu, vyberte možnost vytvoření nové role. Klikněte na „Vytvořit funkci“.

  • Po vytvoření obdržíte zprávu o úspěchu. Kliknutím na okno „Návrhář“ ho minimalizujte.

  • Následně se zobrazí okno „Kód funkce“.
  • Vložte níže uvedený kód do editoru. Kód je možné také nahrát pomocí ZIP souboru, ale my využijeme interní editor kódu AWS.

  • Jedná se o jednoduchý kód, který generuje náhodné číslo od 1 do 6 pomocí matematické funkce. Toto číslo pak vypíše, když je funkce zavolána.
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;
};
  • Nyní klikněte na tlačítko „Test“ v pravém horním rohu. Zobrazí se vyskakovací okno pro konfiguraci testovací události. Zadejte název události a klikněte na „Konfigurovat“.

  • Nyní klikněte na „Uložit“ a následně na „Test“.

V sekci „Execution Result“ uvidíte výstup logiky funkce, kterou jsme právě napsali. Vypíše se „výsledek hodu kostkou je 2“.

  • Nahoře klikněte na „Podrobné výsledky provedení“ pro zobrazení úplného souhrnu funkce Lambda, včetně očekávaného výstupu. K dispozici jsou také detaily jako ID požadavku, doba trvání, fakturovaná doba, nakonfigurované zdroje a výstup protokolu.

  • Kliknutím na kartu „Monitoring“ zobrazíte protokoly CloudWatch a výkon funkce Lambda za definovanou dobu.

  • Pokud přejdete do logů, které CloudWatch vytvořil, uvidíte detailní informace o tom, co se stalo během spouštění funkce Lambda, kterou CloudWatch monitoroval.

Závěr

Začít s Lambda je skutečně snadné. Pokud vaše obchodní aplikace potřebuje spouštět backendový kód, měli byste zvážit použití bezserverové platformy, jako je AWS Lambda.

Líbil se vám tento článek? Podělte se o něj se světem!