Brzmi świetnie? Nie dla Ruby Deweloperzy. Do 29 listopada 2018 r. Ruby nie był wspierany, aby rozpocząć rewolucję bezserwerową. Ale potem pojawił się Jets i wszystko się zmieniło.

Jak dumnie głosi oficjalna strona Ruby on Jets:

"Ruby on Jets pozwala z łatwością tworzyć i wdrażać usługi bezserwerowe, a także płynnie łączyć AWS usługi wraz z najpiękniejszym dynamicznym językiem: Ruby. Zawiera wszystko, czego potrzebujesz, aby zbudować API i wdrożyć je w AWS Lambda. Dźwignia Jets wykorzystuje moc Rubiego, aby uczynić serverless radosnym dla każdego"

Rzeczywiście, praca z Jets, zwłaszcza dla kogoś, kto ma doświadczenie w Railsach lub Sinatrze, staje się stosunkowo łatwa i przyjemna.

Aby to udowodnić, w tym artykule zbudujemy prostą aplikację bezserwerową.

Gotowy?

Aplikacja budowlana

What we’re gonna do, is create a very simple Jets app. This will provide us with some basic information of how to create routes, controllers and actions, and how to deploy to AWS Lambda. To keep it simple and easy, we’re gonna use just one endpoint, that will return random Chuck Norris joke.

Instalacja

Po pierwsze, zainstalujmy gem Jets globalnie. W konsoli wpisz:

Kod1

Następnie utwórz nowe Jets projekt z:

kod2

(Opcje -mode api i -no-database nie są wymagane, to tylko przyspieszy nieco instalację, ponieważ nie potrzebujemy tutaj żadnej bazy danych ani widoków).

Teraz, w katalogu chuck-norris-jokes uruchom:

Code3

Wejście localhost:8888 w przeglądarce, powinieneś zobaczyć coś takiego:

Jets

Jeśli to właśnie widzisz - gratulacje, zrobiłeś wszystko poprawnie!

Kontroler i trasy

Teraz utworzymy nasz pierwszy kontroler Jets.

W konsoli wpisz:

Code4

Spowoduje to utworzenie naszego kontrolera JokesController z jedną akcją wewnątrz - create. Domyślnie Jets tworzy trasę typu "get" dla akcji, więc musimy ją zmodyfikować.

W routes.rb zmiana pliku get "jokes/create" do post "dowcipy", do: "jokes#create".

Kodowanie

Pobieranie żądania

Aby pobrać kilka rzeczy o Chucku Norrisie, musimy wykonać połączenie z John Doe Api. Następnie odpowiemy jsonem zawierającym pobrany żart.

Ruby

Testowanie lokalne

Możemy uruchomić to lokalnie, aby sprawdzić, czy otrzymujemy oczekiwaną odpowiedź. To, co zamierzamy zrobić, to wysłać żądanie POST do naszego lokalnego serwera przy użyciu polecenia zwijać się.

(Uwaga: upewnij się, że serwer nadal działa).

Code5

Wdrożenie

Zakładając, że posiadasz konto AWS z odpowiednimi politykami (możesz je znaleźć w oficjalnej dokumentacji Jets), ostatnią rzeczą, którą musisz zrobić, jest po prostu uruchomienie:

Code6

Spowoduje to przesłanie naszej aplikacji do AWS.

Po zakończeniu wdrażania otrzymasz punkt końcowy bramy API (najprawdopodobniej ostatni wiersz w konsoli).

Przetestuj swoją aplikację AWS Lambda

Nadszedł więc czas, aby przetestować naszą wdrożoną aplikację!

Możemy to zrobić ponownie za pomocą curl, ale teraz zastępując localhost punktem końcowym bramy API, który otrzymaliśmy.

Code7

Podsumowanie

To już wszystko! Mam nadzieję, że podobało Ci się to krótkie spojrzenie na Ruby on Jets i świat serverless.

Czytaj więcej:

pl_PLPolish