View a markdown version of this page

Revisionen von Webfunktionen verwalten - AWS Lambda

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.

Revisionen von Webfunktionen verwalten

Eine Revision ist eine unveränderliche Momentaufnahme des Codes und der Konfiguration Ihrer Web Function-Anwendung. Um Ihren Code oder eine Revisionseinstellung wie, oder environmentVariables zu ändern timeoutSecondsmaxConcurrencyPerEnvironment, erstellen Sie eine neue Revision. Ob die neue Version Datenverkehr empfängt, hängt vom automatischen Bereitstellungsmodus der einzelnen Endgeräte ab. Ein Endpunkt im LatestRevisionModus leitet den gesamten Datenverkehr an die neue Version weiter, sobald diese aktiv wird. Ein Endpunkt im deaktivierten Modus behält seine aktuellen Revisionsgewichte bei, bis Sie sie ändern. Da Revisionen unveränderlich sind, können Sie ein Rollback durchführen, indem Sie den Datenverkehr zu einer früheren Version weiterleiten. Die frühere Version muss aktiv bleiben und ihr Code, Schlüssel, Rolle und andere Abhängigkeiten müssen verfügbar bleiben. Hinweise zur Weiterleitung des Datenverkehrs zwischen Versionen finden Sie unterBereitstellungsmuster.

Eigenschaften der Revision

Jede Revision enthält die folgende Konfiguration:

Property (Eigenschaft) Description (Beschreibung) Standard Veränderbar
revisionId Eine eindeutige ID, die Lambda generiert, wenn Sie die Revision erstellen. – Nein (generiert)
Revision ARN Der Amazon-Ressourcenname (ARN) der Revision. – Nein (generiert)
Funktion ARN Der ARN der Webfunktion, zu der die Revision gehört. – Nein (generiert)
state Der Lebenszyklusstatus der Revision (PendingActive,, oderFailed). Details hierzu finden Sie unter Status der Revision. – Nein (verwaltet von Lambda)
stateReason Eine Beschreibung, warum sich die Revision in ihrem aktuellen Zustand befindet, z. B. die Ursache eines Zustands. Failed – Nein (verwaltet von Lambda)
Fehler Eine Liste von Fehlern, die Lambda beim Erstellen oder Lesen der Revision gefunden hat. Jeder Fehler benennt das betroffene Attribut und enthält einen Fehlercode und eine Meldung. Fehlt, wenn die Revision keine Fehler enthält. – Nein (verwaltet von Lambda)
createdAt Der Zeitstempel, als die Revision erstellt wurde. – Nein (generiert)
description Eine optionale Beschreibung der Revision, die Sie bei der Erstellung angeben. Keine Nein (unveränderlich)
BuildConfig Der Code und die Laufzeit für die Revision. Enthält codeConfig die in den folgenden Zeilen beschriebenen runtimeConfig Einstellungen. – Nein (unveränderlich)
CodeConfig Der Speicherort des Bereitstellungspakets. Enthält die in den folgenden Zeilen beschriebene s3Object Einstellung. Teil vonbuildConfig. – Nein (unveränderlich)
S3-Objekt Der Amazon S3 S3-Speicherort des Bereitstellungspakets. Enthält die bucket in den folgenden Zeilen beschriebenen versionId Einstellungen, und. key Details hierzu finden Sie unter Bereitstellen von Web-Funktionscode aus Amazon S3. Teil voncodeConfig. – Nein (unveränderlich)
bucket Der Name des Amazon S3 S3-Buckets, der das Bereitstellungspaket enthält. Für den Bucket muss die S3-Versionierung aktiviert sein. Teil von. s3Object – Nein (unveränderlich)
key Der Amazon S3 S3-Objektschlüssel des Bereitstellungspakets. Teil vons3Object. – Nein (unveränderlich)
versionId Die Versions-ID des Amazon S3 S3-Objekts. Optional. Wenn Sie es weglassen, verwendet Lambda die neueste Version des Objekts zum Zeitpunkt der Erstellung. In jedem Fall bindet Lambda die Revision an eine bestimmte Objektversion. Teil von. s3Object Aktuelle Version Nein (unveränderlich)
RuntimeConfig Die Laufzeitkonfiguration. Enthält die in der folgenden Zeile beschriebene runtime Einstellung. Teil vonbuildConfig. – Nein (unveränderlich)
runtime Die Laufzeit-ID (zum Beispielnodejs24.x). Informationen zu unterstützten Laufzeiten finden Sie unterLaufzeiten der Lambda-Webfunktion. Die Laufzeit-ID für die Revision ist zwar festgelegt, die Laufzeit selbst ist jedoch nicht eingefroren. Lambda wendet automatisch Sicherheitspatches und Bugfixes auf die Runtime an, sodass der Identifier (z. B.nodejs24.x) immer auf die neueste gepatchte Version aufgelöst wird. Details hierzu finden Sie unter Automatisches Runtime-Patching. Teil von. runtimeConfig – Nein (unveränderlich)
ServiceConfig Die Laufzeiteinstellungen für die Revision. Enthält die executionRoleArn in den folgenden Zeilen beschriebenen telemetryConfig Einstellungen maxConcurrencyPerEnvironmentenvironmentVariables,,, und. timeoutSeconds – Nein (unveränderlich)
Hinrichtung RoleArn Der ARN der IAM-Rolle, den die Web-Funktion zur Laufzeit annimmt. Die Rolle gewährt Berechtigungen für den Zugriff auf AWS Dienste und Ressourcen. Erforderlich Details hierzu finden Sie unter Rolle „Ausführung“. Teil vonserviceConfig. – Nein (unveränderlich)
timeoutSeconds Die maximale Zeit in Sekunden, die eine einzelne HTTP-Anfrage ausgeführt werden kann. Gültige Werte: 3—900. Teil von. serviceConfig 30 Nein (unveränderlich)
maxConcurrencyPerEnvironment Die maximale Anzahl gleichzeitiger HTTP-Anfragen pro Ausführungsumgebung. Gültige Werte: 1—128. Teil von. serviceConfig 64 Nein (unveränderlich)
Umgebungsvariablen Key-value Paare, die Ihrer Anwendung zur Laufzeit zur Verfügung stehen. Wird pro Revision festgelegt und ist nach der Erstellung unveränderlich. Teil von. serviceConfig Keine Nein (unveränderlich)
TelemetrieConfig Telemetrieeinstellungen für die Revision. Enthält die in den folgenden Zeilen beschriebene loggingConfig Einstellung. Wenn Sie es weglassentelemetryConfig, sendet Lambda Ihre Anwendungsprotokolle trotzdem an die Standardprotokollgruppe. Teil von. serviceConfig Keine Nein (unveränderlich)
Konfiguration protokollieren Die Protokollierungskonfiguration für die Revision. Enthält die logGroup in den folgenden Zeilen beschriebenen systemLogLevel Einstellungen, und. applicationLogLevel Details hierzu finden Sie unter Kontrollen für die Protokollierung. Teil vontelemetryConfig. Keine Nein (unveränderlich)
logGroup Die Amazon CloudWatch Logs-Protokollgruppe, die Ihre Protokolle empfängt. Protokollgruppennamen, die mit beginnen, aws/ sind reserviert und werden zurückgewiesen. Details hierzu finden Sie unter Verwenden einer benutzerdefinierten Protokollgruppe. Teil vonloggingConfig. /aws/lambda/web/function-name Nein (unveränderlich)
AnwendungLogLevel Der minimale Schweregrad der Protokolle Ihrer Anwendung, die Lambda an Amazon CloudWatch Logs sendet. Gültige Werte: TRACEDEBUG,INFO, WARNERROR, undFATAL. Teil vonloggingConfig. INFO Nein (unveränderlich)
System LogLevel Der minimale Schweregrad der Lambda-generated Systemprotokolle, die Lambda an Amazon CloudWatch Logs sendet. Gültige Werte: DEBUG, INFO und WARN Teil von. loggingConfig INFO Nein (unveränderlich)
km KeyArn Der ARN des vom Kunden verwalteten Schlüssels, der zum Verschlüsseln von Code und Umgebungsvariablen verwendet wird. Optional. Wenn ein MultiRegion PerRegion Oder-Endpunkt den Datenverkehr an die Version weiterleitet, verwenden Sie einen Schlüssel für mehrere Regionen mit einem Replikat in jeder Region des Endpunkts. Details hierzu finden Sie unter Verschlüsselung im Ruhezustand für Webfunktionen. Keine Nein (unveränderlich)

Alle Revisionseigenschaften sind nach der Erstellung unveränderlich. Um eine Konfiguration zu ändern, erstellen Sie eine neue Revision mit den aktualisierten Werten.

Eine Revision erstellen

Lambda erstellt eine Revision, wenn Sie aufrufen. CreateWebFunctionRevision Sie geben den Speicherort und die Konfiguration des Codes in der Anfrage an. Eine neue Revision kopiert keine Einstellungen aus einer vorhandenen Revision. Geben Sie alle Einstellungen an, die Sie behalten möchten, einschließlich der Umgebungsvariablen. Einstellungen, die Sie auslassen, verwenden ihre Standardwerte. Wenn Sie mit den aktuellen Werten beginnen möchten, führen Sie es aus get-web-function-revision und verwenden Sie es buildConfig serviceConfig mit Ihren Änderungen erneut. Die neue Revision beginnt im Status Ausstehend, während Lambda Ihren Code herunterlädt und daraus ein Codeartefakt vorbereitet. Wenn die Vorbereitung abgeschlossen ist, geht die Revision in den Status Aktiv über. Wenn während der Vorbereitung ein Fehler auftritt, wechselt die Revision in den Status Fehlgeschlagen und kann keinen Datenverkehr verarbeiten. Einzelheiten zu den einzelnen Bundesstaaten finden Sie unterStatus der Revision.

Bevor Sie eine Revision erstellen, laden Sie Ihr .zip-Bereitstellungspaket in einen versionierten Amazon S3 S3-Bucket hoch und rufen Sie den ARN einer Ausführungsrolle ab, die Lambda übernehmen kann. Details dazu finden Sie unter Bereitstellen von Web-Funktionscode aus Amazon S3 und Rolle „Ausführung“.

Um eine Revision mit aktualisiertem Code zu erstellen (AWS CLI)
  1. Führen Sie den folgenden Befehl aus, um eine neue Revision zu erstellen. Ersetzen Sie den S3-Bucket, den Schlüssel, den Rollen-ARN und die Konfigurationswerte durch Ihre eigenen.

    aws lambda-web create-web-function-revision \ --function-name my-web-app \ --build-config '{ "codeConfig": { "s3Object": { "bucket": "my-bucket", "key": "my-app-v2.zip" } }, "runtimeConfig": { "runtime": "nodejs24.x" } }' \ --service-config '{ "executionRoleArn": "arn:aws:iam::111122223333:role/my-web-function-role" }'

    Der Befehl verwendet die folgenden Objekte. Informationen zu den einzelnen Einstellungen und ihrer Standardeinstellung finden Sie unterEigenschaften der Revision.

    • buildConfigenthält codeConfig den Amazon S3 S3-Bucket und den Schlüssel Ihres Bereitstellungspakets sowie runtimeConfig die Laufzeit (z. B.nodejs24.x). Beide sind erforderlich.

    • serviceConfigenthält den erforderlichen ARN der AusführungsrolleexecutionRoleArn, die Ihre Webfunktion bei der Ausführung annimmt. Es kann auchtimeoutSeconds, maxConcurrencyPerEnvironmentenvironmentVariables, und enthaltentelemetryConfig.

    Der Befehl gibt Details zur neuen Version zurück, einschließlich ihrerrevisionId. Die Revision beginnt im Status Ausstehend.

  2. Führen Sie den folgenden Befehl aus, um zu bestätigen, dass die Revision aktiv ist. my-web-appErsetzen Sie es durch Ihren Funktionsnamen und rev-a1b2c durch den revisionId aus der Antwort.

    aws lambda-web get-web-function-revision \ --function-name my-web-app \ --revision-id rev-a1b2c

    Die Revision ist fertig, wann sie state istActive. Falls state jaFailed, stateReason beschreibt es die Ursache. Details hierzu finden Sie unter Status der Revision.

    Direkt nachdem Sie eine Revision erstellt haben, state ist dies in der Regel der FallPending. Um zu warten, bis es soweit istActive, führen Sie es aws lambda-web wait web-function-revision-active mit den gleichen Optionen aus.

Um eine Revision mit aktualisierter Konfiguration zu erstellen (AWS CLI)
  1. Um die Konfiguration zu ändern, ohne den Code zu ändern, geben Sie dieselbe Codespeicherposition mit den neuen Einstellungen an. Im folgenden Beispiel wird das Timeout auf 60 Sekunden geändert und eine Umgebungsvariable hinzugefügt.

    aws lambda-web create-web-function-revision \ --function-name my-web-app \ --build-config '{ "codeConfig": { "s3Object": { "bucket": "my-bucket", "key": "my-app-v2.zip" } }, "runtimeConfig": { "runtime": "nodejs24.x" } }' \ --service-config '{ "executionRoleArn": "arn:aws:iam::111122223333:role/my-web-function-role", "timeoutSeconds": 60, "maxConcurrencyPerEnvironment": 32, "environmentVariables": { "DATABASE_URL": "my-database-endpoint", "LOG_LEVEL": "info" } }'
  2. Führen Sie den folgenden Befehl aus, um zu bestätigen, dass die Revision aktiv ist. my-web-appErsetzen Sie es durch Ihren Funktionsnamen und rev-a1b2c durch den revisionId aus der Antwort.

    aws lambda-web get-web-function-revision \ --function-name my-web-app \ --revision-id rev-a1b2c

    Die Revision ist fertig, wann sie state istActive. Falls state jaFailed, stateReason beschreibt es die Ursache. Details hierzu finden Sie unter Status der Revision.

    Direkt nachdem Sie eine Revision erstellt haben, state ist dies in der Regel der FallPending. Um zu warten, bis es soweit istActive, führen Sie es aws lambda-web wait web-function-revision-active mit den gleichen Optionen aus.

Nach der Erstellung der Revision hängt es vom automatischen Bereitstellungsmodus des Endpunkts ab, wie der Datenverkehr sie erreicht. Details hierzu finden Sie unter Bereitstellungsmuster.

Überarbeitungen auflisten

Verwenden Sie den folgenden Befehl, um alle Revisionen für eine Webfunktion anzuzeigen:

aws lambda-web list-web-function-revisions \ --function-name my-web-app

Die Antwort enthält die ID, den Status, den Erstellungszeitstempel und die Konfigurationszusammenfassung jeder Revision. Verwenden Sie die Revisions-ID, wenn Sie die Gewichte der Endpunkt-Revisionen aktualisieren oder eine Revision löschen.

Löschen einer Revision

Sie können eine Revision löschen, die nicht mehr benötigt wird. Wenn Sie eine Revision löschen, wird sie dauerhaft entfernt. Ihr Bereitstellungspaket in Amazon S3 ist nicht betroffen.

Wichtig

Sie können keine Revision löschen, an die ein Endpunkt den Datenverkehr weiterleitet (eine Revision mit einer Gewichtung ungleich Null auf einem beliebigen Endpunkt). Entfernen Sie die Revision aus den Revisionsgewichten aller Endpunkte, bevor Sie sie löschen.

Um eine Revision zu löschen (AWS CLI)
  • Führen Sie den folgenden Befehl aus, um eine bestimmte Revision zu löschen.

    aws lambda-web delete-web-function-revision \ --function-name my-web-app \ --revision-id rev-a1b2c

Revisionsgrenzen und automatische Bereinigung

Lambda verwendet 50 Revisionen pro Webfunktion als automatisches Bereinigungsziel. Das Ziel ist nicht anpassbar. In der Konsole Service Quotas wird es als Revisions per Web Function (web-function-revisions-per-function) angezeigt.

Sie müssen alte Versionen nicht löschen, um innerhalb des Bereinigungsziels zu bleiben. Wenn eine neue Revision aktiv wird und die Gesamtzahl der Revisionen das Bereinigungsziel überschreitet, löscht Lambda automatisch die ältesten Revisionen, die nicht verwendet werden. Eine Revision wird verwendet, wenn ein Endpunkt Datenverkehr an sie weiterleitet, auch wenn sie irgendwo in der regionalEndpoints Eigenschaft eines OR-Endpunkts referenziert wird. MultiRegion PerRegion Lambda löscht nicht automatisch eine Revision, die gerade verwendet wird, oder die Revision, die gerade aktiv wurde. Die Bereinigung erfolgt asynchron. Die Anzahl der Revisionen kann vorübergehend 50 überschreiten, solange ältere Revisionen noch verwendet werden oder die Bereinigung im Gange ist. Eine Revision, die Sie aus allen Revisionsgewichten entfernen, z. B. ein Rollback-Ziel, kann durch Bereinigung gelöscht werden.

Sie können Revisionen auch jederzeit manuell löschen. Informationen zum Verfahren finden Sie im vorherigen Abschnitt.

Das Bereitstellungspaket jeder Version kann bis zu 512 MB groß sein (entpackt). Da Sie Ihr Bereitstellungspaket in Ihrem eigenen Amazon S3 S3-Bucket bereitstellen und Lambda Ihren Code direkt aus dem Bucket referenziert, gibt es kein separates Code-Speicherkontingent für Web Functions. Details hierzu finden Sie unter Bereitstellen von Web-Funktionscode aus Amazon S3.

Konfiguration der Revisionseinstellungen

Die gesamte Konfiguration wird pro Revision festgelegt und ist nach der Erstellung unveränderlich. Um eine Einstellung zu ändern, erstellen Sie eine neue Revision mit den aktualisierten Werten. Die folgenden Einstellungen steuern das Ausführungsverhalten.

Informationen zu den Einstellungen für das Anforderungstimeout und die Umgebungsvariablen finden Sie unter Anforderungstimeout und Umgebungsvariablen inKonfiguration von Lambda-Webfunktionen.

Parallelität pro Umgebung

Die maxConcurrencyPerEnvironment Einstellung steuert, wie viele HTTP-Anfragen eine einzelne Ausführungsumgebung gleichzeitig verarbeitet. Gültige Werte sind 1—128. Der Standardwert ist 64.

Bei I/O-bound Anwendungen (viele Anfragen warten auf Datenbank- oder Netzwerkaufrufe) maximiert ein höherer Wert die Auslastung. Bei CPU-bound Anwendungen reduziert ein niedrigerer Wert die Anzahl von Konflikten. Weitere Anleitungen finden Sie unter Skalierungsverhalten für Lambda Web Functions.