© Yu Chun Christopher Wong/Shutterstock.com
Sind Sie es leid, Server zu verwalten und sich ständig Gedanken über die Infrastruktur zu machen? Wünschen Sie sich, Sie könnten sich nur auf das Schreiben von Code konzentrieren und jemand anderen das schwere Heben überlassen? Lassen Sie mich AWS Lambda vorstellen. Lambdas Behauptung von serverlosem Computing scheint zunächst zu gut, um wahr zu sein. Wenn Sie darüber nachdenken, muss es irgendwo einen Server geben. Wenn Sie eine Webanwendung oder eine Website hosten, gibt es immer einen Server im Backend, der die Dinge am Laufen hält.
Mit Lambda, das von den Experten von Amazon Web Services entwickelt wurde, können Sie Ihren Code ausführen, ohne Server verwalten zu müssen. Das ist richtig, keine nächtlichen Serverwartungen oder panischen Anrufe mehr beim IT-Support.
Sie können Ihren Code tatsächlich als Reaktion auf verschiedene Ereignisse schreiben und ausführen, z. B. eine neue Nachricht in einer SQS-Warteschlange oder eine Änderung an Daten in einem S3-Bucket. Währenddessen skaliert AWS Ihre Anwendung automatisch und führt Ihren Code als Reaktion auf diese Ereignisse aus, ohne dass ein manueller Eingriff erforderlich ist. Sie zahlen also nur für die von Ihnen genutzte Rechenzeit, anstatt Geld für ungenutzte Server zu verschwenden.
Wenn Sie also keine Server verwalten und nicht für ungenutzte Serverzeit bezahlen müssen, was ist der Haken? Was macht Lambdba so großartig, und was sollten Sie beachten, wenn Sie mehr über diesen faszinierenden Service erfahren? Kommen wir zu den Fakten!
Wichtige Fakten zu AWS Lambda
AWS Lambda ist ereignisgesteuert, d. h. es wird nur ausgeführt, wenn es durch ein Ereignis ausgelöst wird, z. B. Änderungen an Daten in Amazon S3 oder eine neue Nachricht in einem Amazon Kinesis-Stream.AWS Lambda unterstützt mehrere Programmiersprachen, einschließlich Node.js, Python, Java, Go und mehr.AWS Lambda ist hochgradig skalierbar und führt automatisch mehrere Instanzen Ihrer Funktion parallel aus, um steigenden Datenverkehr zu bewältigen.AWS Lambda lässt sich nahtlos in eine Vielzahl anderer AWS-Services integrieren, darunter Amazon S3, DynamoDB und Kinesis. AWS Lambda hat ein Preismodell, das auf der Anzahl der Anfragen und der verwendeten Rechenzeit basiert. Dies kann für Anwendungen mit seltenen oder unvorhersehbaren Nutzungsmustern kostengünstig sein.
Was ist AWS Lambda: Erklärung
Noch vor zwei Jahrzehnten war das Internet ein völlig anderer Ort für Ihr typisches Unternehmen. Wenn Sie eine App oder einen Webdienst hatten, den Sie der breiten Öffentlichkeit anbieten wollten, mussten Sie Ihre eigene Infrastruktur mit Servern, Netzwerkgeräten und dem Aufwand für die Konfiguration Ihrer eigenen Software einrichten. Die Wartung all dieser Hardware bedeutete normalerweise, dass eine teure interne IT-Abteilung eingestellt werden musste, um alles zu verwalten.
Amazon trat 2006 mit EC2 oder „Elastic Compute Cloud“ auf den Plan. Damals eine revolutionäre Idee. Anstatt sich um die Serverwartung zu kümmern und für einen Haufen Hardware zu bezahlen, könnten Sie einfach Rechenkapazität bestellen und virtuelle Server für eine bestimmte Zeit bei AWS mieten.
Cloud-Dienste sind über Nacht und währenddessen immer beliebter geworden war ein Paradigmenwechsel im Vergleich zur alten Methode, Amazon hatte etwas im Ärmel, um es noch besser zu machen. Sie sehen, mit EC2 mussten Sie immer noch für Ihre zugewiesene Zeit mit der Hardware bezahlen, also könnte es teuer werden, selbst wenn Sie keinen Code oder Aktionen auf Ihrem Server aktiv ausführen.
Geben Sie AWS ein Lambda
Als AWS Lambda 2014 eingeführt wurde, führte es das Pay-per-Execution-Modell ein. Mit anderen Worten, Sie zahlen nicht für die physische Hardware, sondern nur dafür, wie oft Sie Ihren Code ausführen möchten.
Mit Lambda können Sie Ihren Code in der Sprache Ihrer Wahl schreiben (Python , Java oder Node.js) und laden Sie es in den Dienst hoch. Anschließend können Sie die Ausführung Ihres Codes als Reaktion auf eine Vielzahl von Ereignissen auslösen, z. B. Aktualisierungen einer DynamoDB-Tabelle, Änderungen an Daten in einem Amazon S3-Bucket oder eine HTTP-Anforderung über Amazon API Gateway. Der beste Teil? Sie müssen sich keine Gedanken über die Bereitstellung von Servern, die Konfiguration von Datenbanken oder andere Probleme machen, die mit der Verwaltung der Infrastruktur einhergehen.
Stattdessen skaliert Lambda automatisch Ihre Anwendung und führt Ihren Code als Reaktion auf Ereignisse ohne irgendwelche aus Notwendigkeit manueller Eingriffe. Das bedeutet, dass Sie nur für die von Ihnen genutzte Cloud-Computing-Zeit bezahlen und nicht für ungenutzte Server. Außerdem unterstützt AWS Lambda Integrationen mit anderen AWS-Services, sodass Sie einfach leistungsstarke, ereignisgesteuerte Anwendungen erstellen können.
Wie funktioniert Lambda also? Was lässt alles funktionieren? Lesen Sie weiter, um genau das zu erfahren!
AWS Lambda unterstützt Integrationen mit anderen AWS-Services.
©Gil C/Shutterstock.com
Funktionen
Hier passiert die Magie! Lambda-Funktionen sind die Kraftpakete, die Ihren Code als Reaktion auf ein Ereignis ausführen. Plus das Beste? Sie können Funktionen in einer Vielzahl von Programmiersprachen schreiben, einschließlich beliebter Sprachen wie Node.js, Python, Java und Go.
Funktionen sind im Grunde nur Codeblöcke. Sie können eine Funktion haben, die eine REST-API hostet, oder eine Funktion, die nächtliche Sicherungen durchführt. Alles unter der Sonne. Im Allgemeinen sind sie das Rückgrat Ihres Lambda-Workflows.
Ereignisquellen
Damit Ihre Funktion funktioniert, brauchen Sie etwas, um sie auszulösen. Genau das ist eine Ereignisquelle: eine Aktion, die Ihre Funktion auslöst. Lambda unterstützt eine breite Palette von Ereignisquellen, darunter beliebte AWS-Services wie Amazon S3, DynamoDB und Kinesis. Das ist noch nicht alles – Sie können auch Dienste wie SNS und SES zum Aufbau einer hochautomatisierten Kommunikationsinfrastruktur nutzen.
Ein Beispiel für eine aktive Ereignisquelle ist eine Textnachricht oder eine E-Mail. Sie könnten SNS einrichten, um eine Textnachricht an einen Kunden auszulösen, wenn ein Unternehmen eine E-Mail sendet. Oder das Hinzufügen von Daten zu einer Datenbank nach Erhalt einer Textnachricht. Sie können Ihrer Fantasie für Ereignisquellen wirklich freien Lauf lassen.
Skalierung
Lambda ist im Vergleich zur Verwendung eines Dienstes wie EC2 aufgrund der automatischen Skalierung so attraktiv. Mit anderen Worten, Lambda kann automatisch skalieren, um extrem hohe Durchsätze zu unterstützen. Im Vergleich zur manuellen Skalierung Ihrer Rechenressourcen versucht die automatische Skalierung, dass Sie sich mehr auf die Funktionalität konzentrieren können, anstatt sich Gedanken über die Details der Skalierung Ihrer Server zu machen.
Laufzeitumgebung
Da es sich um eine „serverlose“ Umgebung handelt, müssen Sie sich nicht so viele Gedanken über die Sicherheit machen. Das Aufsetzen einer Firewall oder das Konfigurieren von Sicherheitssystemen hat früher viel Zeit in Anspruch genommen, insbesondere in den Tagen vor EC2. Lambda macht es noch einfacher, indem es die integrierten Sicherheitsmechanismen von Amazon verwendet.
Überwachung und Protokollierung
AWS Lambda bietet umfassende Überwachungs-und Protokollierungsfunktionen, einschließlich hilfreicher Metriken, Protokolle und Ablaufverfolgung Sie beheben und optimieren Ihre Funktionen.
Diese Komponenten und Funktionen von Lambda bieten eine flexible und robuste Plattform zum Erstellen und Ausführen von Anwendungen. Egal, ob Sie einen kleinen Microservice oder eine groß angelegte Anwendung entwickeln, AWS ist mit seiner leistungsstarken und zuverlässigen Infrastruktur für Sie da.
Verwendung von AWS Lambda
Wenn Sie möchten Wenn Sie Lambda verwenden, müssen Sie einige Grundzutaten in Ordnung haben. Zunächst benötigen Sie ein AWS-Konto. Die gute Nachricht ist, dass Lambda auf der kostenlosen Stufe verfügbar ist und Sie jeden Monat eine ziemlich großzügige Zuteilung erhalten.
Sie müssen über grundlegende AWS-Kenntnisse verfügen, daher könnte das Studium für eine Prüfung wie den AWS Certified Cloud Practitioner eine gute Investition sein. Sie müssen jedoch nicht für das Wissen bezahlen. Hilfe finden Sie oft auf YouTube oder anderen Online-Ressourcen mit Tutorials speziell für Ihren Anwendungsfall.
Das Kernstück dessen, was Sie tun werden, ist das Erstellen von Funktionen und das Konfigurieren von Ereignisquellen. Das Erstellen einer Lambda-Funktion ist einfach – gehen Sie einfach zur AWS Management Console oder verwenden Sie die AWS CLI.
Um mit der Verwendung von Lambda zu beginnen , müssen Sie über grundlegende AWS-Kenntnisse verfügen.
©Shalstock/Shutterstock.com
How to Learn AWS Lambda
Wenn Sie nichts über AWS wissen, Der Blick auf einen Dienst wie Lambda kann einschüchternd sein. Wenn Sie es jedoch verstehen und etwas damit für Ihre eigenen Apps erstellen möchten, ist die gute Nachricht, dass es nicht so verwirrend ist, wie es aussieht. Wenn Sie Lambda lernen möchten, stehen Ihnen zahlreiche Ressourcen zur Verfügung, die Ihnen den Einstieg erleichtern. Hier sind einige Tipps, die Ihnen dabei helfen sollen, in diesen aufregenden Service einzutauchen:
Beginnen Sie mit der offiziellen Dokumentation
Die AWS-Dokumentation sieht nicht auffällig aus und könnte ein wenig langweilig sein, ist es aber , ohne Zweifel, die sachlichste Ressource zu diesem Thema, die Sie finden werden. Das Lesen der Dokumentation zum Lernen ist jedoch wie das Lesen des Wörterbuchs zum Erlernen einer Sprache. Es ist einfach nicht der richtige Weg.
Kombinieren Sie stattdessen die Dokumentation mit Tutorials und Ihren eigenen Projekten. Konsultieren Sie die Dokumentation, wenn Sie auf einen Fehler oder eine Straßensperre stoßen, die Sie nicht herausfinden können.
Nutzen Sie die Vorteile von Online-Tutorials und-Kursen
Es gibt bereits eine Menge Websites mit kostenpflichtigen und kostenlosen Tutorials und Kursen, insbesondere seit Lambda seit 2014 existiert. Diese Kurse decken verschiedene Themen ab, z. B. serverlose Architekturen, ereignisgesteuerte Programmierung und serverlose Bereitstellung, und können Ihnen dabei helfen, schnell auf den neuesten Stand zu kommen.
AWS Lambda: Wann ist es nicht die beste Wahl?
AWS Lambda ist nicht der einzige Spieler im Serverless-Computing-Spiel. Um nur einige zu nennen, Sie haben Google App Engine, Azure Functions und sogar Heroku. Alle diese Dienste bieten ihren eigenen einzigartigen Ansatz, und sie alle haben ihre Nachteile. Für Anwendungen, die mehr Flexibilität und Kontrolle über ihre Umgebung erfordern, sind Containerisierungstechnologien wie Docker und Container-Orchestrierungsplattformen wie Kubernetes möglicherweise besser geeignet. Diese Optionen erfordern zwar mehr Einrichtung und Verwaltung als Serverless-Computing-Services, bieten aber mehr Flexibilität und Kontrolle über Ihre Umgebung.
Während wir nicht in einen Kampf zwischen AWS und Azure oder zwischen AWS und Heroku geraten Hier können wir uns einige gute Situationen vorstellen, in denen Lambda möglicherweise NICHT der beste Service ist. Oft ist ein anderer Amazon-Service die Antwort.
Wenn Sie lang andauernde Aufgaben benötigen
Eine lang andauernde oder kontinuierliche Codeausführung könnte für Lambda etwas zu schwer sein. Da Lambda-Funktionen eine maximale Laufzeit von 15 Minuten haben, sind sie möglicherweise nicht die beste Wahl für diese Art von Arbeit. In diesem Fall sind Amazon EC2 oder AWS Batch geeignetere Alternativen.
Wenn Ihre App hohe Speicheranforderungen hat
Lambda-Funktionen haben ein Speicherlimit, das zwischen 128 MB und 10 GB liegt– wahrscheinlich nicht genug für Apps mit übermäßigem Speicherbedarf. AWS Elastic Container Service, besser bekannt als einfach ECS oder EC2, sind beide die bessere Wahl für diese Anwendungen.
Wenn Ihre App dauerhaften Speicher benötigt
Wenn Sie dauerhaften Speicher benötigen, oder einfacher Wenn sich Ihre App etwas merken soll, wenn sich der Benutzer abmeldet, ist eine Lambda-Funktion nicht die beste Antwort. Sie sind zustandslos und bieten KEINE dauerhafte Speicherung. Wenn Ihre App darüber verfügen muss, bieten sowohl das Amazon Elastic File System als auch der Amazon Elastic Block Store persistenten Speicher.
Wenn Cost-per-Request nicht in Ihr Budget passt
AWS stellt Ihnen Gebühren in Rechnung basierend auf der Anzahl der Anfragen und der Ausführungszeit, die sich bei Anwendungen mit hohem Datenverkehr schnell summieren können. In einigen Fällen kann es kostengünstiger sein, Ihre eigenen Server auf EC2 zu betreiben oder ECS zu verwenden.
Wenn Sie nur eine einfache Website hosten
Lambda ist nicht die ideale Wahl, wenn Ihre Bedürfnisse sind einfach. Die meisten einfachen alten Unternehmenswebsites – diejenigen, die nicht über viele Funktionen oder eine große Benutzerbasis verfügen – werden keine Verwendung für Dienste wie Lambda haben. Wenn Sie eine statische Website haben oder eine WordPress-Site starten möchten, sind Sie mit Hosting-Anbietern wie Siteground, Bluehost oder WPengine viel besser dran.
SiteGround ist möglicherweise eine bessere Option für Benutzer mit einer statischen Website oder einer WordPress-Site.
©Postmodern Studio/Shutterstock.com
AWS Lambda: Veröffentlichungsverlauf
Seit seiner Einführung im Jahr 2014 hat Lambda mehrere Aktualisierungen und Verbesserungen erfahren, die es zu einem führenden Serverless-Computing gemacht haben Service. Eine der bemerkenswerten Veröffentlichungen im Jahr 2018 war die Unterstützung für benutzerdefinierte Laufzeiten, die es Entwicklern ermöglicht, jede Programmiersprache zum Schreiben von Lambda-Funktionen zu verwenden. Diese Funktion erweiterte die Optionen für Entwickler erheblich und ermöglichte ihnen, in ihrer bevorzugten Programmiersprache zu arbeiten.
AWS kündigte Lambda Layers im Jahr 2019 an. Dies war eigentlich ein ziemlich großes Update, da es Entwicklern endlich ermöglichte, Code zu teilen und Abhängigkeiten über mehrere Funktionen hinweg, wodurch viel Zeit und Ressourcen eingespart werden.
Die letzten Jahre waren für Lambda geradezu beeindruckend. Durch ständige Updates wird fast jede Woche eine neue Sprache oder Ereignisquelle unterstützt. Neue Funktionen wie Fehlerbehandlung und asynchroner Aufruf mögen nach Schlagworten klingen, aber sie fügen dem Service eine Menge Funktionalität in Form einer robusteren und effizienteren Plattform hinzu.
AWS Lambda: Vollständiger Leitfaden mit Funktionen und Vorteilen , und FAQs zu Vor-und Nachteilen (häufig gestellte Fragen)
Wofür wird AWS Lambda verwendet?
Einfache Dinge, wie das Platzieren eines Artikels in Ihrem Online-Einkauf Einkaufswagen oder überall dort, wo Sie möchten, dass ein Ereignis eine Funktion auslöst.
Was sind die 3 Komponenten von AWS Lambda?
Die Funktion oder der Code, der ausgeführt wird die Aufgabe, die Konfiguration, die bestimmt, wie Ihre Funktion ausgeführt wird, und schließlich die Ereignisquelle, die Ihre Funktion auslöst.
Was entspricht AWS Lambda?
Azure Functions ist eine äußerst wettbewerbsfähige Alternative mit einem sehr ähnlichen Funktions-und Triggersystem.
Welche Sprache eignet sich am besten für AWS Lambda?
Python wird weithin als die beste Sprache zum Schreiben von Lambda-Funktionen in seiner Geschwindigkeit angesehen.
Sollte ich AWS Lambda verwenden, um meine Website zu hosten?
Lambda ist für die meisten Websites nicht die beste Wahl. Tatsächlich sind viele WordPress-Hosting-Dienste oder andere bestehende Plattformen für die meisten Websites besser geeignet. Lambda glänzt, wenn Sie eine Anwendung hosten müssen, die ereignisgesteuerte Funktionen erfordert.