Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Lambda hält jede verwaltete Laufzeit mit Sicherheitsupdates, Fehlerbehebungen, neuen Funktionen, Leistungsverbesserungen und Unterstützung für Nebenversionen auf dem neuesten Stand. Diese Laufzeitaktualisierungen werden als Laufzeitversionen veröffentlicht. Lambda wendet Laufzeitaktualisierungen auf Funktionen an, indem es die Funktion von einer früheren Laufzeitversion auf eine neue Laufzeitversion migriert.
Für Funktionen, die verwaltete Laufzeiten verwenden, wendet Lambda Laufzeitaktualisierungen standardmäßig automatisch an. Mit automatischen Laufzeitaktualisierungen übernimmt Lambda den operativen Aufwand für das Patchen der Laufzeitversionen. Für die meisten Kunden sind automatische Aktualisierungen die richtige Wahl. Sie können dieses Standardverhalten ändern, indem Sie die Einstellungen für die Laufzeitverwaltung konfigurieren.
Lambda veröffentlicht auch jede neue Laufzeitversion als Container-Image. Um Laufzeitversionen für Container-basierte Funktionen zu aktualisieren, müssen Sie ein neues Container-Image aus dem aktualisierten Basis-Image erstellen und Ihre Funktion erneut bereitstellen.
Jeder Laufzeitversion ist eine Versionsnummer und ein ARN (Amazon Resource Name) zugeordnet. Laufzeitversionsnummern verwenden ein von Lambda definiertes Nummerierungsschema, unabhängig von den Versionsnummern, die die Programmiersprache verwendet. Runtime-Versionsnummern sind nicht immer sequentiell. Auf Version 42 könnte beispielsweise Version 45 folgen. Der Laufzeitversions-ARN ist eine eindeutige Kennung für jede Laufzeitversion. Sie können den ARN der aktuellen Laufzeitversion Ihrer Funktion in der Lambda-Konsole oder in der INIT_START-Zeile der Funktionsprotokolle anzeigen.
Laufzeitversionen sollten nicht mit Laufzeitkennungen verwechselt werden. Jede Laufzeit hat eine eindeutige Laufzeitkennung, z. B. python3.13
oder nodejs22.x
. Diese entsprechen den jeweiligen Hauptversionen der Programmiersprachen. Laufzeitversionen beschreiben die Patch-Version einer einzelnen Laufzeit.
Anmerkung
Der ARN für dieselbe Runtime-Versionsnummer kann je nach AWS-Regionen CPU-Architektur variieren.
Themen
Abwärtskompatibilität
Lambda ist bestrebt, Laufzeitaktualisierungen bereitzustellen, die mit vorhandenen Funktionen abwärtskompatibel sind. Wie beim Software-Patching gibt es jedoch seltene Fälle, in denen sich eine Laufzeitaktualisierung negativ auf eine vorhandene Funktion auswirken kann. Beispielsweise können Sicherheits-Patches ein zugrunde liegendes Problem mit einer vorhandenen Funktion aufdecken, das vom vorherigen, unsicheren Verhalten abhängt.
Beim Erstellen und Bereitstellen Ihrer Funktion ist es wichtig zu verstehen, wie Sie Ihre Abhängigkeiten verwalten, um mögliche Inkompatibilitäten mit einem future Runtime-Update zu vermeiden. Nehmen wir zum Beispiel an, dass Ihre Funktion von Paket A abhängig ist, das wiederum von Paket B abhängt. Beide Pakete sind in der Lambda-Laufzeit enthalten (sie könnten beispielsweise Teile des SDK oder seiner Abhängigkeiten oder Teile der Laufzeitsystembibliotheken sein).
Betrachten Sie folgende Szenarien:
Bereitstellung | Kompatibles Patchen | Grund |
---|---|---|
|
Ja | Zukünftige Runtime-Updates für die Pakete A und B sind abwärtskompatibel. |
|
Ja | Ihre Bereitstellung hat Vorrang, sodass future Runtime-Updates für die Pakete A und B keine Auswirkungen haben. |
|
Ja* |
Zukünftige Runtime-Updates für Paket B sind abwärtskompatibel. *Wenn A und B eng miteinander verbunden sind, können Kompatibilitätsprobleme auftreten. Beispielsweise sollten die |
|
Nein | Zukünftige Runtime-Updates für Paket A erfordern möglicherweise eine aktualisierte Version von Paket B. Die bereitgestellte Version von Paket B hat jedoch Vorrang und ist möglicherweise nicht aufwärtskompatibel mit der aktualisierten Version von Paket A. |
Gehen Sie wie folgt vor, um die Kompatibilität mit future Runtime-Updates zu gewährleisten:
-
Verpacken Sie nach Möglichkeit alle Abhängigkeiten: Nehmen Sie alle erforderlichen Bibliotheken, einschließlich des AWS SDK und seiner Abhängigkeiten, in Ihr Bereitstellungspaket auf. Dadurch wird ein stabiler, kompatibler Satz von Komponenten gewährleistet.
-
Verwenden Sie runtime-provided SDKs sparsam: Verlassen Sie sich nur dann auf das Runtime-bereitgestellte SDK, wenn Sie keine zusätzlichen Pakete hinzufügen können (z. B. wenn Sie den Lambda-Konsolen-Code-Editor oder Inline-Code in einer Vorlage verwenden). AWS CloudFormation
-
Vermeiden Sie das Überschreiben von Systembibliotheken: Stellen Sie keine benutzerdefinierten Betriebssystembibliotheken bereit, die mit future Runtime-Updates in Konflikt geraten könnten.
Modi der Laufzeitaktualisierung
Lambda ist bestrebt, Laufzeitaktualisierungen bereitzustellen, die mit vorhandenen Funktionen abwärtskompatibel sind. Wie beim Software-Patching gibt es jedoch seltene Fälle, in denen sich eine Laufzeitaktualisierung negativ auf eine vorhandene Funktion auswirken kann. Beispielsweise können Sicherheits-Patches ein zugrunde liegendes Problem mit einer vorhandenen Funktion aufdecken, das vom vorherigen, unsicheren Verhalten abhängt. Lambda-Laufzeitverwaltungskontrollen tragen dazu bei, das Risiko von Auswirkungen auf Ihre Workloads im seltenen Fall einer Inkompatibilität einer Laufzeitversion zu verringern. Für jede Funktionsversion ($LATEST
oder veröffentlichte Version) können Sie einen der folgenden Laufzeitaktualisierungsmodi wählen:
Automatisch (Standard) – Automatische Aktualisierung auf die neueste und sicherste Laufzeitversion mit Zweiphasiges Rollout der Laufzeitversion. Diesen Modus empfehlen wir den meisten Kunden, damit Sie immer von Laufzeitaktualisierungen profitieren.
Funktion aktualisieren – Aktualisieren Sie die Laufzeit Ihrer Funktion auf die neueste und sicherste Laufzeitversion. Wenn Sie Ihre Funktion aktualisieren, aktualisiert Lambda die Laufzeit Ihrer Funktion auf die neueste und sicherste Laufzeitversion. Dieser Ansatz synchronisiert Laufzeitaktualisierungen mit Funktionsbereitstellungen, sodass Sie die Kontrolle darüber haben, wann Lambda Laufzeitaktualisierungen anwendet. In diesem Modus können Sie seltene Inkompatibilitäten bei Laufzeitaktualisierungen frühzeitig erkennen und beheben. Wenn Sie diesen Modus verwenden, müssen Sie Ihre Funktionen regelmäßig aktualisieren, um deren Laufzeit auf dem neuesten Stand zu halten.
Manuell – Aktualisieren Sie Ihre Laufzeitversion manuell. Sie geben in Ihrer Funktionskonfiguration eine Laufzeitversion an. Die Funktion verwendet diese Laufzeitversion unbegrenzt. In dem seltenen Fall, dass eine neue Laufzeitversion mit einer vorhandenen Funktion nicht kompatibel ist, können Sie diesen Modus verwenden, um Ihre Funktion auf eine frühere Laufzeitversion zurückzusetzen. Wir raten davon ab, den Modus Manual (Manuell) zu verwenden, um Laufzeitkonsistenz über Bereitstellungen hinweg zu erreichen. Weitere Informationen finden Sie unter Rollback einer Lambda-Laufzeitversion.
Die Verantwortung für das Anwenden von Laufzeitaktualisierungen auf Ihre Funktionen hängt davon ab, welchen Laufzeitaktualisierungsmodus Sie auswählen. Weitere Informationen finden Sie unter Verstehen des Modells der geteilten Verantwortung für die Verwaltung der Lambda-Laufzeit.
Zweiphasiges Rollout der Laufzeitversion
Lambda führt neue Laufzeitversionen in der folgenden Reihenfolge ein:
In der ersten Phase wendet Lambda die neue Laufzeitversion an, sobald Sie eine Funktion erstellen oder aktualisieren. Eine Funktion wird aktualisiert, wenn Sie die UpdateFunctionCodeoder UpdateFunctionConfigurationAPI-Operationen aufrufen.
In der zweiten Phase aktualisiert Lambda alle Funktionen, die den Auto (Automatischen) Laufzeitaktualisierungsmodus verwenden und die noch nicht auf die neue Laufzeitversion aktualisiert wurden.
Die Gesamtdauer des Rollout-Prozesses hängt von mehreren Faktoren ab, einschließlich des Schweregrads von Sicherheits-Patches, die in der Laufzeitaktualisierung enthalten sind.
Wenn Sie Ihre Funktionen aktiv entwickeln und bereitstellen, werden Sie höchstwahrscheinlich in der ersten Phase neue Laufzeitversionen abrufen. Dadurch werden Laufzeitaktualisierungen mit Funktionsaktualisierungen synchronisiert. In dem seltenen Fall, dass die neueste Laufzeitversion Ihre Anwendung negativ beeinflusst, können Sie mit diesem Ansatz, umgehend Korrekturmaßnahmen ergreifen. Funktionen, die sich nicht in der aktiven Entwicklung befinden, erhalten auch in der zweiten Phase den operativen Nutzen von automatischen Laufzeitaktualisierungen.
Dieser Ansatz wirkt sich nicht auf Funktionen aus, die auf Function update (Funktionsaktualisierung) oder Manual (Manuell) festgelegt sind. Funktionen, die den Modus Function update (Funktionsaktualisierung) verwenden, erhalten die neuesten Laufzeitaktualisierungen nur, wenn Sie sie erstellen oder aktualisieren. Funktionen, die den Modus Manual (Manuell) verwenden, erhalten keine Laufzeitaktualisierungen.
Lambda veröffentlicht neue Laufzeitversionen schrittweise und fortlaufend in allen AWS-Regionen. Wenn Ihre Funktionen auf die Modi Auto (Automatisch) oder Function update (Funktionsaktualisierung) festgelegt sind, ist es möglich, dass Funktionen, die zur gleichen Zeit in verschiedenen Regionen oder zu verschiedenen Zeiten in derselben Region eingesetzt werden, unterschiedliche Laufzeitversionen abrufen. Kunden, die eine garantierte Konsistenz der Laufzeitversionen in ihren Umgebungen benötigen, sollten Container-Images verwenden, um ihre Lambda-Funktionen bereitzustellen. Der Modus Manuell ist als vorübergehende Gegenmaßnahme gedacht, um im seltenen Fall eines Laufzeitzeitproblems ein Laufzeit-Rollback zu ermöglichen, dass eine Laufzeitversion nicht mit Ihrer Funktion kompatibel ist.