AWS Lambda je bezserverová výpočetní platforma řízená událostmi, kterou poskytuje společnost Amazon jako součást webových služeb Amazon.Tato služba spouští kód v reakci na události a automaticky spravuje veškeré potřebné výpočetní zdroje. Byla představena v listopadu 2014.
Zní to skvěle? Nebylo pro Ruby Vývojáři. Až do 29. listopadu 2018 nebyl jazyk Ruby podporován pro zahájení bezserverové revoluce. Pak ale přišel Jets a vše se změnilo.
Jak se hrdě píše na oficiálních stránkách Ruby on Jets:
"Ruby on Jets umožňuje snadno vytvářet a nasazovat bezserverové služby a bezproblémově propojovat. AWS služby společně s nejkrásnějším dynamickým jazykem: Ruby. Obsahuje vše, co potřebujete k vytvoření API a jeho nasazení na AWS Lambda. Jets využívá sílu jazyka Ruby k tomu, aby byl serverless radostný pro každého."
Práce s Jetsem, zvláště pro někoho, kdo má nějaké zkušenosti s... Rails nebo Sinatra, se stává poměrně snadným a příjemným.
Abychom to dokázali, vytvoříme v tomto článku jednoduchou bezserverovou aplikaci.
Jste připraveni?
Stavební aplikace
Vytvoříme velmi jednoduchou aplikaci Jets. Ta bude poskytovat nás se základními informacemi o tom, jak vytvořit trasy, kontroléry a akce a jak je nasadit na AWS Lambda. Aby to bylo jednoduché a snadné, budeme používat pouze jeden koncový bod, který bude vracet náhodný vtip o Chucku Norrisovi.
Instalace
Nejprve globálně nainstalujme drahokam Jets. V konzoli zadejte:

Pak vytvořte nové Jets projekt s:

(Volby -mode api a -no-database nejsou nutné, jen trochu urychlí instalaci, protože zde nepotřebujeme žádnou databázi ani pohledy.)
Nyní v adresáři chuck-norris-jokes spusťte:

Vstup na stránky localhost:8888 v prohlížeči, měli byste vidět něco takového:

Pokud vidíte toto - gratulujeme, vše jste udělali správně!
Řídicí jednotka a trasy
Nyní se chystáme vytvořit náš první řadič Jets.
Do konzoly zadejte:

Tím se vytvoří náš JokesController s jednou akcí uvnitř - create. Ve výchozím nastavení Jets vytvoří pro tuto akci trasu typu "get", takže ji musíme upravit.
Na adrese routes.rb změna souboru získat "jokes/create" na příspěvek 'vtipy', na: "jokes#create".

Získání požadavku
Chceme-li načíst některé věci Chucka Norrise, musíme zavolat do rozhraní John Doe Api. Poté odpovíme pomocí json obsahujícího načtený vtip.

Místní testování
Můžeme ji spustit lokálně a otestovat, zda dostáváme očekávanou odezvu. Provedeme požadavek POST na náš místní server pomocí příkazu curl.
(Pozor: ujistěte se, že server stále běží).

Nasazení
Pokud máte účet AWS s příslušnými zásadami (najdete je v oficiální dokumentaci Jets), stačí spustit poslední věc, kterou musíte udělat:

Tím se naše aplikace nahraje do služby AWS.
Po dokončení nasazení se zobrazí koncový bod brány API (pravděpodobně poslední řádek v konzoli).
Testování aplikace AWS Lambda
Nyní je konečně čas otestovat naši nasazenou aplikaci!
Můžeme to provést opět pomocí curl, ale nyní nahradíme localhost koncovým bodem brány API, který jsme dostali.

Souhrn
To je vše, přátelé! Doufám, že se vám tento krátký pohled do světa Ruby on Jets a serverless líbil.
Přečtěte si více: