Was ist AWS Lambda? Lambda-Funktion mit Beispielen

Inhaltsverzeichnis:

Anonim

Lassen Sie uns vor der AWS Lambda-Funktion Folgendes verstehen:

Was ist serverlos?

Serverlos ist ein Begriff, der sich im Allgemeinen auf Anwendungen ohne Server bezieht. Serverlose Anwendungen benötigen keine Serverbereitstellung und müssen keine Server verwalten.

Was ist AWS Lambda?

AWS Lambda ist eine ereignisgesteuerte, serverlose Computerplattform, die von Amazon als Teil von Amazon Web Services bereitgestellt wird. Daher müssen Sie sich keine Gedanken darüber machen, welche AWS-Ressourcen gestartet werden sollen oder wie Sie sie verwalten. Stattdessen müssen Sie den Code auf Lambda setzen, und er wird ausgeführt.

In AWS Lambda wird der Code basierend auf der Antwort von Ereignissen in AWS-Diensten ausgeführt, z. B. Hinzufügen / Löschen von Dateien im S3-Bucket, HTTP-Anforderung vom Amazon API-Gateway usw. Amazon Lambda kann jedoch nur zum Ausführen von Hintergrundaufgaben verwendet werden.

Mit der AWS Lambda-Funktion können Sie sich auf Ihr Kernprodukt und Ihre Geschäftslogik konzentrieren, anstatt die Zugriffssteuerung des Betriebssystems, das Patchen des Betriebssystems, die richtige Größe, die Bereitstellung, die Skalierung usw. zu verwalten.

In diesem AWS Lambda-Tutorial für Anfänger lernen Sie:

  • Wie funktioniert AWS Lambda?
  • Ereignisse, die AWS Lambda auslösen
  • AWS Lambda-Konzepte
  • AWS Lambda VS AWS EC2
  • AWS Lambda VS AWS Elastic Beanstalk
  • Anwendungsfälle von AWS Lambda
  • Best Practices der Lambda-Funktion
  • Wann sollte AWS Lambda nicht verwendet werden?
  • Vorteile der Verwendung von AWS Lambda
  • Einschränkungen von AWS Lambda

Wie funktioniert AWS Lambda?

Das folgende AWS Lambda-Beispiel mit Blockdiagramm erläutert die Funktionsweise von AWS Lambda in wenigen einfachen Schritten:

Schritt 1: Laden Sie zuerst Ihren AWS Lambda-Code in einer von AWS Lambda unterstützten Sprache hoch. Java, Python, Go und C # sind einige der Sprachen, die von der AWS Lambda-Funktion unterstützt werden.

Schritt 2: Dies sind einige AWS-Services, mit denen Sie AWS Lambda auslösen können.

Schritt 3: AWS Lambda hilft Ihnen beim Hochladen von Code und den Ereignisdetails, für die er ausgelöst werden soll.

Schritt 4: Führt AWS Lambda Code aus, wenn er von AWS Services ausgelöst wird:

Schritt 5: AWS berechnet nur, wenn der AWS-Lambda-Code ausgeführt wird, und nicht anders.

Dies geschieht in den folgenden Szenarien:

  • Laden Sie Dateien in einen S3-Bucket hoch
  • Wenn HTTP get / post endpoint URL getroffen wird
  • Zum Hinzufügen / Ändern und Löschen von Dynamo DB-Tabellen
  • Bei der Erfassung von Datenströmen
  • Push-Benachrichtigung
  • Hosting der Website
  • E-Mail senden

Hinweis: Sie sollten sich daran erinnern, dass Sie AWS-Services nur dann in Rechnung stellen, wenn der AWS Lambda-Code ausgeführt wird. Andernfalls müssen Sie nichts bezahlen.

Ereignisse, die AWS Lambda auslösen

Hier sind Ereignisse aufgeführt, die ausgelöst werden, wenn Sie AWS Lambda verwenden.

  • Einfügen, Aktualisieren und Löschen von Daten Dynamo DB-Tabelle
  • Push-Benachrichtigungen in SNS aufnehmen
  • So suchen Sie in CloudTrail nach dem Protokollverlauf
  • Eintrag in ein S3-Objekt
  • DynamoDB kann AWS Lambda auslösen, wenn Daten in der Tabelle hinzugefügt, geändert und gelöscht werden.
  • Hilft Ihnen, das Ereignis so zu planen, dass die Aufgabe in regelmäßigen Abständen ausgeführt wird.
  • Änderungen an Objekten in S3-Buckets
  • Von Amazon SNS gesendete Benachrichtigungen.
  • Mit AWS Lambda können die CloudTrail-Protokolle verarbeitet werden
  • Mit API Gateway können Sie AWS Lambda für GET / POST-Methoden auslösen.

AWS Lambda-Konzepte

Funktion:

Eine Funktion ist ein Programm oder ein Skript, das in AWS Lambda ausgeführt wird. Lambda übergibt Aufrufereignisse an Ihre Funktion, die ein Ereignis verarbeitet und seine Antwort zurückgibt.

Laufzeit:

Runtime ermöglicht Funktionen in verschiedenen Sprachen, die in derselben Basisausführungsumgebung ausgeführt werden. Dies hilft Ihnen, Ihre Funktion zur Laufzeit zu konfigurieren. Es passt auch zu Ihrer ausgewählten Programmiersprache.

Ereignisquelle:

Eine Ereignisquelle ist ein AWS-Dienst wie Amazon SNS oder ein benutzerdefinierter Dienst. Diese Triggerfunktion hilft Ihnen bei der Ausführung der Logik.

Lambda-Schichten:

Lambda-Schichten sind ein wichtiger Verteilungsmechanismus für Bibliotheken, benutzerdefinierte Laufzeiten und andere wichtige Funktionsabhängigkeiten. Mit dieser AWS-Komponente können Sie Ihren Entwicklungsfunktionscode auch getrennt von dem unveränderten Code und den verwendeten Ressourcen verwalten.

Protokolldatenströme:

Mit dem Protokolldatenstrom können Sie Ihren Funktionscode mit benutzerdefinierten Protokollierungsanweisungen versehen, mit denen Sie den Ausführungsfluss und die Leistung Ihrer AWS Lambda-Funktionen analysieren können.

Verwendung von AWS Lambda

Jetzt lernen wir, wie man AWS Lambda mit dem Beispiel AWS Lambda verwendet:

Schritt 1 ) Gehen Sie zu https://aws.amazon.com/lambda/ und legen Sie los

Schritt 2 ) Erstellen Sie ein Konto oder melden Sie sich mit Ihrem vorhandenen Konto an

Schritt 3 ) Auf der nächsten Lambda-Seite

  1. Bearbeiten Sie den Code
  2. Klicken Sie auf Ausführen

Schritt 4 ) Sie sehen die Ausgabe

AWS Lambda VS AWS EC2

Hier sind einige wesentliche Unterschiede zwischen AWS Lambda und EC2.

Parameter AWS Lambda AWS EC2
Definition AWS Lambda ist eine Plattform als Service (PaaS). Es hilft Ihnen, Ihren Backend-Code auszuführen und auszuführen. AWS EC2 ist eine Infrastruktur als Service (laaS). Es bietet virtualisierte Computerressourcen.
Flexibilität Bietet keine Flexibilität, sich anzumelden, um Instanzen zu berechnen. Hier können Sie ein benutzerdefiniertes Betriebssystem oder eine Sprachlaufzeit auswählen. Bietet die Flexibilität, die Vielzahl von Instanzen, benutzerdefinierten Betriebssystemen, Sicherheitspatches und Netzwerken usw. auszuwählen.
Installationsprozess Sie müssen Ihre Umgebung auswählen, in der Sie den Code ausführen möchten, und den Code in AWS Lambda übertragen. Zum ersten Mal in EC2 müssen Sie das Betriebssystem auswählen, die gesamte erforderliche Software installieren und dann Ihren Code in EC2 übertragen.
Umwelteinschränkungen Es ist auf wenige Sprachen beschränkt. Keine Umgebungsbeschränkungen.

AWS Lambda VS AWS Elastic Beanstalk

Hier sind einige wesentliche Unterschiede zwischen AWS Lambda und Elastic Beanstalk.

Parameter AWS Elastic Beanstalk AWS Lambda
Hauptaufgabe Stellen Sie die Apps in der AWS Cloud bereit und verwalten Sie sie, ohne sich Gedanken über die Infrastruktur zu machen, in der diese Anwendungen ausgeführt werden. AWS Lambda wird zum Ausführen und Ausführen Ihres Back-End-Codes verwendet. Sie können es nicht zum Bereitstellen einer Anwendung verwenden.
Auswahl der AWS-Ressourcen Sie haben die Freiheit, AWS-Ressourcen auszuwählen. Sie können beispielsweise eine EC2-Instanz auswählen, die für Ihre Anwendung optimal ist. Sie können die AWS-Ressourcen nicht auswählen, wie z. B. eine Art EC2-Instanz. Lambda bietet Ressourcen basierend auf Ihrer Arbeitslast an.
Art des Systems Es ist ein zustandsbehaftetes System. Es ist ein staatenloses System.

Anwendungsfälle von AWS Lambda

AWS Lambda wird für eine Vielzahl von Anwendungen verwendet, z.

  • Hilft Ihnen beim ETL-Prozess
  • Ermöglicht die Durchführung einer Echtzeit-Dateiverarbeitung und einer Echtzeit-Stream-Verarbeitung
  • Zum Erstellen von Webanwendungen verwenden
  • Verwendung in Amazon-Produkten wie Alexa Chatbots und Amazon Echo / Alexa
  • Datenverarbeitung (Echtzeit-Streaming-Analyse)
  • Automatisierte Backups alltäglicher Aufgaben
  • Skalierbare Backends (mobile Apps, loT-Geräte)
  • Hilft Ihnen bei der Ausführung der serverseitigen Backend-Logik
  • Ermöglicht das Filtern und Transformieren von Daten

Best Practices der Lambda-Funktion

Hier sind einige Best Practices für AWS Lambda-Funktionen:

  • Verwenden Sie das richtige "Timeout".
  • Nutzen Sie die Funktionen des lokalen Speichers mit einer Größe von 500 MB im Ordner / temp
  • Minimierung der Verwendung von Startcode, der nicht direkt mit der Verarbeitung des aktuellen Ereignisses zusammenhängt.
  • Sie sollten die integrierte CloudWatch-Überwachung Ihrer Lambda-Funktionen verwenden, um Anforderungslatenzen anzuzeigen und zu optimieren.

Wann sollte AWS Lambda nicht verwendet werden?

Es folgt die Situation, in der Lambda sicherlich keine ideale Option ist:

  • Es ist nicht angemessen, AWS Lambda-Softwarepakete oder -Anwendungen zu verwenden, bei denen zugrunde liegende Windows-RPCs aufgerufen werden
  • Wird für benutzerdefinierte Softwareanwendungen mit Lizenzvereinbarungen wie MS-Office-Dokumentverarbeitung, Oracle-Datenbanken usw. verwendet.
  • AWS Lambda sollte nicht für benutzerdefinierte Hardwareprozesse wie GPU-Beschleunigung oder Hardware-Affinität verwendet werden.

Vorteile der Verwendung von AWS Lambda

Hier sind die Vor- und Nachteile der Verwendung von AWS Lambda:

  • AWS Lambda ist ein hochflexibles Werkzeug
  • Es hilft Ihnen, Zugriff auf Ressourcen, einschließlich VPCs, zu gewähren
  • Autor direkt mit dem WYSIWYG-Editor in der Konsole.
  • Sie können es als Plugin für Eclipse und Visual Studio verwenden.
  • Da es sich um eine serverlose Architektur handelt, müssen Sie sich nicht um die Verwaltung oder Bereitstellung von Servern kümmern.
  • Sie müssen keine virtuelle Maschine einrichten.
  • Hilft Entwicklern, die Reaktion des Codes auf Ereignisse auszuführen und auszuführen, ohne eine Infrastruktur aufzubauen.
  • Sie müssen nur für die Rechenzeit nur, wenn Ihr Code ausgeführt wird.
  • Sie können Ihre Codeleistung in Echtzeit über CloudWatch überwachen.
  • Sie können Ihren Code ohne Bereitstellung ausführen oder einen anderen Server verwalten
  • Hilft Ihnen, den Code nur bei Bedarf auszuführen
  • Sie können es automatisch skalieren, um einige Anfragen pro Tag zu bearbeiten und sogar mehr als Tausende von Anfragen pro Sekunde zu unterstützen.
  • AWS Lambda kann mithilfe externer Ereigniszeitgeber konfiguriert werden, um geplante Aufgaben auszuführen.
  • Die Lambda-Funktion in AWS sollte daher mit externen Ereignissen und Timern konfiguriert werden. Es kann für die Planung verwendet werden.
  • Lambda-Funktionen sind zustandslos, sodass sie schnell skaliert werden können.
  • AWS Lambda ist schnell und führt Ihren Code innerhalb von Millisekunden aus.

Einschränkungen von AWS Lambda

Hier sind die Vor- und Nachteile der Verwendung von AWS Lambda:

  • Das AWS Lambda-Tool ist nicht für kleine Projekte geeignet.
  • AWS Lambda verlässt sich bei der Infrastruktur vollständig auf AWS, sodass Sie keine zusätzliche Software installieren können, wenn Ihr Code dies erfordert.
  • Die gleichzeitige Ausführung ist auf 100 begrenzt
  • AWS Lambda war in Bezug auf die Infrastruktur vollständig von AWS abhängig. Sie können keine zusätzliche Software installieren, wenn Ihr Code dies erfordert.
  • Das Speichervolumen kann zwischen 128 und 1536 MB variieren.
  • Die Ereignisanforderung sollte 128 KB nicht überschreiten.
  • Mit Lambda-Funktionen können Sie ihre Protokolle nur in CloudWatch schreiben. Dies ist das einzige Tool, mit dem Sie Ihre Funktionen überwachen oder Fehler beheben können.
  • Das Zeitlimit für die Codeausführung beträgt nur 5 Minuten.

Zusammenfassung

  • Serverlos ist ein Begriff, der sich im Allgemeinen auf Anwendungen ohne Server bezieht.
  • AWS Lambda ist ein solcher serverloser Rechendienst. Daher müssen Sie sich keine Gedanken darüber machen, welche AWS-Ressourcen gestartet werden sollen oder wie sie verwaltet werden.
  • Eine Funktion ist ein Programm oder ein Skript, das in AWS Serverless Lambda ausgeführt wird.
  • Runtime ermöglicht Funktionen in verschiedenen Sprachen, die in derselben Basisausführungsumgebung ausgeführt werden.
  • Eine Ereignisquelle ist ein AWS-Dienst wie Amazon SNS oder ein benutzerdefinierter Dienst.
  • Lambda-Schichten sind ein wichtiger Verteilungsmechanismus für Bibliotheken, benutzerdefinierte Laufzeiten und andere wichtige Funktionsabhängigkeiten.
  • Mit dem Protokolldatenstrom können Sie Ihren Funktionscode mit benutzerdefinierten Protokollierungsanweisungen versehen, mit denen Sie den Ausführungsfluss und die Leistung Ihrer Lambda-Funktionen analysieren können.
  • AWS Lambda ist eine Plattform als Service (PaaS). Es hilft Ihnen, Ihren Backend-Code auszuführen und auszuführen.
  • AWS EC2 ist eine Infrastruktur als Service (laaS). Es bietet virtualisierte Computerressourcen.
  • Stellen Sie die Apps in der AWS Cloud bereit und verwalten Sie sie, ohne sich Gedanken über die Infrastruktur zu machen, in der diese Anwendungen ausgeführt werden.
  • AWS Lambda wird zum Ausführen und Ausführen Ihres Back-End-Codes verwendet. Sie können es nicht zum Bereitstellen einer Anwendung verwenden.
  • AWS Lambda hilft Ihnen beim ETL-Prozess.
  • Die beste Vorgehensweise für die Lambda-Funktion in AWS besteht darin, das richtige "Timeout" zu verwenden.
  • Es ist nicht angemessen, AWS Lambda-Softwarepakete oder -Anwendungen zu verwenden, bei denen zugrunde liegende Windows-RPCs aufgerufen werden
  • AWS Lambda ist ein hochflexibles Werkzeug.
  • Das AWS Lambda-Tool ist nicht für kleine Projekte geeignet.
  • Ein häufiges Ereignis, das bei Verwendung von AWS Lambda ausgelöst wird, ist das Einfügen, Aktualisieren und Löschen von Daten in der Dynamo DB-Tabelle.