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.
Fehlerbehebung bei SnapStart-Fehlern für Lambda-Funktionen
Auf dieser Seite werden häufige Probleme behandelt, die bei der Verwendung von Lambda SnapStart auftreten, darunter Fehler bei der Snapshot-Erstellung, Zeitüberschreitungsfehler und interne Servicefehler.
SnapStartNotReadyException
Fehler: Beim Aufruf des Vorgangs Invoke20150331 ist ein Fehler aufgetreten (SnapStartNotReadyException): Lambda initialisiert gerade Ihre Funktion. Sie ist aufrufbereit, sobald der Status Ihrer Funktion auf AKTIV gesetzt wird.
Häufige Ursachen
Dieser Fehler tritt auf, wenn Sie versuchen, eine Funktionsversion aufzurufen, die sich im Inactive Status befindet. Die Version Ihrer Funktion wird zu Inactive, wenn sie 14 Tage lang nicht mehr aufgerufen wurde oder wenn Lambda die Ausführungsumgebung periodisch recycelt
Auflösung
Warten Sie, bis die Funktionsversion den Active-Status erreicht hat, und rufen Sie es dann erneut auf.
SnapStartTimeoutException
Problem: Sie erhalten ein SnapStartTimeoutException, wenn Sie versuchen, eine SnapStart-Funktionsversion aufzurufen.
Häufige Ursache
In der Wiederherstellungsphase stellt Lambda die Java-Laufzeit wieder her und führt alle Laufzeit-Hooks nach der Wiederherstellung aus. Wenn ein Laufzeit-Hook nach der Wiederherstellung länger als 10 Sekunden läuft, wird die Restore-Phase unterbrochen und Sie erhalten einen Fehler, wenn Sie versuchen, die Funktion aufzurufen. Probleme mit der Netzwerkverbindung und den Anmeldeinformationen können auch zu Restore-Phase-Timeouts führen.
Auflösung
Überprüfen Sie die CloudWatch-Protokolle der Funktion auf Timeoutfehler, die während der Wiederherstellungsphase aufgetreten sind. Stellen Sie sicher, dass alle Hooks nach der Wiederherstellung in weniger als 10 Sekunden abgeschlossen sind.
Beispiel CloudWatch-Protokoll
{ "cause": "Lambda couldn't restore the snapshot within the timeout limit. (Service: Lambda, Status Code: 408, Request ID: 11a222c3-410f-427c-ab22-931d6bcbf4f2)", "error": "Lambda.SnapStartTimeoutException"}500 Interner Dienstfehler
Fehler: Lambda konnte keinen neuen Snapshot erstellen, weil Sie das Limit für die gleichzeitige Erstellung von Snapshots erreicht haben.
Häufige Ursache
Ein 500-Fehler ist ein interner Fehler innerhalb des Lambda-Service selbst und kein Problem mit Ihrer Funktion oder Ihrem Code. Diese Fehler treten häufig sporadisch auf.
Auflösung
Versuchen Sie erneut, die Funktionsversion zu veröffentlichen.
401 Nicht autorisiert
Fehler: Falsches Sitzungstoken oder Header-Schlüssel
Häufige Ursache
Dieser Fehler tritt auf, wenn der AWS Systems Manager-Parameter Store und die AWS Secrets Manager-Erweiterung mit Lambda SnapStart verwendet werden.
Auflösung
Der AWS Systems Manager-Parameter Store und die AWS Secrets Manager-Erweiterung sind nicht mit SnapStart kompatibel. Die Erweiterung generiert Anmeldeinformationen für die Kommunikation mit AWS Secrets Manager während der Funktionsinitialisierung, was bei der Verwendung mit SnapStart zu Fehlern wegen abgelaufener Anmeldeinformationen führt.
UnknownHostException (Java)
Fehler: HTTP-Anfrage kann nicht ausgeführt werden: Das Zertifikat für abc.us-east-1.amazonaws.com stimmt mit keinem der alternativen Namen des Betreffs überein.
Häufige Ursache
Lambda-Funktionen speichern DNS-Antworten bereits im Cache. Wenn Sie einen anderen DNS-Cache mit SnapStart verwenden, kann es zu Verbindungs-Timeouts kommen, wenn die Funktion von einem Snapshot aus fortgesetzt wird.
Auflösung
Um UnknownHostException-Ausfälle in der Java 11-Laufzeit zu vermeiden, empfehlen wir, networkaddress.cache.negative.ttl auf 0 zu setzen. In Java 17 und späteren Laufzeiten ist dieser Schritt nicht erforderlich. Sie können diese Eigenschaft für eine Lambda-Funktion mit der Umgebungsvariablen AWS_LAMBDA_JAVA_NETWORKADDRESS_CACHE_NEGATIVE_TTL=0 festlegen.
Fehler bei der Erstellung von Snapshots
Fehler: AWS Lambda konnte Ihre SnapStart-Funktion nicht aufrufen. Wenn dieser Fehler weiterhin besteht, überprüfen Sie die CloudWatch-Protokolle Ihrer Funktion auf Initialisierungsfehler.
Auflösung
Überprüfen Sie die Amazon CloudWatch Logs Ihrer Funktion auf Zeitüberschreitungen beim Laufzeit-Hook vor dem Prüfpunkt. Sie können auch versuchen, eine neue Funktionsversion zu veröffentlichen, wodurch das Problem manchmal behoben werden kann.
Latenzzeit bei der Snapshot-Erstellung
Problem: Wenn Sie eine neue Funktionsversion veröffentlichen, bleibt die Funktion lange im Pending Status.
Häufige Ursache
Wenn Lambda einen Snapshot erstellt, kann Ihr Initialisierungscode bis zu 15 Minuten lang ausgeführt werden. Das Zeitlimit beträgt 130 Sekunden oder das konfigurierte Funktions-Timeout (maximal 900 Sekunden), je nachdem, welcher Wert höher ist.
Wenn Ihre Funktion mit einer VPC verbunden ist, muss Lambda möglicherweise auch Netzwerkschnittstellen erstellen, bevor die Funktion Active wird. Wenn Sie versuchen, die Funktionsversion aufzurufen, während die Funktion Pending ist, erhalten Sie möglicherweise eine 409 ResourceConflictException. Wenn die Funktion über einen Amazon-API-Gateway-Endpunkt aufgerufen wird, erhalten Sie möglicherweise einen 500-Fehler im API Gateway.
Auflösung
Warten Sie mindestens 15 Minuten, bis die Funktionsversion initialisiert ist, bevor Sie sie aufrufen.