AWS Lambda is een event-driven, serverless computing platform aangeboden door Amazon als onderdeel van de Amazon Web Services. Deze service voert code uit in reactie op gebeurtenissen en beheert automatisch alle benodigde computing resources. Het werd geïntroduceerd in november 2014.
Klinkt geweldig? Niet voor Ruby-ontwikkelaars. Tot 29 november 2018 werd Ruby niet ondersteund om de serverless revolutie te starten. Maar toen kwamen Jets en is alles veranderd.
Zoals de officiële Ruby on Jets website trots zegt:
“Ruby on Jets allows you to create and deploy serverless services with ease, and to seamlessly glue AWS services together with the most beautiful dynamic language: Ruby. It includes everything you need to build an API and deploy it to AWS Lambda. Jets leverages the power of Ruby to make serverless joyful for everyone”
Inderdaad, werken met Jets, vooral voor iemand die al wat ervaring heeft met Rails of Sinatra, wordt relatief eenvoudig en aangenaam.
Om dat te bewijzen, gaan we in dit artikel een eenvoudige serverloze applicatie bouwen.
Klaar?
Bouwtoepassing
Wat we gaan doen, is een heel eenvoudige Jets-app maken. Dit zal ons wat basisinformatie geven over hoe we routes, controllers en acties kunnen maken en hoe we kunnen implementeren naar AWS Lambda. Om het eenvoudig en gemakkelijk te houden, gebruiken we slechts één eindpunt, dat een willekeurige Chuck Norris-grap retourneert.
Installatie
Laten we eerst Jets gem globaal installeren. Typ in uw console:

Maak vervolgens nieuwe Jets project met:

(Opties -mode api en -no-database zijn niet nodig, het versnelt alleen de installatie een beetje, omdat we hier geen database of views nodig hebben).
Voer nu in uw map chuck-norris-jokes uit:

Naar localhost:8888
in je browser, zou je iets als dit moeten zien:

Als dit is wat je ziet - gefeliciteerd, je hebt alles goed gedaan!
Controller en routes
Wat we nu gaan doen is onze eerste Jets-controller maken.
Typ in de console:

Dit maakt onze JokesController met één actie erin - create. Standaard maakt Jets een route van het type "get" voor de actie, dus die moeten we aanpassen.
In routes.rb bestandswijziging krijg "grappen/creëren" naar post 'jokes', naar: "jokes#create".

Het verzoek ophalen
Om Chuck Norris-grappen op te halen, moeten we de John Doe Api bellen. Dan antwoorden we met json met de opgehaalde grap.

Lokaal testen
We kunnen dit lokaal uitvoeren om te testen of we de verwachte respons krijgen. Wat we gaan doen is een POST-verzoek doen aan onze lokale server met behulp van krul
.
(Let op: zorg ervoor dat je server nog draait).

Installeer
Als je een AWS-account hebt met de juiste beleidsregels (je kunt ze vinden in de officiële documentatie van Jets), is het laatste wat je hoeft te doen gewoon uitvoeren:

Hiermee wordt onze applicatie geüpload naar AWS.
Als de implementatie klaar is, krijg je je API gateway eindpunt (waarschijnlijk de laatste regel in de console).
Je AWS Lambda-applicatie testen
Nu is het eindelijk tijd om onze app te testen!
We kunnen dit opnieuw doen met curl, maar nu door localhost te vervangen door het API gateway eindpunt, dat we hebben gekregen.

Samenvatting
Dat is alles mensen! Hopelijk hebben jullie genoten van deze korte blik op Ruby on Jets en de serverloze wereld.
Lees meer: