Τι είναι το AWS Lambda; Συνάρτηση λάμδα με παραδείγματα

⚡ Έξυπνη Σύνοψη

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

  • ☁️ Μοντέλο χωρίς διακομιστή: Το AWS Lambda εκτελεί κώδικα χωρίς παροχή ή διαχείριση διακομιστών, αφαιρώντας τις ενημερώσεις κώδικα του λειτουργικού συστήματος, την κλιμάκωση και τον προγραμματισμό χωρητικότητας.
  • Εκτέλεση βάσει συμβάντων: Οι συναρτήσεις ενεργοποιούνται από υπηρεσίες AWS όπως το S3, DynamoDB, API Gateway και SNS, που εκτελούνται μόνο όταν προκύπτει κάποιο συμβάν.
  • 🧩 Υποστήριξη γλωσσών: Το Lambda υποστηρίζει το Node.js, Python, Java, Go, C# και Ruby, καθώς και προσαρμοσμένοι χρόνοι εκτέλεσης για άλλες γλώσσες.
  • 💰 Πληρωμή ανά χρήση: BillΗ ing ισχύει μόνο κατά την εκτέλεση του κώδικα, μετρούμενη σε χιλιοστά του δευτερολέπτου, με ένα μόνιμο μηνιαίο δωρεάν επίπεδο ενός εκατομμυρίου αιτημάτων.
  • Βασικές έννοιες: Οι συναρτήσεις, οι χρόνοι εκτέλεσης, οι πηγές συμβάντων, τα επίπεδα και οι ροές αρχείων καταγραφής καθορίζουν τον τρόπο με τον οποίο το Lambda εκτελεί και διαχειρίζεται τον κώδικα.
  • 🤖 Βοήθεια AI: Συγπιλότος GitHub και Amazon Η Q παράγει κώδικα Lambda, ενώ η Lambda ενορχηστρώνει την γενετική συμπερασματολογία μέσω Amazon Βράχο.

Τι είναι το AWS Lambda

Πριν εξερευνήσετε το 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 με μερικά εύκολα βήματα:

AWS Μπλοκ Διάγραμμα Λάμδα

Βήμα 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/ και Ξεκινήστε.

Πώς να χρησιμοποιήσετε το AWS Lambda

Βήμα 2) Δημιουργήστε λογαριασμό

Στη συνέχεια, δημιουργήστε έναν λογαριασμό ή συνδεθείτε με τον υπάρχοντα λογαριασμό σας.

Πώς να χρησιμοποιήσετε το AWS Lambda

Βήμα 3) Επεξεργαστείτε τον κώδικα και κάντε κλικ στην επιλογή Εκτέλεση

Στην επόμενη σελίδα Lambda, επεξεργαστείτε τον κώδικα και κάντε κλικ στην επιλογή Εκτέλεση.

Βήμα 4) Ελέγξτε την έξοδο

Θα δείτε την έξοδο.

Πώς να χρησιμοποιήσετε το AWS Lambda

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 λεπτά.

Συχνές Ερωτήσεις

Το AWS Lambda υποστηρίζει εγγενώς το Node.js, Python, Java, Go, C#, PowerShell και Ruby. Ένα Runtime API και υποστήριξη εικόνας κοντέινερ σάς επιτρέπουν να εκτελέσετε σχεδόν οποιαδήποτε άλλη γλώσσα, επομένως οι ομάδες σπάνια περιορίζονται από την προτιμώμενη στοίβα τους.

Το AWS Lambda περιλαμβάνει μια μόνιμη δωρεάν βαθμίδα ενός εκατομμυρίου αιτημάτων και 400,000 GB δευτερολέπτων υπολογιστικής διάρκειας κάθε μήνα. Πέρα από αυτό, πληρώνετε μόνο για τα αιτήματα και τον χρόνο υπολογιστικής διάρκειας που χρησιμοποιεί πραγματικά ο κώδικά σας, ο οποίος χρεώνεται ανά χιλιοστό του δευτερολέπτου.

Μια ψυχρή εκκίνηση είναι η σύντομη καθυστέρηση όταν η Lambda αρχικοποιεί ένα νέο περιβάλλον εκτέλεσης για μια συνάρτηση που ήταν αδρανής. Μπορείτε να τη μειώσετε με προβλεπόμενη ταυτόχρονη εκτέλεση, μικρότερα πακέτα ή SnapStart για Java λειτουργίες.

Ναι. Εκτός από την μεταφόρτωση ενός αρχείου ZIP, το Lambda σάς επιτρέπει να συσκευάσετε μια συνάρτηση ως εικόνα κοντέινερ έως και 10 GB. Αυτό ταιριάζει σε μεγαλύτερες εξαρτήσεις και βιβλιοθήκες μηχανικής μάθησης, διατηρώντας παράλληλα...ping το ίδιο μοντέλο εκτέλεσης χωρίς διακομιστή, που βασίζεται σε συμβάντα.

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

Ναι. Το Lambda συνήθως τροφοδοτεί εφαρμογές τεχνητής νοημοσύνης εκτελώντας ελαφριά συμπερασματολογία και ενορχηστρώνοντας κλήσεις σε υπηρεσίες όπως Amazon Bedrock και SageMaker. Η υποστήριξη εικόνων κοντέινερ βοηθά στη δημιουργία πακέτων βιβλιοθηκών μηχανικής μάθησης, ενώ η Lambda χειρίζεται την κλιμάκωση του αγωγού γενετικής τεχνητής νοημοσύνης.

Ναί. GitHub Copilot γράφει συναρτήσεις χειριστή από ένα σχόλιο ή ένα όνομα, ενώ Amazon Το Q Developer προσθέτει βοήθεια με επίγνωση του AWS για πολιτικές IAM, CloudFormation και κλήσεις SDK, επιταχύνοντας την ανάπτυξη χωρίς διακομιστή.

Παραχωρήστε σε κάθε συνάρτηση έναν ρόλο IAM με τα λιγότερα προνόμια, αποθηκεύστε μυστικά σε κρυπτογραφημένες μεταβλητές περιβάλλοντος ή στο Secrets Manager και τοποθετήστε ευαίσθητες συναρτήσεις μέσα σε ένα VPC. Στη συνέχεια, τα CloudWatch και CloudTrail καταγράφουν τη δραστηριότητα για παρακολούθηση και έλεγχο.

Συνοψίστε αυτήν την ανάρτηση με: