Behebung SnapStart von Fehlern für Lambda-Java-Funktionen - 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.

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.