Η AWS Lambda είναι μια πλατφόρμα υπολογισμού χωρίς διακομιστή, η οποία παρέχεται από την Amazon ως μέρος των υπηρεσιών Amazon Web Services.Αυτή η υπηρεσία εκτελεί κώδικα σε απόκριση σε συμβάντα και διαχειρίζεται αυτόματα τους υπολογιστικούς πόρους που απαιτούνται. Εισήχθη τον Νοέμβριο του 2014.
Ακούγεται υπέροχο; Όχι για τους Ruby Developers. Μέχρι τις 29 Νοεμβρίου 2018, η Ruby δεν υποστηριζόταν για να ξεκινήσει η επανάσταση του serverless. Στη συνέχεια, όμως, ήρθε η Jets και όλα άλλαξαν.
Όπως λέει περήφανα η επίσημη ιστοσελίδα του Ruby on Jets:
"Το Ruby on Jets σας επιτρέπει να δημιουργείτε και να αναπτύσσετε υπηρεσίες χωρίς διακομιστή με ευκολία και να συνδέετε απρόσκοπτα AWS υπηρεσίες μαζί με την πιο όμορφη δυναμική γλώσσα: Ruby. Περιλαμβάνει όλα όσα χρειάζεστε για να δημιουργήσετε ένα API και να το αναπτύξετε στο AWS Lambda. Το Jets αξιοποιεί τη δύναμη της Ruby για να κάνει το serverless χαρούμενο για όλους"
Πράγματι, η εργασία με το Jets, ειδικά για κάποιον που έχει κάποια εμπειρία στο Rails ή το Sinatra, γίνεται σχετικά εύκολη και ευχάριστη.
Για να το αποδείξουμε, σε αυτό το άρθρο θα δημιουργήσουμε μια απλή εφαρμογή χωρίς διακομιστή.
Έτοιμοι;
Εφαρμογή κτιρίου
Αυτό που θα κάνουμε είναι να δημιουργήσουμε μια πολύ απλή εφαρμογή Jets. Αυτό θα μας δώσει κάποιες βασικές πληροφορίες για το πώς να δημιουργούμε διαδρομές, ελεγκτές και ενέργειες και πώς να κάνουμε deploy στο AWS Lambda. Για να το κρατήσουμε απλό και εύκολο, θα χρησιμοποιήσουμε μόνο ένα endpoint, το οποίο θα επιστρέφει τυχαία αστεία του Chuck Norris.
Εγκατάσταση
Πρώτα απ' όλα, ας εγκαταστήσουμε το Jets gem σε παγκόσμιο επίπεδο. Στην κονσόλα σας, πληκτρολογήστε:

Στη συνέχεια, δημιουργήστε νέα Jets έργο με:

(Οι επιλογές -mode api και -no-database δεν απαιτούνται, απλά θα επιταχύνουν λίγο την εγκατάσταση, αφού δεν χρειαζόμαστε καμία βάση δεδομένων ή προβολές εδώ.)
Τώρα, στον κατάλογο chuck-norris-jokes τρέξτε:

Είσοδος στο localhost:8888
στο πρόγραμμα περιήγησής σας, θα πρέπει να δείτε κάτι σαν αυτό:

Αν αυτό είναι που βλέπετε - συγχαρητήρια, έχετε κάνει τα πάντα σωστά!
Ελεγκτής και διαδρομές
Αυτό που πρόκειται να κάνουμε τώρα είναι να δημιουργήσουμε τον πρώτο μας ελεγκτή Jets.
Στην κονσόλα πληκτρολογήστε:

Αυτό θα δημιουργήσει τον JokesController μας με μία ενέργεια μέσα - create. Από προεπιλογή, τα Jets δημιουργούν τη διαδρομή τύπου "get" για την ενέργεια, οπότε πρέπει να την τροποποιήσουμε.
Στο routes.rb αλλαγή αρχείου get "jokes/create" στο post 'jokes', to: "jokes#create".

Λήψη της αίτησης
Για να πάρουμε κάποια πράγματα του Chuck Norris πρέπει να κάνουμε μια κλήση στο John Doe Api. Στη συνέχεια, θα απαντήσουμε με το json που περιέχει το αστείο που θα πάρουμε.

Δοκιμές σε τοπικό επίπεδο
Μπορούμε να το εκτελέσουμε τοπικά για να ελέγξουμε ότι λαμβάνουμε την αναμενόμενη απόκριση. Αυτό που θα κάνουμε είναι να κάνουμε μια αίτηση POST στον τοπικό μας διακομιστή χρησιμοποιώντας curl
.
(Προσοχή: βεβαιωθείτε ότι ο διακομιστής σας εξακολουθεί να λειτουργεί).

Ανάπτυξη
Εφόσον έχετε λογαριασμό AWS με τις κατάλληλες πολιτικές (μπορείτε να τις βρείτε στην επίσημη τεκμηρίωση του Jets), το τελευταίο πράγμα που χρειάζεται να κάνετε είναι απλά να εκτελέσετε:

Αυτό θα μεταφορτώσει την εφαρμογή μας στο AWS.
Όταν ολοκληρωθεί η ανάπτυξη, θα σας δοθεί το τελικό σημείο της πύλης API (πιθανότατα η τελευταία γραμμή στην κονσόλα).
Δοκιμάστε την εφαρμογή AWS Lambda
Έτσι τώρα, επιτέλους ήρθε η ώρα να δοκιμάσουμε την εφαρμογή που αναπτύξαμε!
Μπορούμε να το κάνουμε αυτό χρησιμοποιώντας ξανά το curl, αλλά τώρα αντικαθιστώντας το localhost με το τελικό σημείο της πύλης API, που μας δόθηκε.

Περίληψη
Αυτό είναι όλο, παιδιά! Ελπίζω να σας άρεσε αυτή η σύντομη ματιά στο Ruby on Jets και στον κόσμο των serverless.
Διαβάστε περισσότερα: