AWS hat AWS Lambda Web Functions angekündigt, ein neues Ausführungsmodell innerhalb von Lambda, mit dem sich Webanwendungen und standardmäßige HTTP-Server direkt ausführen lassen, ohne den Code für das herkömmliche Modell der Event-Handler neu schreiben zu müssen. Anwendungen auf Basis von Express, Hono, Fastify oder Next.js sowie jedes andere Node.js-Framework können mit einem einzigen Befehl und ohne spezielle Adapter oder zusätzliche Infrastrukturverwaltung bereitgestellt werden.
Der Dienst richtet sich an Webanwendungen, APIs, serverseitiges Rendering und interaktive HTTP-Workloads, die synchrone Anfragen sowie eine rechenintensive Ein-/Ausgabeverarbeitung verarbeiten.
Ein anderes Ausführungsmodell innerhalb von Lambda
AWS bietet nun drei unterschiedliche Ausführungsmodelle innerhalb von Lambda an, die alle auf der Isolationstechnologie Firecracker basieren. Event Functions eignen sich weiterhin für die Ereignisverarbeitung, den Nachrichtenkonsum und von AWS-Diensten ausgelöste Aufrufe, bei denen der Handler ein einzelnes Ereignis empfängt und nach dem herkömmlichen Modell eine Antwort zurückgibt.
Web Functions verwenden dagegen ein natives HTTP-Modell, bei dem die Anwendung auf einem Port lauscht und standardmäßige Anfragen verarbeitet. Eine einzelne Ausführungsumgebung kann bis zu 128 gleichzeitige Anfragen verarbeiten. Das dritte Modell, Lambda MicroVMs, bietet isolierte Umgebungen, einen persistenten Zustand und einen vom Kunden verwalteten Lebenszyklus für die Ausführung nicht vertrauenswürdigen oder vom Benutzer erzeugten Codes.
Was ändert sich praktisch für Entwickler?
AWS zufolge verringern Web Functions die Notwendigkeit, mehrere Komponenten für die globale Verteilung einer Webanwendung zusammenzustellen. Der Dienst übernimmt die Skalierung, die Replikation über mehrere Regionen und das latenzbasierte Routing, während der Code näher an dem HTTP-Server bleibt, den der Entwickler lokal ausführt.
Die Abrechnung von Web Functions basiert auf der CPU-Nutzungszeit, während der Arbeitsspeicher für die gesamte Dauer des Bestehens der Ausführungsumgebung berechnet wird. Daher verbraucht die Zeit, in der die Anwendung auf eine Datenbankabfrage oder den Aufruf einer API wartet, nur wenig CPU-Zeit. Dieses Modell kann für stark I/O-lastige Workloads geeignet sein, etwa für serverseitiges Rendering, APIs und Endpunkte zur Inferenz künstlicher Intelligenz, die Tokens streamen.
Das bedeutet nicht, dass die Kosten für jede Anwendung automatisch niedriger ausfallen; das Ergebnis hängt vom Nutzungsmuster, der Lebensdauer der Umgebungen, dem Speicherverbrauch und der Größe der Anfragen ab.
Bereitstellung, Verteilung und Versionen
Die AWS CLI verwendet einen Befehl wie aws lambda-web deploy, um den Code zu bündeln, eine Web Function zu erstellen, die erste Revision bereitzustellen und einen HTTPS-Endpunkt zu verknüpfen. Die Anwendung kann in mehreren Regionen bereitgestellt werden, etwa in us-east-1, eu-west-1 und ap-northeast-1. Lambda leitet die Anfragen dann über eine einzige globale Adresse nach bestem Ermessen an die Region mit der geringsten Antwortlatenz weiter.
Der Dienst behandelt jede Version als unveränderliche Momentaufnahme des Codes. Außerdem ermöglichen die Endpunkte die Verteilung des Datenverkehrs auf mehrere Versionen, einschließlich eines schrittweisen Canary-Rollouts, bei dem beispielsweise 90 % der Anfragen an die aktuelle Version und 10 % an die neue Version weitergeleitet werden.
Integration mit CloudFront und anfängliche Verfügbarkeit
Ein Web-Function-Endpunkt kann als Ursprung für Amazon CloudFront verwendet werden, sodass statische Assets im Netzwerk zwischengespeichert werden, während dynamische Anfragen an die Web Function gesendet werden. AWS unterstützt außerdem die Verknüpfung der CloudFront Origin Access Control mit dem Endpunkt, sodass nur die angegebene Distribution ihn aufrufen darf und der Endpunkt nicht öffentlich offengelegt oder ein eigener Autorisierungsmechanismus innerhalb der Anwendung hinzugefügt werden muss.
Der Dienst ist zum Start in US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Tokyo) und Europe (Ireland) verfügbar. Zunächst läuft er mit Node.js 24 (nodejs24.x) auf Arm64 und unterstützt die Verbindung mit der Amazon VPC, um auf Ressourcen innerhalb privater virtueller Netzwerke zuzugreifen.