AWS hat die allgemeine Verfügbarkeit von Lambda SnapStart für Python- und .NET-Funktionen angekündigt. Diese Funktion reduziert die Startzeiten von Funktionen auf unter eine Sekunde, oft mit minimalen Codeänderungen, und ermöglicht so hochgradig responsive und skalierbare serverlose Anwendungen. Lambda SnapStart funktioniert, indem es den Snapshot-Speicher- und Festplattenzustand von einmalig initialisiertem Code oder Code, der nur beim ersten Aufruf einer Lambda-Funktion ausgeführt wird, zwischenspeichert und wiederverwendet. Lambda erstellt einen Firecracker-microVM-Snapshot des Speicher- und Festplattenzustands der initialisierten Ausführungsumgebung, verschlüsselt den Snapshot und speichert ihn zwischen, um einen Zugriff mit geringer Latenz zu ermöglichen. Wenn Sie die Funktionsversion zum ersten Mal aufrufen und die Aufrufe skaliert werden, setzt Lambda neue Ausführungsumgebungen aus dem zwischengespeicherten Snapshot fort, anstatt sie von Grund auf neu zu initialisieren, wodurch die Startlatenz verbessert wird. Bei Python-Funktionen kann die Startlatenz durch Initialisierungscode mehrere Sekunden betragen. Einige Szenarien, in denen dies auftreten kann, sind das Laden von Abhängigkeiten (z. B. LangChain, Numpy, Pandas und DuckDB) oder die Verwendung von Frameworks (z. B. Flask oder Django). Bei .NET-Funktionen erwarten wir, dass die meisten Anwendungsfälle davon profitieren, da die Just-in-Time-Kompilierung (JIT) von .NET bis zu mehreren Sekunden dauert. Die mit der Initialisierung von Lambda-Funktionen verbundene Latenzvariabilität war für Kunden lange Zeit ein Hindernis für die Verwendung von .NET für AWS Lambda. SnapStart ermöglicht es Funktionen, schnell wiederaufzunehmen, indem ein Snapshot ihres Speicher- und Festplattenzustands zwischengespeichert wird. Daher werden die meisten .NET-Funktionen mit Lambda SnapStart eine signifikante Verbesserung der Latenzvariabilität erfahren.