AWS Lambda ist ein serverloser Computing-Dienst, der von Amazon Web Services (AWS) bereitgestellt wird. Er ermöglicht es Entwicklern, Code auszuführen, ohne Server zu verwalten oder zu provisionieren. AWS Lambda führt den Code als Reaktion auf bestimmte Ereignisse aus und verwaltet automatisch die zugrunde liegende Compute-Ressourcen. Dies erleichtert die Entwicklung und Skalierung von Anwendungen erheblich.
Funktionsweise
AWS Lambda ist ein serverloser Computing-Dienst, der es ermöglicht, Code auszuführen, ohne sich um die zugrunde liegende Infrastruktur zu kümmern. Die Funktionsweise von AWS Lambda basiert auf einem ereignisgesteuerten Modell und umfasst mehrere technische Aspekte, die das effiziente und skalierbare Ausführen von Code gewährleisten.
Die Architektur von AWS Lambda besteht aus mehreren Schlüsselkomponenten, die zusammenarbeiten, um eine nahtlose und automatische Ausführung von Funktionen zu ermöglichen.
Handler-Funktion:
Die zentrale Komponente jeder Lambda-Funktion ist die Handler-Funktion. Diese Funktion ist der Einstiegspunkt für die Ausführung des Codes. In der Regel wird sie in einer der unterstützten Programmiersprachen geschrieben, wie Python, JavaScript (Node.js), Java, C#, Go oder Ruby. Der Code kann direkt über die AWS Management Console geschrieben und bearbeitet werden oder über ein Entwicklungs- und Bereitstellungstool wie AWS CloudFormation oder AWS Serverless Application Model (SAM).
Ereignisquelle (Trigger):
Ereignisse, die eine Lambda-Funktion auslösen, können von verschiedenen AWS-Diensten oder benutzerdefinierten Anwendungen stammen. Beispiele für solche Ereignisquellen sind:
- Amazon S3: Ein Ereignis wird ausgelöst, wenn ein Objekt in einen S3-Bucket hochgeladen oder daraus gelöscht wird.
- Amazon DynamoDB: Änderungen an Tabellen (z. B. Hinzufügen, Aktualisieren oder Löschen von Elementen) können Ereignisse auslösen.
- Amazon Kinesis: Datenströme können Ereignisse generieren, wenn neue Daten eintreffen.
- AWS API Gateway: HTTP-Anfragen können als Ereignisquelle dienen, wodurch Lambda-Funktionen als Backend für Webanwendungen verwendet werden können.
- AWS CloudWatch Events: Zeitbasierte Ereignisse können Lambda-Funktionen nach einem festgelegten Zeitplan auslösen.
Execution Context:
Der Execution Context ist eine temporäre Umgebung, die AWS Lambda für die Ausführung der Funktion bereitstellt. Dieser Kontext kann zwischen mehreren Funktionsaufrufen wiederverwendet werden, um die Leistung zu optimieren. Er enthält:
- Umgebungsvariablen: Konfigurationsdaten, die der Funktion zur Verfügung stehen.
- Temporärer Speicher: Ein /tmp-Verzeichnis, das bis zu 512 MB Speicherplatz bietet.
- Initialisierte Verbindungen: Bestehende Verbindungen zu Datenbanken oder anderen externen Diensten, die zwischen Aufrufen bestehen bleiben.
Ressourcenverwaltung und Skalierung:
- AWS Lambda übernimmt automatisch die Verwaltung der zugrunde liegenden Compute-Ressourcen. Dies umfasst das Starten, Beenden und Skalieren der Compute-Kapazität basierend auf der Anzahl der eingehenden Ereignisse.
- Die Skalierung erfolgt in Einheiten von „Lambdas“, wobei jede Einheit eine separate Instanz der Funktion ist. Bei einem plötzlichen Anstieg der Ereignisse skaliert AWS Lambda horizontal, indem es mehrere Instanzen der Funktion parallel ausführt.
Ablauf der Ausführung
Ereignisauslösung:
Ein Ereignis wird durch eine der konfigurierten Ereignisquellen ausgelöst. Dieses Ereignis enthält alle relevanten Daten, die für die Ausführung der Funktion benötigt werden.
Zuweisung einer Lambda-Instanz:
AWS Lambda weist eine verfügbare Instanz zu oder startet eine neue, falls keine freie Instanz vorhanden ist. Hierbei kann es zu einem „Kaltstart“ kommen, wenn eine neue Instanz initialisiert werden muss, was zusätzliche Latenz verursachen kann.
Verarbeitung des Ereignisses:
Die Handler-Funktion empfängt das Ereignis und führt die definierte Logik aus. Während der Ausführung kann die Funktion auf andere AWS-Dienste zugreifen, externe APIs aufrufen oder andere Aufgaben gemäß der Logik ausführen.
Rückgabe und Abschluss:
- Nach der Verarbeitung gibt die Handler-Funktion eine Antwort zurück, die je nach Anwendungsfall unterschiedlich genutzt werden kann. Dies könnte das Speichern von Daten in einer Datenbank, das Senden einer Benachrichtigung oder die Rückgabe eines Ergebnisses an eine Webanwendung sein.
- Die Lambda-Instanz bleibt im Leerlauf und kann für zukünftige Aufrufe wiederverwendet werden, bis sie nach einer gewissen Inaktivitätszeit automatisch beendet wird.
Technische Details
- Handler-Funktion: Der Entwickler schreibt eine Handler-Funktion, die als Einstiegspunkt für den Lambda-Dienst dient. Diese Funktion nimmt Eingabeparameter entgegen, verarbeitet sie und gibt eine Antwort zurück.
- Trigger: Lambda kann durch verschiedene AWS-Dienste oder benutzerdefinierte Ereignisse ausgelöst werden. Ein Trigger ist eine Konfiguration, die bestimmt, wann und warum die Lambda-Funktion aufgerufen wird.
- Execution Context: AWS Lambda verwaltet einen Ausführungskontext, der zur Optimierung der Funktionsleistung beiträgt. Der Kontext enthält Umgebungsvariablen, temporären Speicher und eine initialisierte Verbindung zu anderen AWS-Diensten, die zwischen den Aufrufen wiederverwendet werden können.
- Ressourcenverwaltung: AWS Lambda skaliert automatisch die Anzahl der parallel ausgeführten Funktionen, basierend auf der Anzahl der eingehenden Ereignisse. Entwickler müssen sich keine Sorgen um die Kapazitätsplanung oder Serververwaltung machen.
- Kostenmodell: AWS Lambda folgt einem verbrauchsabhängigen Preismodell. Es fallen Kosten für die Anzahl der Anfragen und die Dauer der Ausführung an, gemessen in Gigabyte-Sekunden (GB-s). Es gibt auch eine kostenlose Nutzungskontingent für neue Benutzer.
Anwendungsbeispiele
- Datenverarbeitung: Verarbeitung von Echtzeit-Datenströmen, z.B. Protokolldateien oder IoT-Daten, durch Trigger von AWS Kinesis oder AWS IoT Core.
- Webanwendungen: Backend-Logik für Web- und Mobile-Anwendungen durch Integration mit AWS API Gateway.
- Automatisierung: Automatisierung von Routineaufgaben, wie das Erstellen von Sicherungskopien oder das Skalieren von Ressourcen.
- Microservices: Entwicklung von Microservices-Architekturen, bei denen einzelne Funktionen unabhängig voneinander skaliert und aktualisiert werden können.
Vorteile von AWS Lambda
- Keine Serververwaltung: Entwickler müssen keine physischen oder virtuellen Server verwalten, was die Betriebs- und Wartungskosten senkt.
- Automatische Skalierung: AWS Lambda skaliert automatisch in Echtzeit, was eine hohe Verfügbarkeit und Ressourceneffizienz gewährleistet.
- Kosteneffizienz: Bezahlt wird nur für die tatsächlich genutzte Rechenzeit, was besonders für unregelmäßige oder spitzenlastige Workloads von Vorteil ist.
- Integrierbarkeit: Nahtlose Integration mit einer Vielzahl von AWS-Diensten und anderen Drittanbieter-Tools.
Nachteile
- Kaltstart-Latenz: Die erste Ausführung einer Lambda-Funktion kann aufgrund des Kaltstarts zu Verzögerungen führen, insbesondere bei weniger häufig aufgerufenen Funktionen.
- Ressourcenbeschränkungen: Es gibt Einschränkungen hinsichtlich der maximalen Ausführungszeit (15 Minuten), des Speichers (bis zu 10 GB) und anderer Ressourcen, die die Flexibilität einschränken können.
- Vendor Lock-In: Abhängigkeit von AWS-Infrastrukturen und -Diensten kann die Portabilität und Migration zu anderen Cloud-Anbietern erschweren.
- Komplexität: Die Verwaltung und Überwachung vieler kleiner Funktionen kann komplex und herausfordernd sein, insbesondere in großen verteilten Systemen.
Fazit
AWS Lambda bietet eine leistungsstarke und flexible Plattform für die Entwicklung und den Betrieb von Anwendungen, ohne dass die zugrunde liegende Infrastruktur verwaltet werden muss. Die automatische Skalierung und die nahtlose Integration mit anderen AWS-Diensten machen es zu einer attraktiven Wahl für viele Anwendungsfälle. Allerdings sollten Entwickler die möglichen Nachteile wie Kaltstart-Latenzen und Ressourcenbeschränkungen berücksichtigen. Insgesamt stellt AWS Lambda eine bedeutende Weiterentwicklung im Bereich des Cloud Computings dar und ermöglicht es Unternehmen, agiler und kosteneffizienter zu arbeiten.
Hier finden Sie unsere Übersichtseite zum Thema AWS Schulung.
AutorArtikel erstellt: 13.06.2024
Artikel aktualisiert: 10.06.2025



