Τι είναι το AWS Lambda; Συνάρτηση λάμδα με παραδείγματα
⚡ Έξυπνη Σύνοψη
Η AWS Lambda είναι μια πλατφόρμα υπολογιστών που βασίζεται σε συμβάντα και δεν διαθέτει διακομιστή. Amazon Υπηρεσίες Web που εκτελούν τον κώδικά σας ως απόκριση σε εναύσματα, χειριζόμενοι αυτόματα την παροχή, την κλιμάκωση και τη διαχείριση διακομιστή, ώστε να εστιάζετε μόνο στην επιχειρηματική λογική.
Πριν εξερευνήσετε το AWS Lambda, είναι χρήσιμο να κατανοήσετε τι σημαίνει serverless.
Τι είναι το Serverless;
Ο όρος "χωρίς διακομιστή" αναφέρεται γενικά σε εφαρμογές χωρίς διακομιστή. Οι εφαρμογές χωρίς διακομιστή είναι αυτές που δεν χρειάζονται καμία παροχή διακομιστή και δεν απαιτούν τη διαχείριση διακομιστών.
Τι είναι το AWS Lambda;
Το AWS Lambda είναι μια υπολογιστική πλατφόρμα χωρίς διακομιστή που βασίζεται σε συμβάντα που παρέχεται από Amazon ως μέρος του Amazon Υπηρεσίες Ιστού. Επομένως, δεν χρειάζεται να ανησυχείτε για το ποιους πόρους AWS θα εκκινήσετε ή πώς θα τους διαχειριστείτε. Αντίθετα, πρέπει να βάλετε τον κώδικα στο Lambda και αυτό θα εκτελεστεί.
Στο AWS Lambda, ο κώδικας εκτελείται με βάση την απόκριση σε συμβάντα στις υπηρεσίες AWS, όπως η προσθήκη ή η διαγραφή αρχείων σε έναν κάδο S3, ένα αίτημα HTTP από Amazon API Gateway και παρόμοια συμβάντα. Ωστόσο, Amazon Το Lambda μπορεί να χρησιμοποιηθεί μόνο για την εκτέλεση εργασιών παρασκηνίου.
Η συνάρτηση AWS Lambda σάς βοηθά να εστιάσετε στο βασικό προϊόν και την επιχειρηματική σας λογική αντί να διαχειρίζεστε τον έλεγχο πρόσβασης του λειτουργικού συστήματος (OS), την ενημέρωση κώδικα (patching) του λειτουργικού συστήματος, τη σωστή διαμόρφωση μεγέθους, την παροχή, την κλιμάκωση και ούτω καθεξής.
Πώς λειτουργεί το AWS Lambda;
Το ακόλουθο παράδειγμα AWS Lambda με μπλοκ διάγραμμα εξηγεί τη λειτουργία του AWS Lambda με μερικά εύκολα βήματα:
Βήμα 1: Πρώτα μεταφορτώστε τον κωδικό AWS Lambda σε οποιαδήποτε γλώσσα που υποστηρίζεται από το AWS Lambda. Java, Python, Go και C# είναι μερικές από τις γλώσσες που υποστηρίζονται από τη συνάρτηση AWS Lambda.
Βήμα 2: Αυτές είναι μερικές υπηρεσίες AWS που σας επιτρέπουν να ενεργοποιήσετε το AWS Lambda.
Βήμα 3: Το AWS Lambda σάς βοηθά να ανεβάσετε τον κώδικα και τις λεπτομέρειες του συμβάντος στο οποίο θα πρέπει να ενεργοποιηθεί.
Βήμα 4: Εκτελεί κώδικα AWS Lambda όταν ενεργοποιείται από υπηρεσίες AWS.
Βήμα 5: Το AWS χρεώνει μόνο όταν εκτελείται ο κώδικας AWS Lambda και όχι διαφορετικά.
Αυτό θα συμβεί στα ακόλουθα σενάρια:
- Ανεβάστε αρχεία σε έναν κάδο S3
- Όταν ένα τελικό σημείο HTTP get/post URL χτυπήθηκε
- Για την προσθήκη, τροποποίηση και διαγραφή πινάκων Dynamo DB
- Στη διαδικασία συλλογής ροών δεδομένων
- Ειδοποίηση push
- Φιλοξενία ιστοσελίδας
- Αποστολή email
Σημείωση: Θα πρέπει να θυμάστε ότι θα χρεωθείτε για τις υπηρεσίες AWS μόνο όταν εκτελεστεί ο κώδικας AWS Lambda, διαφορετικά δεν χρειάζεται να πληρώσετε τίποτα.
Συμβάντα που ενεργοποιούν το AWS Lambda
Ακολουθούν τα συμβάντα που θα ενεργοποιηθούν όταν χρησιμοποιείτε το AWS Lambda.
- Εισαγωγή, ενημέρωση και διαγραφή δεδομένων σε έναν πίνακα Dynamo DB
- Για να συμπεριλάβετε ειδοποιήσεις push στο SNS
- Για αναζήτηση ιστορικού καταγραφής στο CloudTrail
- Είσοδος σε αντικείμενο S3
- DynamoDB μπορεί να ενεργοποιήσει το AWS Lambda κάθε φορά που προστίθενται, τροποποιούνται και διαγράφονται δεδομένα στον πίνακα.
- Σας βοηθά να προγραμματίσετε την εκδήλωση για να εκτελέσετε την εργασία σε ένα τακτικό χρονοδιάγραμμα.
- Τροποποιήσεις σε αντικείμενα σε κάδους S3
- Ειδοποιήσεις αποστέλλονται από Amazon SNS.
- Το AWS Lambda μπορεί να χρησιμοποιηθεί για την επεξεργασία των αρχείων καταγραφής CloudTrail.
- Το API Gateway σάς επιτρέπει να ενεργοποιείτε το AWS Lambda στις μεθόδους GET/POST.
AWS Lambda Concepts
Λειτουργία: Μια συνάρτηση είναι ένα πρόγραμμα ή ένα σενάριο που εκτελείται σε AWS Lambda. Το Lambda μεταβιβάζει συμβάντα επίκλησης στη συνάρτησή σας, η οποία επεξεργάζεται ένα συμβάν και επιστρέφει την απόκρισή του.
Χρόνοι εκτέλεσης: Το Runtime επιτρέπει συναρτήσεις σε διάφορες γλώσσες που εκτελούνται στο ίδιο βασικό περιβάλλον εκτέλεσης. Αυτό σας βοηθά να διαμορφώσετε τη συνάρτησή σας στο runtime. Επίσης, ταιριάζει με το επιλεγμένο σας γλώσσα προγραμματισμού.
Πηγή εκδήλωσης: Μια πηγή συμβάντος είναι μια υπηρεσία AWS, όπως π.χ Amazon Κοινωνικό δίκτυο κοινωνικής δικτύωσης ή μια προσαρμοσμένη υπηρεσία. Αυτή η ενεργοποίηση βοηθά τη συνάρτηση να εκτελέσει τη λογική της.
Στρώματα λάμδα: Τα επίπεδα λάμδα είναι ένας σημαντικός μηχανισμός διανομής για βιβλιοθήκες, προσαρμοσμένους χρόνους εκτέλεσης και άλλες σημαντικές εξαρτήσεις συναρτήσεων. Αυτό το στοιχείο AWS σάς βοηθά επίσης να διαχειριστείτε τον κώδικα λειτουργίας ανάπτυξης ξεχωριστά από τον αμετάβλητο κώδικα και τους πόρους που χρησιμοποιεί.
Ροές καταγραφής: Η ροή καταγραφής σάς επιτρέπει να σχολιάσετε τον κώδικα της συνάρτησής σας με προσαρμοσμένες εντολές καταγραφής, οι οποίες σας βοηθούν να αναλύσετε τη ροή εκτέλεσης και την απόδοση των συναρτήσεων AWS Lambda.
Πώς να χρησιμοποιήσετε το AWS Lambda
Τώρα, θα μάθουμε πώς να χρησιμοποιούμε το AWS Lambda με ένα παράδειγμα AWS Lambda:
Βήμα 1) Ανοίξτε το AWS Lambda URL
Πηγαίνετε στο https://aws.amazon.com/lambda/ και Ξεκινήστε.
Βήμα 2) Δημιουργήστε λογαριασμό
Στη συνέχεια, δημιουργήστε έναν λογαριασμό ή συνδεθείτε με τον υπάρχοντα λογαριασμό σας.
Βήμα 3) Επεξεργαστείτε τον κώδικα και κάντε κλικ στην επιλογή Εκτέλεση
Στην επόμενη σελίδα Lambda, επεξεργαστείτε τον κώδικα και κάντε κλικ στην επιλογή Εκτέλεση.
Βήμα 4) Ελέγξτε την έξοδο
Θα δείτε την έξοδο.
AWS Lambda VS AWS EC2
Ακολουθούν ορισμένες σημαντικές διαφορές μεταξύ του AWS Lambda και του EC2.
| Παράμετροι | AWS Lambda | AWS EC2 |
| Ορισμός | Το AWS Lambda είναι μια πλατφόρμα ως υπηρεσία (PaaS). Σας βοηθά να εκτελέσετε και να εκτελέσετε τον κώδικα υποστήριξης. | Το AWS EC2 είναι μια Υποδομή ως Υπηρεσία (IaaS). Παρέχει εικονικούς υπολογιστικούς πόρους. |
| Ευελιξία | Δεν προσφέρει καμία ευελιξία σύνδεσης για τον υπολογισμό των στιγμιότυπων. Σας επιτρέπει να επιλέξετε ένα προσαρμοσμένο λειτουργικό σύστημα ή γλώσσα εκτέλεσης. | Προσφέρει την ευελιξία επιλογής μιας ποικιλίας παρουσιών, προσαρμοσμένων λειτουργικών συστημάτων, ενημερώσεων κώδικα ασφαλείας και δικτύου κ.λπ. |
| Διαδικασία εγκατάστασης | Πρέπει να επιλέξετε το περιβάλλον όπου θέλετε να εκτελέσετε τον κώδικα και να τον εισάγετε στο AWS Lambda. | Για πρώτη φορά στο EC2, πρέπει να επιλέξετε το λειτουργικό σύστημα και να εγκαταστήσετε όλο το λογισμικό που απαιτείται και στη συνέχεια να ωθήσετε τον κωδικό σας στο EC2. |
| Περιβαλλοντικοί περιορισμοί | Περιορίζεται σε λίγες γλώσσες. | Χωρίς περιβαλλοντικούς περιορισμούς. |
AWS Lambda VS AWS Elastic Beanstalk
Ακολουθούν ορισμένες σημαντικές διαφορές μεταξύ AWS Lambda και Elastic Beanstalk.
| Παράμετροι | Ελαστικό AWS Beanstalk | AWS Lambda |
| Κύρια δραστηριότητα | Αναπτύξτε και διαχειριστείτε τις εφαρμογές στο AWS Cloud χωρίς να ανησυχείτε για την υποδομή που εκτελεί αυτές τις εφαρμογές. | Το AWS Lambda χρησιμοποιείται για την εκτέλεση του κώδικα back-end. Δεν μπορείτε να το χρησιμοποιήσετε για την ανάπτυξη μιας εφαρμογής. |
| Επιλογή πόρων AWS | Σας δίνει την ελευθερία να επιλέξετε πόρους AWS. Για παράδειγμα, μπορείτε να επιλέξετε μια παρουσία EC2 που είναι βέλτιστη ανάλογα με την εφαρμογή σας. | Δεν μπορείτε να επιλέξετε τους πόρους AWS, όπως έναν τύπο στιγμιότυπου EC2. Η Lambda προσφέρει πόρους με βάση το φόρτο εργασίας σας. |
| Τύπος συστήματος | Είναι ένα κρατικό σύστημα. | Είναι ένα σύστημα χωρίς ιθαγένεια. |
Περιπτώσεις χρήσης AWS Lambda
Το AWS Lambda χρησιμοποιείται για ένα ευρύ φάσμα εφαρμογών όπως:
- Σας βοηθά με το διαδικασία ETL
- Σας επιτρέπει να εκτελείτε επεξεργασία αρχείων σε πραγματικό χρόνο και επεξεργασία ροής σε πραγματικό χρόνο
- Χρήση για τη δημιουργία διαδικτυακών εφαρμογών
- Χρησιμοποιήστε το Amazon προϊόντα όπως Alexa Chatbots και Amazon Echo/Alexa
- Επεξεργασία δεδομένων (αναλύσεις ροής σε πραγματικό χρόνο)
- Αυτοματοποιημένα αντίγραφα ασφαλείας καθημερινών εργασιών
- Επεκτάσιμα back ends (εφαρμογές για κινητά, συσκευές IoT)
- Σας βοηθά να εκτελέσετε λογική υποστήριξης από την πλευρά του διακομιστή
- Σας επιτρέπει να φιλτράρετε και να μετασχηματίσετε δεδομένα
καλυτερα πρακτικες συναρτησης λαμδα
Ακολουθούν ορισμένες βέλτιστες πρακτικές για τις συναρτήσεις AWS Lambda:
- Χρησιμοποιήστε το σωστό "timeout".
- Χρησιμοποιήστε τις λειτουργίες του τοπικού χώρου αποθήκευσης, ο οποίος έχει μέγεθος 500MB στον φάκελο /temp.
- Ελαχιστοποιήστε τη χρήση κώδικα εκκίνησης που δεν σχετίζεται άμεσα με την επεξεργασία του τρέχοντος συμβάντος.
- Θα πρέπει να χρησιμοποιήσετε την ενσωματωμένη παρακολούθηση CloudWatch των λειτουργιών σας Lambda για να δείτε και να βελτιστοποιήσετε τις καθυστερήσεις αιτημάτων.
Πότε δεν πρέπει να χρησιμοποιείτε το AWS Lambda
Ακολουθούν οι περιπτώσεις όπου το Lambda σίγουρα δεν είναι η ιδανική επιλογή:
- Δεν είναι σκόπιμο να χρησιμοποιείτε το AWS Lambda για πακέτα λογισμικού ή εφαρμογές που βασίζονται στην κλήση υποκείμενων Windows Κιβώτια RPC.
- Εάν χρησιμοποιείται για προσαρμοσμένες εφαρμογές λογισμικού με συμφωνίες αδειοδότησης όπως η επεξεργασία εγγράφων MS-Office, Oracle βάσεις δεδομένων κ.λπ.
- Το AWS Lambda δεν πρέπει να χρησιμοποιείται για προσαρμοσμένες διεργασίες υλικού, όπως η επιτάχυνση GPU και η συσχέτιση υλικού.
Πλεονεκτήματα της χρήσης AWS Lambda
Ακολουθούν τα πλεονεκτήματα/οφέλη της χρήσης του AWS Lambda:
- Το AWS Lambda είναι ένα εξαιρετικά ευέλικτο εργαλείο στη χρήση.
- Σας βοηθά να παραχωρήσετε πρόσβαση σε πόρους, συμπεριλαμβανομένων των VPC.
- Συγγραφέας απευθείας με ένα WYSIWYG editor στην κονσόλα.
- Μπορείτε να το χρησιμοποιήσετε ως πρόσθετο για Eclipse και Visual Studio.
- Καθώς πρόκειται για αρχιτεκτονική χωρίς διακομιστή, δεν χρειάζεται να ανησυχείτε για τη διαχείριση ή την παροχή διακομιστών.
- Δεν χρειάζεται να ρυθμίσετε κανένα Εικονική μηχανή.
- Βοηθά τους προγραμματιστές να εκτελέσουν και να εκτελέσουν την απόκριση του κώδικα σε συμβάντα χωρίς να δημιουργήσουν καμία υποδομή.
- Απλώς πρέπει να πληρώσετε για τον χρόνο υπολογισμού που απαιτείται, μόνο όταν εκτελείται ο κώδικάς σας.
- Μπορείτε να παρακολουθείτε την απόδοση του κώδικα σας σε πραγματικό χρόνο μέσω του CloudWatch.
- Σας επιτρέπει να εκτελέσετε τον κώδικά σας χωρίς να κάνετε προμήθεια ή να διαχειρίζεστε οποιονδήποτε άλλο διακομιστή.
- Σας βοηθά να εκτελείτε τον κώδικα μόνο όταν χρειάζεται.
- Μπορείτε να το κλιμακώσετε αυτόματα για να χειριστείτε μερικά αιτήματα την ημέρα και ακόμη και να υποστηρίξετε περισσότερα από χιλιάδες αιτήματα ανά δευτερόλεπτο.
- Το AWS Lambda μπορεί να διαμορφωθεί με τη βοήθεια εξωτερικών χρονόμετρων συμβάντων για την εκτέλεση προγραμματισμένων εργασιών.
- Η συνάρτηση Lambda στο AWS θα πρέπει να διαμορφωθεί με εξωτερικά συμβάντα και χρονοδιακόπτες, ώστε να μπορεί να χρησιμοποιηθεί για προγραμματισμό.
- Οι συναρτήσεις Lambda είναι χωρίς κατάσταση, ώστε να μπορούν να κλιμακωθούν γρήγορα.
- Το AWS Lambda είναι γρήγορο, επομένως θα εκτελέσει τον κώδικά σας μέσα σε χιλιοστά του δευτερολέπτου.
Περιορισμοί του AWS Lambda
Ακολουθούν τα μειονεκτήματα/μειονεκτήματα της χρήσης του AWS Lambda:
- Το εργαλείο AWS Lambda δεν είναι κατάλληλο για μικρά έργα.
- Το AWS Lambda βασίζεται εξ ολοκλήρου στο AWS για την υποδομή, επομένως δεν μπορείτε να εγκαταστήσετε κανένα πρόσθετο λογισμικό εάν το απαιτεί ο κώδικά σας.
- Η ταυτόχρονη εκτέλεση έχει ένα προεπιλεγμένο όριο 1,000 ανά Περιοχή, το οποίο μπορεί να αυξηθεί κατόπιν αιτήματος.
- Ο όγκος μνήμης του μπορεί να κυμαίνεται μεταξύ 128 MB και 10,240 MB.
- Το αίτημα συμβάντος δεν πρέπει να υπερβαίνει τα 128 KB.
- Οι συναρτήσεις λάμδα σάς βοηθούν να γράφετε τα αρχεία καταγραφής τους μόνο στο CloudWatch. Αυτό είναι το μόνο εργαλείο που σας επιτρέπει να παρακολουθείτε ή να αντιμετωπίζετε προβλήματα με τις λειτουργίες σας.
- Ο χρόνος εκτέλεσης του κώδικα περιορίζεται σε 15 λεπτά.





