Τι είναι το AWS Lambda; Συνάρτηση λάμδα με παραδείγματα
Πριν από τη λειτουργία AWS Lambda, ας καταλάβουμε:
Τι είναι το Serverless;
Χωρίς διακομιστή είναι ένας όρος που αναφέρεται γενικά σε εφαρμογές χωρίς διακομιστή. Οι εφαρμογές χωρίς διακομιστή είναι εκείνες που δεν χρειάζονται παροχή διακομιστή και δεν χρειάζονται διαχείριση διακομιστών.
Τι είναι το AWS Lambda;
AWS Lambda είναι μια υπολογιστική πλατφόρμα χωρίς διακομιστή που βασίζεται σε συμβάντα που παρέχεται από Amazon ως μέρος του Amazon Διαδικτυακές υπηρεσίες. Επομένως, δεν χρειάζεται να ανησυχείτε για το ποιοι πόροι AWS θα ξεκινήσετε ή πώς θα τους διαχειριστείτε. Αντ 'αυτού, πρέπει να βάλετε τον κωδικό στο Lambda, και εκτελείται.
Στο AWS Lambda ο κώδικας εκτελείται με βάση την απόκριση συμβάντων στις υπηρεσίες AWS, όπως προσθήκη/διαγραφή αρχείων στον κάδο S3, αίτημα HTTP από Amazon API gateway, κλπ. Ωστόσο, Amazon Το Lambda μπορεί να χρησιμοποιηθεί μόνο για την εκτέλεση εργασιών παρασκηνίου.
Η λειτουργία AWS Lambda σάς βοηθά να εστιάσετε στο βασικό προϊόν και τη λογική της επιχείρησής σας αντί να διαχειρίζεστε τον έλεγχο πρόσβασης στο λειτουργικό σύστημα (OS), την ενημέρωση κώδικα, το σωστό μέγεθος, την παροχή, την κλιμάκωση κ.λπ.
Πώς λειτουργεί το 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 και όχι διαφορετικά.
Αυτό θα συμβεί στα ακόλουθα σενάρια:
- Ανεβάστε αρχεία σε έναν κάδο S3
- Όταν χτυπηθεί η διεύθυνση URL τελικού σημείου λήψης/ανάρτησης HTTP
- Για προσθήκη/τροποποίηση και διαγραφή πινάκων 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 μεταβιβάζει συμβάντα επίκλησης στη συνάρτησή σας, η οποία επεξεργάζεται ένα συμβάν και επιστρέφει την απόκρισή του.
Χρόνοι εκτέλεσης:
Ο χρόνος εκτέλεσης επιτρέπει λειτουργίες σε διάφορες γλώσσες που εκτελούνται στο ίδιο βασικό περιβάλλον εκτέλεσης. Αυτό σας βοηθά να διαμορφώσετε τη λειτουργία σας σε χρόνο εκτέλεσης. Ταιριάζει επίσης με την επιλογή σας γλώσσα προγραμματισμού.
Πηγή εκδήλωσης:
Μια πηγή συμβάντος είναι μια υπηρεσία AWS, όπως π.χ Amazon SNS ή μια προσαρμοσμένη υπηρεσία. Αυτή η συνάρτηση ενεργοποίησης σάς βοηθά να εκτελέσετε τη λογική της.
Στρώματα λάμδα:
Τα επίπεδα λάμδα είναι ένας σημαντικός μηχανισμός διανομής για βιβλιοθήκες, προσαρμοσμένους χρόνους εκτέλεσης και άλλες σημαντικές εξαρτήσεις συναρτήσεων. Αυτό το στοιχείο AWS σάς βοηθά επίσης να διαχειριστείτε τον κώδικα λειτουργίας ανάπτυξης ξεχωριστά από τον αμετάβλητο κώδικα και τους πόρους που χρησιμοποιεί.
Ροές καταγραφής:
Η ροή καταγραφής σάς επιτρέπει να σχολιάζετε τον κώδικα συνάρτησής σας με προσαρμοσμένες δηλώσεις καταγραφής που σας βοηθούν να αναλύσετε τη ροή εκτέλεσης και την απόδοση των συναρτήσεων AWS Lambda.
Πώς να χρησιμοποιήσετε το AWS Lambda
Τώρα, θα μάθουμε πώς να χρησιμοποιούμε το AWS Lambda με παράδειγμα AWS Lambda:
Βήμα 1) Βήμα 1) Ανοίξτε τη διεύθυνση URL του AWS Lambda
Παω σε https://aws.amazon.com/lambda/ και Ξεκινήστε
Βήμα 2) Δημιουργία λογαριασμού
Στη συνέχεια, δημιουργήστε έναν λογαριασμό ή συνδεθείτε με τον υπάρχοντα λογαριασμό σας
Βήμα 3) Επεξεργαστείτε τον κωδικό και κάντε κλικ στην επιλογή Εκτέλεση,
Στην επόμενη σελίδα Λάμδα,
- Επεξεργαστείτε τον κωδικό
- Κάντε κλικ στην επιλογή Εκτέλεση
Βήμα 4) Ελέγξτε την έξοδο
Θα δείτε έξοδο
AWS Lambda VS AWS EC2
Εδώ, είναι μερικές σημαντικές διαφορές μεταξύ AWS Lambda και EC2.
παράμετροι | AWS Lambda | AWS EC2 |
---|---|---|
Ορισμός | Το AWS Lambda είναι μια πλατφόρμα ως υπηρεσία (PaaS). Σας βοηθά να εκτελέσετε και να εκτελέσετε τον κώδικα υποστήριξης. | Το AWS EC2 είναι μια υποδομή ως υπηρεσία (laaS). Παρέχει εικονικούς υπολογιστικούς πόρους. |
Ευελιξία | Δεν προσφέρει καμία ευελιξία για να συνδεθείτε για να υπολογίσετε παρουσίες. Σας επιτρέπει να επιλέξετε ένα προσαρμοσμένο λειτουργικό σύστημα ή χρόνο εκτέλεσης γλώσσας. | Προσφέρει την ευελιξία επιλογής ποικιλίας παρουσιών, προσαρμοσμένων λειτουργικών συστημάτων, ενημερώσεων κώδικα ασφαλείας και δικτύου κ.λπ. |
Διαδικασία εγκατάστασης | Πρέπει να επιλέξετε το περιβάλλον σας όπου θέλετε να εκτελέσετε τον κώδικα και να ωθήσετε τον κώδικα στο AWS Lambda. | Για πρώτη φορά στο EC2, πρέπει να επιλέξετε το λειτουργικό σύστημα και να εγκαταστήσετε όλο το λογισμικό που απαιτείται και στη συνέχεια να ωθήσετε τον κωδικό σας στο EC2. |
Περιβαλλοντικοί περιορισμοί | Περιορίζεται σε λίγες γλώσσες. | Χωρίς περιβαλλοντικούς περιορισμούς. |
AWS Lambda VS AWS Elastic Beanstalk
Εδώ, είναι μερικές σημαντικές διαφορές μεταξύ του AWS Lambda και του Elastic Beanstalk.
παράμετροι | AWS Elastic 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 (εφαρμογές για κινητά, συσκευές LoT)
- Σας βοηθά να εκτελέσετε λογική υποστήριξης από την πλευρά του διακομιστή
- Σας επιτρέπει να φιλτράρετε και να μετασχηματίζετε δεδομένα
καλυτερα πρακτικες συναρτησης λαμδα
Εδώ είναι μερικές βέλτιστες πρακτικές του AWS Λειτουργίες λάμδα:
- Χρησιμοποιήστε το σωστό "timeout".
- Χρησιμοποιήστε τις λειτουργίες της τοπικής αποθήκευσης μεγέθους 500 MB στον φάκελο /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 μπορεί να διαμορφωθεί με τη βοήθεια εξωτερικών χρονόμετρων συμβάντων για την εκτέλεση προγραμματισμένων εργασιών.
- Η λειτουργία λάμδα στο AWS θα πρέπει να ρυθμιστεί με εξωτερικό συμβάν και χρονόμετρα έτσι. μπορεί να χρησιμοποιηθεί για προγραμματισμό.
- Οι συναρτήσεις λάμδα είναι χωρίς κατάσταση, ώστε να μπορούν να κλιμακωθούν γρήγορα.
- Το AWS Lambda είναι γρήγορο, επομένως θα εκτελέσει τον κώδικά σας μέσα σε χιλιοστά του δευτερολέπτου.
Περιορισμοί του AWS Lambda
Ακολουθούν τα μειονεκτήματα/μειονεκτήματα της χρήσης του AWS Lambda:
- Το εργαλείο AWS Lambda δεν είναι κατάλληλο για μικρά έργα.
- Το AWS Lambda βασίζεται εξ ολοκλήρου στο AWS για την υποδομή, επομένως δεν μπορείτε να εγκαταστήσετε πρόσθετο λογισμικό εάν το απαιτεί ο κώδικάς σας.
- Η ταυτόχρονη εκτέλεση περιορίζεται σε 100
- Το AWS Lambda εξαρτιόταν πλήρως από το AWS για την υποδομή. δεν μπορείτε να εγκαταστήσετε κανένα πρόσθετο λογισμικό εάν το απαιτεί ο κωδικός σας.
- Ο όγκος της μνήμης του μπορεί να κυμαίνεται από 128 έως 1536 MB.
- Το αίτημα συμβάντος δεν πρέπει να υπερβαίνει τα 128 KB.
- Οι συναρτήσεις λάμδα σάς βοηθούν να γράφετε τα αρχεία καταγραφής τους μόνο στο CloudWatch. Αυτό είναι το μόνο εργαλείο που σας επιτρέπει να παρακολουθείτε ή να αντιμετωπίζετε προβλήματα με τις λειτουργίες σας.
- Το χρονικό όριο εκτέλεσης του κώδικα είναι μόλις 5 λεπτά.
Σύνοψη
- Χωρίς διακομιστή είναι ένας όρος που αναφέρεται γενικά σε εφαρμογές χωρίς διακομιστή.
- Το AWS Lambda είναι μια τέτοια υπηρεσία υπολογιστών χωρίς διακομιστή. Επομένως, δεν χρειάζεται να ανησυχείτε για το ποιοι πόροι AWS θα ξεκινήσετε ή πώς θα τους διαχειριστούν.
- Μια συνάρτηση είναι ένα πρόγραμμα ή ένα σενάριο που εκτελείται σε Lambda χωρίς διακομιστή AWS.
- Ο χρόνος εκτέλεσης επιτρέπει λειτουργίες σε διάφορες γλώσσες που εκτελούνται στο ίδιο βασικό περιβάλλον εκτέλεσης.
- Μια πηγή συμβάντος είναι μια υπηρεσία AWS, όπως π.χ Amazon SNS ή μια προσαρμοσμένη υπηρεσία.
- Τα επίπεδα λάμδα είναι ένας σημαντικός μηχανισμός διανομής για βιβλιοθήκες, προσαρμοσμένους χρόνους εκτέλεσης και άλλες σημαντικές εξαρτήσεις συναρτήσεων.
- Η ροή καταγραφής σάς επιτρέπει να σχολιάζετε τον κώδικα συνάρτησής σας με προσαρμοσμένες δηλώσεις καταγραφής που σας βοηθούν να αναλύσετε τη ροή εκτέλεσης και την απόδοση των συναρτήσεων Lambda.
- Το AWS Lambda είναι μια πλατφόρμα ως υπηρεσία (PaaS). Σας βοηθά να εκτελέσετε και να εκτελέσετε τον κώδικα υποστήριξης.
- Το AWS EC2 είναι μια υποδομή ως υπηρεσία (laaS). Παρέχει εικονικούς υπολογιστικούς πόρους.
- Αναπτύξτε και διαχειριστείτε τις εφαρμογές στο AWS Cloud χωρίς να ανησυχείτε για την υποδομή που εκτελεί αυτές τις εφαρμογές.
- Το AWS Lambda χρησιμοποιείται για την εκτέλεση και την εκτέλεση του Back-end κώδικα σας. Δεν μπορείτε να το χρησιμοποιήσετε για να αναπτύξετε μια εφαρμογή.
- Το AWS Lambda σας βοηθάει για το διαδικασία ETL.
- Η καλύτερη πρακτική της λειτουργίας Lambda στο AWS είναι η χρήση του σωστού "timeout".
- Δεν είναι κατάλληλο να χρησιμοποιείτε πακέτα λογισμικού ή εφαρμογές AWS Lambda που βασίζονται στην υποκείμενη κλήση Windows RPC
- Το AWS Lambda είναι ένα εξαιρετικά ευέλικτο εργαλείο.
- Το εργαλείο AWS Lambda δεν είναι κατάλληλο για μικρά έργα.
- Ένα συνηθισμένο συμβάν που θα ενεργοποιηθεί όταν χρησιμοποιείτε το AWS Lambda είναι η Εισαγωγή, η ενημέρωση και η διαγραφή του πίνακα Dynamo DB δεδομένων.