Was ist eine anonyme Funktion/eine Lambda-Funktion?

Hier geht es um AWS-Lambda, oder: Funktionen von AWS Lambda

AWS Lambda, ein serverloser Datenverarbeitungsdienst, führt deinen Code aus, wenn bestimmte Ereignisse eintreten, und verwaltet die zugrunde liegenden Datenverarbeitungsressourcen automatisch für dich. Mit AWS Lambda kannst du bestehende AWS-Services mit benutzerdefinierter Logik erweitern oder deinen eigenen Backend-Service erstellen und ihn im AWS-Maßstab mit AWS-Sicherheit und -Leistung ausführen. AWS Lambda ist in der Lage, Code automatisch als Reaktion auf mehrere Ereignisse auszuführen, z. B. HTTP-Anfragen über Amazon API Gateway, Änderungen an Objekten in Amazon S3-Buckets und Aktualisierungen von Tabellen in Amazon DynamoDB oder Zustandsübergänge innerhalb von AWS Step Functions.

Lambda führt deinen Code automatisch auf einer hochverfügbaren Datenverarbeitungsinfrastruktur aus. Es übernimmt die gesamte Verwaltung der Datenverarbeitungsressourcen, einschließlich der Wartung von Servern und Betriebssystemen sowie der Bereitstellung von Kapazitäten und der automatischen Skalierung. Auch die Bereitstellung von Code und Sicherheitspatches wird von Lambda übernommen. Außerdem protokolliert und überwacht es den Code. Du musst nur den Code bereitstellen.

Was ist eine Lambda-Funktion?

Eine “Lambda-Funktion” ist der Code, den du auf AWS Lambda ausführst. Die Lambda-Funktion kann erstellt werden, sobald sie nach einem Auslöser zur Ausführung bereit ist, genau wie eine Formel in Excel. Jede Funktion enthält deinen Code sowie einige Konfigurationsinformationen wie den Funktionsnamen, die Ressourcenanforderungen und den Funktionsnamen. Lambda-Funktionen können schnell gestartet werden und sind “zustandslos”, d.h. sie sind nicht an die zugrunde liegende Infrastruktur gebunden.

Nachdem du deinen Code in AWS Lambda hochgeladen hast, kannst du deine Funktion bestimmten AWS-Ressourcen zuordnen, z. B. einem Amazon S3-Bucket oder einer Amazon DynamoDB-Tabelle, einem Amazon Kinesis-Stream oder einer Amazon SNS-Benachrichtigung. Wenn die Ressource geändert wird, führt Lambda deine Funktion aus und verwaltet die Datenverarbeitungsressourcen nach Bedarf.

Merkmale

Hinzufügen von benutzerdefinierter Logik zur Erweiterung von AWS-Services

Mit AWS Lambda kannst du benutzerdefinierte Logik für AWS-Ressourcen wie Amazon S3-Buckets oder Amazon DynamoDB-Tabellen hinzufügen. Das macht es einfach, Datenverarbeitungsschritte für deine Daten durchzuführen, während sie in die Cloud gelangen oder sich durch sie bewegen.

Der Einstieg in AWS Lambda ist ganz einfach. Erstelle deine Funktion, indem du sie hochlädst (oder in der Lambda-Konsole erstellst), und wähle dann den Arbeitsspeicher, die Timeout-Periode und die AWS Identity and Access Management Rolle. Als Nächstes kannst du die AWS-Ressource angeben, die die Funktion auslöst. Das kann ein Amazon S3-Bucket, ein Amazon DynamoDB-Tableau oder ein Amazon Kinesis-Stream sein. Deine Funktion wird bei Bedarf von Lambda gestartet und verwaltet, um alle Änderungen an der Ressource zu verarbeiten.

Entwickle eigene Backend-Services

Mit AWS Lambda kannst du Backend-Services erstellen, die automatisch über die Lambda-API und benutzerdefinierte API-Endpunkte, die mit Amazon API Gateway erstellt werden, ausgelöst werden können. Durch die Verwendung von Lambda kannst du Client-Plattform-Varianten eliminieren (anstatt Ereignisse an Clients zu verteilen), den Batterieverbrauch reduzieren, Aktualisierungen vereinfachen und serverseitige Bereitstellungen vermeiden.

Verwende deinen eigenen Code (Bring Your Own Code).

Mit AWS Lambda musst du keine neuen Sprachen, Tools und Frameworks erlernen. Jede Bibliothek eines Drittanbieters kann verwendet werden, sogar eine native Bibliothek. Jeder Code kann als Lambda-Layer verpackt und für mehrere Funktionen verwendet werden. Lambda unterstützt Java-, PowerShell- und Ruby-Code. Du kannst auch die Laufzeit-API nutzen, um weitere Programmiersprachen hinzuzufügen, um Funktionen zu erstellen.

Vollständig automatisierte Verwaltung

AWS Lambda bietet die Infrastruktur, um deinen Code auf einer hochverfügbaren und fehlertoleranten Infrastruktur auszuführen. So kannst du dich auf die Entwicklung differenzierter Backend-Services konzentrieren. Mit Lambda entfällt die Notwendigkeit, die zugrunde liegenden Betriebssysteme zu aktualisieren, wenn es einen Patch gibt. Du musst dich auch nicht um die Skalierung oder das Hinzufügen neuer Server kümmern, wenn du sie mehr nutzt. AWS Lambda stellt deinen Code nahtlos bereit, übernimmt die gesamte Wartung und Verwaltung und bietet integrierte Überwachung und Protokollierung durch Amazon CloudWatch.

Integrierte Fehlertoleranz

AWS Lambda verteilt die Rechenkapazität über mehrere Regionen, um deinen Code vor dem Ausfall eines einzelnen Geräts oder Rechenzentrums zu schützen. Sowohl AWS Lambda als auch die Services bieten eine zuverlässige und vorhersehbare Betriebsleistung. AWS Lambda wurde entwickelt, um eine hohe Verfügbarkeit sowohl des Dienstes als auch seiner Funktionen zu gewährleisten. Es gibt keine Ausfallzeiten oder Wartungsfenster.

Als Container-Images, Paket und Bereitstellung von Funktionen.

Mit AWS Lambda kannst du Funktionen mit Hilfe von Container-Images verpacken und bereitstellen. Kunden können Lambda-basierte Anwendungen mit den bekannten Workflows, Container-Image-Tools und Abhängigkeiten erstellen. AWS Lambda bietet den Kunden Benutzerfreundlichkeit, Startzeiten von weniger als einer Sekunde und hohe Verfügbarkeit. Außerdem lässt es sich nativ in mehr als 200 AWS-Services und SaaS-Anwendungen integrieren und bietet ein nutzungsbasiertes Abrechnungsmodell. Kunden können ein einheitliches Set verwenden, um sowohl ihre Lambda-Anwendungen als auch ihre containerisierten Anwendungen für wichtige Governance-Anforderungen wie Image Signing und Security Scanning zu nutzen.

Automatische Skalierung

AWS Lambda ruft nur deinen Code auf, wenn er gebraucht wird. Es skaliert automatisch, um eingehende Anforderungen zu erfüllen, ohne dass du etwas tun musst. Es gibt keine Grenzen dafür, wie viele Anfragen dein Code verarbeiten kann. AWS Lambda führt deinen Code in der Regel innerhalb von Millisekunden nach Eintritt eines Ereignisses aus. Lambda skaliert automatisch, so dass die Leistung mit zunehmender Häufigkeit von Ereignissen nicht abnimmt. Lambda ist in der Lage, mehrere Instanzen deines Codes zu starten, ohne dass eine Konfiguration oder Bereitstellung erforderlich ist.

Verbindung zu relationalen Datenbanken

Amazon RDS Proxy ermöglicht dir den Zugriff auf vollständig verwaltete Verbindungspools für relationale Datenbanken. RDS Proxy verwaltet tausende gleichzeitige Datenbankverbindungen zu relationalen Tabellen. Dadurch ist es möglich, hoch skalierbare, sichere, Lambda-basierte, serverlose Anwendungen zu erstellen, die mit diesen Datenbanken interagieren. RDS Proxy unterstützt derzeit Aurora und MySQL. RDS Proxy kann verwendet werden, um serverlose Anwendungen über die Amazon RDS-Konsole und die AWS Lambda-Konsole bereitzustellen.

Feinkörnige Leistungskontrolle

Mit Provisioned Concurrency hast du mehr Kontrolle darüber, wie deine serverlosen Anwendungen funktionieren. Provisioned Concurrency ist aktiviert, wenn Funktionen initialisiert werden und in zweistelligen Millisekunden reaktionsbereit sind. Provisioned Concurrency ist perfekt für Anwendungen, die mit AWS Lambda erstellt wurden. Sie ermöglicht es dir, die Startzeit von Funktionen zu kontrollieren. Du kannst den Grad der Parallelität konfigurieren, den du für deine Anwendung benötigst. Du kannst den Grad der Parallelität anpassen, um Zeiten mit hoher Nachfrage zu bewältigen, oder ihn komplett deaktivieren, wenn die Nachfrage geringer ist. Die bereitgestellte Parallelität erfordert keine Änderungen an deinem Code. Provisioned Concurrency ermöglicht es dir, bei Bedarf eine konsistente latenzabhängige Leistung zu erzielen. Es ist nicht erforderlich, dass du die Ressourcen für die Datenverarbeitung verwaltest.

Verbindung zum gemeinsamen Dateisystem

Amazon Elastic File System (AWS Lambda) ermöglicht dir das sichere Lesen, Schreiben und Speichern großer Datenmengen mit geringer Latenz in allen Größenordnungen. Um Daten in den Zwischenspeicher zu laden, musst du keinen Code schreiben. Das vereinfacht und spart Zeit. So kannst du dich auf deine Geschäftslogik konzentrieren. EFS for Lambda kann für die Entwicklung von Anwendungen für maschinelles Lernen, das Laden großer Referenzdateien oder Modelle oder die Verarbeitung oder Sicherung großer Datenmengen verwendet werden. Es kann auch zum Hosten von Webinhalten oder zum Teilen von Dateien zwischen serverlosen und container- oder instanzbasierten Anwendungen verwendet werden.

Mit Code auf Amazon CloudFront-Anfragen reagieren

Mit AWS Lambda@Edge kannst du deinen Code an verschiedenen AWS-Standorten weltweit als Reaktion auf Amazon CloudFront-Ereignisse wie Inhaltsanfragen an oder von Ursprungsservern oder Viewern ausführen. So kannst du deinen Nutzern reichhaltigere, persönlichere Inhalte mit der geringsten Latenz zur Verfügung stellen.

Mehrere Funktionen können orchestriert werden

Mit AWS Step Functions kannst du Workflows erstellen, die mehrere AWS Lambda-Aufgaben für komplizierte oder langwierige Aufgaben koordinieren. Mit Step Functions kannst du Workflows erstellen, die eine Reihe von Lambda-Funktionen auslösen. Diese können sequentiell, parallel oder verzweigt sein und Schritte zur Fehlerbehandlung enthalten. Du kannst Lambda und Step Functions nutzen, um zustandsbehaftete Long-Tail-Anwendungen und Backends zu erstellen.

Modell der integrierten Sicherheit

Dein Code kann über das AWS SDK und die Integration mit AWS Identity and Access Management sicher auf AWS Lambda-Dienste zugreifen. AWS Lambda führt deinen Code automatisch innerhalb einer VPC aus. AWS Lambda kann so konfiguriert werden, dass es auf Ressourcen hinter deiner VPC zugreift. Du kannst benutzerdefinierte Sicherheitsgruppen oder Netzwerkzugriffskontrolllisten erstellen, die deinen Lambda-Funktionen den Zugriff auf Ressourcen innerhalb deiner VPC ermöglichen.

Kontrolle der Vertraulichkeit und Integrität

Code Signing for AWS Lambda bietet Vertraulichkeits- und Integritätskontrollen, die sicherstellen, dass nur der unveränderte Code in deinen Lambda-Funktionen verwendet wird. Du musst nur digital signierte Code-Artefakte erstellen und dann deine Lambda-Funktion so konfigurieren, dass die Signaturen während der Bereitstellung überprüft werden. So kannst du die Geschwindigkeit und Agilität deiner Entwicklung verbessern, selbst für große Teams. Außerdem werden so hohe Sicherheitsstandards durchgesetzt.

Bezahle nur für das, was du nutzt

AWS Lambda berechnet die Ausführungszeit und nicht pro Servereinheit. Du zahlst nur für die Anfragen, die du erhältst, und die Zeit, die du für die Verarbeitung deines Codes brauchst, wenn du Lambda-Funktionen nutzt. Die Abrechnung erfolgt in Schritten von 1 Millisekunde. Das macht es kosteneffizient und ermöglicht dir eine Skalierung von wenigen Anfragen pro Stunde bis zu Tausenden von Anfragen pro Sekunde. Provisioned Concurrency ist ein Service, bei dem du nur für die von dir erstellte Gleichzeitigkeit und die Zeit, die du für die Konfiguration benötigst, bezahlst. Du bezahlst für die Ausführungszeit und die Anfragen, wenn Provisioned Concurrency für deine Funktion aktiviert wurde.

Flexibles Ressourcenmodell

Mit AWS Lambda kannst du wählen, wie viel Speicher du deinen Funktionen zuweisen möchtest. AWS Lambda weist dir auch Netzwerkbandbreite, Rechenleistung und Festplatten-E/A zu.

Du kannst Lambda in deine bevorzugten operativen Tools integrieren

Mit den AWS Lambda-Erweiterungen kannst du Lambda ganz einfach in deine bevorzugten Tools für Monitoring, Überwachung und Sicherheit integrieren. Lambda-Erweiterungen werden in der ausführbaren Lambda-Umgebung ausgeführt, in der auch deine Funktionscodes laufen. Mit Lambda-Erweiterungen kannst du detaillierte Diagnosedaten erfassen, Metriken und Funktionsprotokolle an jeden beliebigen Ort senden und sie sogar an andere Orte übertragen. Lambda kann Sicherheitsagenten in seine Ausführungsumgebung integrieren. Dies ist ohne operativen Overhead und mit minimalen Auswirkungen auf deine Funktionsleistung möglich.

Rückmeldungen