Lambda-Funktionszustände - AWS Lambda

Lambda-Funktionszustände

Lambda enthält in der Funktionskonfiguration für alle Funktionen ein Statusfeld, das anzeigt, wann Ihre Funktion zum Aufruf bereit ist. State gibt Auskunft über den aktuellen Status der Funktion, einschließlich der Frage, ob Sie die Funktion erfolgreich aufrufen können. Funktionszustände ändern nicht das Verhalten von Funktionsaufrufen oder wie Ihre Funktion den Code ausführt.

Anmerkung

Die Funktionsstatusdefinitionen für SnapStart-Funktionen unterscheiden sich geringfügig. Weitere Informationen finden Sie unter Lambda SnapStart und Funktionsstatus.

In vielen Fällen ist eine DynamoDB-Tabelle eine ideale Methode zum Bewahren des Status zwischen Aufrufen, da sie Datenzugriff mit geringer Latenz ermöglicht und mit dem Lambda-Service skaliert werden kann. Sie können Daten auch in Amazon EFS for Lambda speichern, wenn Sie diesen Service verwenden. Dadurch wird ein Zugriff mit geringer Latenz auf den Dateisystemspeicher ermöglicht.

Zu den Funktionszustände gehören:

  • Pending – Nachdem Lambda die Funktion erstellt hat, setzt es den Status auf „Ausstehend“. Im Status „Ausstehend“ versucht Lambda, Ressourcen für die Funktion zu erstellen oder zu konfigurieren, beispielsweise VPC- oder EFS-Ressourcen. Lambda ruft während des ausstehenden Status keine Funktion auf. Alle Aufrufe oder andere API-Aktionen, die mit der Funktion arbeiten, schlagen fehl.

  • Active – Ihre Funktion wechselt in den aktiven Status, nachdem Lambda die Ressourcenkonfiguration und -Bereitstellung abgeschlossen hat. Funktionen können nur erfolgreich aufgerufen werden, wenn sie aktiv sind.

  • Failed – Gibt an, dass bei der Ressourcenkonfiguration oder bei der Bereitstellung ein Fehler aufgetreten ist.

  • Inactive – Eine Funktion wird inaktiv, wenn sie lange genug im Leerlauf war, damit Lambda die externen Ressourcen zurückfordern kann, die für sie konfiguriert wurden. Wenn Sie versuchen, eine Funktion aufzurufen, die inaktiv ist, schlägt der Aufruf fehl und Lambda setzt die Funktion auf den Status „Ausstehend“, bis die Funktionsressourcen neu erstellt werden. Wenn Lambda die Ressourcen nicht neu erstellen kann, kehrt die Funktion in den inaktiven Zustand zurück. Möglicherweise müssen Sie alle Fehler beheben und Ihre Funktion erneut bereitstellen, um sie wieder in den aktiven Zustand zu versetzen.

Wenn Sie SDK-basierte Automatisierungs-Workflows verwenden oder die Service-APIs von Lambda direkt aufrufen, überprüfen Sie vor dem Aufruf einer Funktion, ob sie aktiv ist. Sie können dies mit der Lambda-API-Aktion GetFunction tun oder einen Waiter mit dem AWS SDK für Java 2.0 konfigurieren.

aws lambda get-function --function-name my-function --query 'Configuration.[State, LastUpdateStatus]'

Die Ausgabe sollte folgendermaßen aussehen:

[
 "Active",
 "Successful" 
]

Die folgenden Operationen schlagen fehl, während die Funktionserstellung aussteht:

Funktionsstatus während der Aktualisierung

Lambda hat zwei Vorgänge zum Aktualisieren von Funktionen:

Lambda verwendet das LastUpdateStatus-Attribut, um den Fortschritt dieser Aktualisierungsvorgänge zu verfolgen. Während ein Update läuft (wenn "LastUpdateStatus": "InProgress"):

Beispiel GetFunctionConfiguration-Antwort

Das folgende Beispiel ist das Ergebnis der GetFunctionConfiguration-Aufforderung für eine Funktion, die einer Aktualisierung unterzogen wird.

{ "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:my-function", "Runtime": "nodejs22.x", "VpcConfig": { "SubnetIds": [ "subnet-071f712345678e7c8", "subnet-07fd123456788a036", "subnet-0804f77612345cacf" ], "SecurityGroupIds": [ "sg-085912345678492fb" ], "VpcId": "vpc-08e1234569e011e83" }, "State": "Active", "LastUpdateStatus": "InProgress", ... }