Wie verwende ich CloudWatch Logs, um festzustellen, ob bei meiner Lambda-Funktion ein Timeout aufgetreten ist?
Bei meiner AWS Lambda-Funktion traten zeitweise Fehler auf, und ich möchte Amazon CloudWatch Logs verwenden, um festzustellen, ob bei meiner Funktion ein Timeout aufgetreten ist.
Lösung
Wenn bei einem Aufruf der Lambda-Funktion eine Zeitüberschreitung auftritt, wird in den CloudWatch-Protokollen des fehlgeschlagenen Aufrufs die Fehlermeldung Status: timeout angezeigt, und keine Meldung Error. Wenn du die CloudWatch-Protokollgruppe deiner Lambda-Funktion überprüfst, suche nach „Status: timeout“. Wenn du die Protokolle nur nach der Meldung Error durchsuchst, gibt die Suche nur codebezogene Laufzeitfehler zurück, keine Timeout-Fehler beim Aufrufen. Weitere Informationen findest du unter Monitoring AWS Lambda errors using Amazon CloudWatch (Überwachung von AWS Lambda-Fehler mithilfe von Amazon CloudWatch).
Verwende die Anforderungs-IDs der zugehörigen Timeout-Aufrufe, um die vollständigen Protokolle für jedes Aufruf-Timeout abzurufen.
Bevor du beginnst, stelle sicher, dass die Lambda-Funktion über die erforderlichen AWS Identity and Access Management (IAM)-Berechtigungen verfügt, um Protokolle in CloudWatch Logs hochzuladen.
Anforderungs-IDs für Timeout-Aufrufe abrufen
Führe die folgenden Schritte aus:
- Öffne die Lambda-Konsole.
- Wähle im Navigationsbereich Functions (Funktionen) aus.
- Wähle die Lambda-Funktion und dann die Registerkarte Monitor (Überwachen) aus.
- Wähle View CloudWatch logs (CloudWatch-Protokolle anzeigen) aus, um die Seite Log group details (Protokollgruppendetails) der Funktion in der CloudWatch-Konsole zu öffnen.
- Wähle View in Logs Insights (In Logs Insights anzeigen) aus.
- Gib in das Abfragetextfeld Logs Insights die folgende Abfrage ein und wähle dann Run query (Abfrage ausführen) aus:
fields @timestamp, @requestId, @message, @logStream| filter @message like "Status: timeout" | sort @timestamp desc | limit 100
Die Antwort gibt eine Liste von Anforderungs-IDs in der Ausgabe Task timed out (Aufgaben-Timeout) für die Aufrufe zurück, bei denen das Zeitlimit überschritten wurde.
Weitere Informationen findest du unter Logdaten mit CloudWatch Logs Insights analysieren.
Hinweis: Füge bei großen Protokollgruppen der Logs Insights-Abfrage eine datetime-Funktion hinzu, um den Suchbereich einzuschränken. Weitere Informationen findest du unter CloudWatch Abfragesyntax in Logs Insights.
CloudWatch Logs Insights-Abfragen für die Anforderungs-IDs ausführen
Hinweis: Für CloudWatch Logs Insights-Abfragen fallen Gebühren basierend auf der von dir abgefragten Datenmenge an. Weitere Informationen findest du unter Amazon CloudWatch – Preise.
Verwende dann die Anforderungs-IDs der Timeout-Aufrufe, um die vollständigen Protokolle für jedes Aufruf-Timeout abzurufen. Du kannst eine Abfrage erstellen, um nach allen Protokollen für die spezifischen Anforderungs-IDs zu suchen. Weitere Informationen findest du unter Parsing von Protokollen und strukturierte Protokollierung.
Informationen zur Behebung von Timeout-Fehlern, die du identifizierst, findest du unter Wie behebe ich Timeout-Fehler beim Aufrufen von Lambda-Funktionen?
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor 2 Jahren
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor einem Jahr