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.
Behebung SnapStart von Fehlern für Lambda-Java-Funktionen
Auf dieser Seite werden häufig auftretende Probleme behandelt, die bei der Verwendung von Lambda auftreten SnapStart, darunter Fehler bei der Snapshot-Erstellung, Timeoutfehler und interne Dienstfehler.
SnapStartNotReadyException
Fehler: Beim Aufrufen der Operation Invoke20150331 ist ein Fehler aufgetreten (SnapStartNotReadyException): Lambda initialisiert Ihre Funktion. Sie ist bereit zum Aufrufen, sobald Ihr Funktionsstatus erreicht ist. ACTIVE
Häufige Ursachen
Dieser Fehler tritt auf, wenn Sie versuchen, eine Funktionsversion aufzurufen, die sich im Inactive Status befindet. Ihre Funktionsversion wirdInactive
, wenn sie 14 Tage lang nicht aufgerufen wurde oder wenn Lambda die Ausführungsumgebung regelmäßig recycelt
Auflösung
Warten Sie, bis die Funktionsversion den Active
-Status erreicht hat, und rufen Sie es dann erneut auf.
SnapStartTimeoutException
Problem: Sie erhalten eine, SnapStartTimeoutException
wenn Sie versuchen, eine Funktionsversion aufzurufen. SnapStart
Häufige Ursache
Während der Wiederherstellungsphase stellt Lambda die Java-Laufzeit wieder her und führt alle afterRestore()
Runtime-Hooks aus. Wenn ein afterRestore()
Runtime-Hook länger als 10 Sekunden läuft, läuft die Restore
Phase ab und Sie erhalten eine Fehlermeldung, wenn Sie versuchen, die Funktion aufzurufen. Probleme mit der Netzwerkverbindung und den Anmeldeinformationen können auch zu Restore
Phase-Timeouts führen.
Auflösung
Suchen Sie in den CloudWatch Protokollen der Funktion nach Timeoutfehlern, die während der Wiederherstellungsphase aufgetreten sind. Stellen Sie sicher, dass alle afterRestore()
Hooks in weniger als 10 Sekunden abgeschlossen sind.
Beispiel CloudWatch protokollieren
{ "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, da Sie Ihr 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 Parameterspeicher und die AWS Secrets Manager Erweiterung sind nicht kompatibel mit SnapStart. Die Erweiterung generiert Anmeldeinformationen für die Kommunikation mit ihnen AWS Secrets Manager während der Funktionsinitialisierung, was bei Verwendung von zu Fehlern mit abgelaufenen Anmeldeinformationen führt. SnapStart
UnknownHostException
Fehler: Die HTTP Anfrage kann nicht ausgeführt werden: Das Zertifikat für entspricht abc.us-east-1.amazonaws.com
keinem der alternativen Namen des Antragstellers.
Häufige Ursache
Lambda-Funktionen speichern bereits DNS Antworten im Cache. Wenn Sie einen anderen DNS Cache mit verwenden SnapStart, kann es zu Verbindungstimeouts kommen, wenn die Funktion von einem Snapshot aus wieder aufgenommen wird.
Auflösung
Um UnknownHostException
Ausfälle in der Java 11-Runtime zu verhindern, empfehlen wir, den Wert auf 0 networkaddress.cache.negative.ttl
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 AWS_LAMBDA_JAVA_NETWORKADDRESS_CACHE_NEGATIVE_TTL=0
Umgebungsvariablen festlegen.
Fehler bei der Erstellung von Snapshots
Fehler: Ihre SnapStart Funktion AWS Lambda konnte nicht aufgerufen werden. Wenn dieser Fehler weiterhin besteht, überprüfen Sie die CloudWatch Protokolle Ihrer Funktion auf Initialisierungsfehler.
Auflösung
Überprüfen Sie die CloudWatch Amazon-Logs Ihrer Funktion auf beforeCheckpoint()
Runtime-Hook-Timeouts. Sie können auch versuchen, eine neue Funktionsversion zu veröffentlichen, wodurch das Problem manchmal behoben werden kann.
Latenz beim Erstellen von Snapshots
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 an eine angehängt istVPC, muss Lambda möglicherweise auch Netzwerkschnittstellen erstellen, bevor die Funktion aktiviert wirdActive
. Wenn Sie versuchen, die Funktionsversion aufzurufen, während die Funktion aktiv istPending
, 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 in API Gateway.
Auflösung
Warten Sie mindestens 15 Minuten, bis die Funktionsversion initialisiert ist, bevor Sie sie aufrufen.