Πώς να δημιουργήσετε μια εφαρμογή χωρίς διακομιστή χρησιμοποιώντας AWS Chalice

Πρόσφατα συνάντησα το AWS Chalice και με εντυπωσίασε η απλότητα και η χρηστικότητα που προσφέρει.

Το AWS Chalice είναι ένα πλαίσιο χωρίς διακομιστή που σας επιτρέπει να δημιουργήσετε εφαρμογές χωρίς διακομιστές χρησιμοποιώντας το Python και να τις αναπτύξετε σε AWS χρησιμοποιώντας το Amazon API Gateway και το AWS Lambda.

Αποφάσισα να παίξω με αυτό και στην πραγματικότητα μπορούσα να δημιουργήσω και να αναπτύξω ένα δείγμα REST API στο AWS μέσα σε λίγα λεπτά.

Σε αυτό το άρθρο, θα σας καθοδηγήσω στα βήματα που απαιτούνται για τη δημιουργία και την ανάπτυξη μιας εφαρμογής χωρίς διακομιστή που λαμβάνει τις τελευταίες ειδήσεις από τις Ειδήσεις Google χρησιμοποιώντας το Chalice.

Προαπαιτούμενα

Αυτό το σεμινάριο απαιτεί λογαριασμό AWS. Εάν δεν έχετε ήδη, προχωρήστε και δημιουργήστε ένα. Η εφαρμογή μας πρόκειται να χρησιμοποιήσει μόνο τους πόρους ελεύθερης βαθμίδας, επομένως το κόστος δεν πρέπει να αποτελεί πρόβλημα.

Πρέπει επίσης να διαμορφώσετε την ασφάλεια και να δημιουργήσετε χρήστες και ρόλους για την πρόσβασή σας.

Τρόπος διαμόρφωσης διαπιστευτηρίων AWS

Το Chalice χρησιμοποιεί το AWS Command Line Interface (CLI) πίσω από τα παρασκήνια για να αναπτύξει το έργο. Εάν δεν έχετε χρησιμοποιήσει το CLI του AWS στο παρελθόν για να εργαστείτε με πόρους AWS, μπορείτε να το εγκαταστήσετε ακολουθώντας τις οδηγίες εδώ.

Μόλις εγκατασταθεί, πρέπει να διαμορφώσετε το AWS CLI ώστε να χρησιμοποιεί τα διαπιστευτήρια από τον λογαριασμό σας AWS.

Πώς να εγκαταστήσετε το κάλυμμα

Στη συνέχεια, πρέπει να εγκαταστήσετε το Chalice. Θα χρησιμοποιήσουμε το Python 3 σε αυτό το σεμινάριο, αλλά μπορείτε να χρησιμοποιήσετε οποιαδήποτε έκδοση του Python που υποστηρίζεται από το AWS Lambda.

Επαληθεύστε την εγκατάσταση Python

Εγκαταστήστε το κάλυμμα

Επαληθεύστε την εγκατάσταση δισκοπότηρου

Πώς να δημιουργήσετε ένα έργο

Στη συνέχεια, εκτελέστε την chalice new-projectεντολή για να δημιουργήσετε ένα νέο έργο.

Αυτό θα δημιουργήσει έναν daily-newsφάκελο στον τρέχοντα κατάλογό σας. Μπορείτε να δείτε ότι το Chalice έχει δημιουργήσει πολλά αρχεία σε αυτόν τον φάκελο. Θα εργαζόμαστε με τα αρχεία app.pyκαι τα requirements.txtαρχεία μόνο σε αυτό το άρθρο.

Ας ρίξουμε μια ματιά στα περιεχόμενα του app.pyαρχείου:

Η new-projectεντολή δημιούργησε ένα δείγμα εφαρμογής daily-news. Ορίζει μία μόνο προβολή /, η οποία επιστρέφει το σώμα JSON {"hello": "world"}όταν καλείται. Τώρα μπορείτε να τροποποιήσετε αυτό το πρότυπο και να προσθέσετε περισσότερο κώδικα για να διαβάσετε ειδήσεις από το Google.

Θα χρησιμοποιήσουμε τη ροή RSS της Google για να λαμβάνουμε τα νέα μας. Δεδομένου ότι οι τροφοδοσίες RSS αποτελούνται από δεδομένα σε μορφή XML, θα χρειαζόμαστε μια βιβλιοθήκη Python που ονομάζεται Beautiful Soup για την ανάλυση των δεδομένων XML.

Μπορείτε να εγκαταστήσετε το Beautiful Soup και τη βιβλιοθήκη ανάλυσης XML χρησιμοποιώντας pip, ως εξής:

Στη συνέχεια προσθέστε τις ακόλουθες εισαγωγές στο app.py. Αυτό προσθέτει ουσιαστικά εισαγωγές από urllibτην πραγματοποίηση κλήσεων HTTP και bs4την ανάλυση XML.

Στη συνέχεια, πρέπει να προσθέσετε μια μέθοδο για τη λήψη της ροής RSS από το Google. Θα χρησιμοποιήσουμε urllibγια να πραγματοποιήσουμε μια κλήση HTTP στο τελικό σημείο RSS της Google και να λάβουμε την απάντηση. Στη συνέχεια, μπορείτε να αναλύσετε την απάντηση για να εξαγάγετε τον τίτλο ειδήσεων και την ημερομηνία δημοσίευσης και να δημιουργήσετε μια λίστα με είδη ειδήσεων.

Για να το κάνετε αυτό, προσθέστε τον ακόλουθο κωδικό στο app.py:

Ενημερώστε τη μέθοδο ευρετηρίου για app.pyνα καλέσετε αυτήν τη μέθοδο και ως αποτέλεσμα να επιστρέψετε τη λίστα ειδήσεων.

Σημειώστε ότι εγκαταστήσατε μερικές εξαρτήσεις για να κάνετε τον κώδικα να λειτουργεί. Αυτές οι εξαρτήσεις εγκαταστάθηκαν τοπικά και δεν θα είναι διαθέσιμες στο κοντέινερ AWS Lambda κατά το χρόνο εκτέλεσης.

Για να τα καταστήσετε διαθέσιμα στο AWS Lambda, θα πρέπει να τα συσκευάσετε μαζί με τον κωδικό σας.

Για να το κάνετε αυτό, προσθέστε τα ακόλουθα στο requirements.txtαρχείο. Το Chalice συσκευάζει αυτές τις εξαρτήσεις ως μέρος του κώδικα κατά τη διάρκεια της κατασκευής και τις μεταφορτώνει ως μέρος της λειτουργίας Lambda.

Πώς να αναπτύξετε το έργο

Ας αναπτύξουμε αυτήν την εφαρμογή. Από το daily-newsφάκελο, εκτελέστε την chalice deployεντολή.

Αυτό αναπτύσσει το API σας στο Amazon API Gateway και δημιουργεί μια νέα λειτουργία στο AWS Lambda.

Ας δοκιμάσουμε να αποκτήσουμε πρόσβαση στο API τώρα. Μπορείτε να χρησιμοποιήσετε curlγια να καλέσετε το URL Gateway API που λάβατε chalice deploy. Η απάντηση της κλήσης API θα επέστρεφε μια λίστα με είδη ειδήσεων όπως φαίνεται παρακάτω.

Πώς να καθαρίσετε πόρους

Μπορείτε επίσης να χρησιμοποιήσετε την chalice deleteεντολή για να διαγράψετε όλους τους πόρους που δημιουργήθηκαν κατά την εκτέλεση της chalice deployεντολής.

συμπέρασμα

Συγχαρητήρια! Μόλις αναπτύξατε μια εφαρμογή χωρίς διακομιστή στο AWS χρησιμοποιώντας το Chalice. Δεν ήταν πολύ δύσκολο, έτσι;

Τώρα μπορείτε να προχωρήσετε και να κάνετε οποιεσδήποτε τροποποιήσεις στο app.pyαρχείο σας και να εκτελέσετε ξανά chalice deployγια την αναδιάταξη των αλλαγών σας.

Μπορείτε επίσης να χρησιμοποιήσετε το Chalice για να ενσωματώσετε την εφαρμογή σας χωρίς διακομιστές με Amazon S3, Amazon SNS, Amazon SQS και άλλες υπηρεσίες AWS. Ρίξτε μια ματιά στα μαθήματα και συνεχίστε την εξερεύνηση. Ο πλήρης πηγαίος κώδικας για αυτό το σεμινάριο βρίσκεται εδώ.

Σας ευχαριστώ που μείνετε μαζί μου μέχρι τώρα. Ελπίζω να σας άρεσε το άρθρο. Μπορείτε να συνδεθείτε μαζί μου στο LinkedIn όπου συζητώ τακτικά την τεχνολογία και τη ζωή. Ρίξτε επίσης μια ματιά σε μερικά από τα άλλα άρθρα μου στο Medium. Καλή ανάγνωση;