Arbeiten mit Lambda-Funktionsprotokollen - AWS Lambda

Arbeiten mit Lambda-Funktionsprotokollen

Um Ihnen bei der Fehlerbehebung zu helfen, überwacht AWS Lambda automatisch Lambda-Funktionen für Sie. Sie können Protokolle für Lambda-Funktionen über die Lambda-Konsole, die CloudWatch-Konsole, die AWS Command Line Interface (AWS CLI) und die CloudWatch-API anzeigen. Sie können Lambda auch so konfigurieren, dass Protokolle an Amazon S3 und Firehose gesendet werden.

Solange die Ausführungsrolle Ihrer Funktion über die erforderlichen Berechtigungen verfügt, erfasst Lambda Protokolle für alle von Ihrer Funktion bearbeiteten Anfragen und sendet sie an Amazon CloudWatch Logs, das Standardziel. Sie können die Lambda-Konsole auch verwenden, um Amazon S3 oder Firehose als Protokollierungsziele zu konfigurieren.

  • CloudWatch Logs ist das Standardprotokollierungsziel für Lambda-Funktionen. CloudWatch Logs bietet Funktionen zur Anzeige und Analyse von Protokollen in Echtzeit und unterstützt die Erstellung von Metriken und Alarmen auf der Grundlage Ihrer Protokolldaten.

  • Amazon S3 ist wirtschaftlich für die langfristige Speicherung, und Services wie Athena können zur Analyse von Protokollen verwendet werden. Die Latenz ist in der Regel höher.

  • Firehose bietet verwaltetes Streaming von Protokollen an verschiedene Ziele. Wenn Sie Protokolle an andere AWS-Services (z. B. OpenSearch Service oder Redshift Data API) oder Plattformen von Drittanbietern (wie Datadog, New Relic oder Splunk) senden müssen, vereinfacht Firehose diesen Prozess durch vorgefertigte Integrationen. Sie können auch an benutzerdefinierte HTTP-Endpunkte streamen, ohne zusätzliche Infrastruktur einrichten zu müssen.

Auswahl eines Serviceziels für das Senden von Protokollen

Berücksichtigen Sie bei der Auswahl eines Serviceziels für Funktionsprotokolle die folgenden wichtigen Faktoren:

  • Das Kostenmanagement ist je nach Service unterschiedlich. Amazon S3 bietet in der Regel die wirtschaftlichste Option für die langfristige Speicherung, während CloudWatch Logs Ihnen die Möglichkeit bietet, Protokolle anzuzeigen, zu verarbeiten und Warnmeldungen in Echtzeit einzurichten. Die Kosten für Firehose umfassen sowohl den Streamingservice als auch die Kosten für die von Ihnen konfigurierten Streamingziele.

  • Die Analysefunktionen unterscheiden sich je nach Service. CloudWatch Logs eignet sich hervorragend für die Echtzeitüberwachung und lässt sich nativ in andere CloudWatch-Funktionen wie Logs Insights und Live Tail integrieren. Amazon S3 funktioniert gut mit Analysetools wie Athena und kann in verschiedene Services integriert werden, erfordert jedoch möglicherweise zusätzliche Einstellungen. Firehose vereinfacht das direkte Streaming zu bestimmten AWS-Services (wie OpenSearch Service und Redshift Data API) und unterstützten Plattformen von Drittanbietern (wie Datadog und Splunk), indem es vorgefertigte Integrationen bereitstellt, wodurch sich der Konfigurationsaufwand potenziell verringert.

  • Einrichtung und Benutzerfreundlichkeit variieren je nach Service. CloudWatch Logs ist das Standardziel für Protokolle – es funktioniert sofort ohne zusätzliche Konfiguration und bietet eine einfache Protokollanzeige und -analyse über die CloudWatch-Konsole. Wenn Sie Protokolle an Amazon S3 senden möchten, müssen Sie zunächst einige Einstellungen in der Lambda-Konsole vornehmen und Bucket-Berechtigungen konfigurieren. Wenn Sie Protokolle direkt an Services wie OpenSearch Service oder Analytikplattformen von Drittanbietern senden möchten, kann Firehose diesen Prozess vereinfachen.

Konfigurieren von Protokollzielen

AWS Lambda unterstützt mehrere Ziele für Ihre Funktionsprotokolle. In diesem Leitfaden werden die verfügbaren Protokollziele erläutert und Ihnen bei der Auswahl der für Ihre Anforderungen geeigneten Option geholfen. Unabhängig vom gewählten Ziel bietet Lambda Optionen zur Steuerung des Protokollformats, der Filterung und der Zustellung.

Lambda unterstützt sowohl JSON- als auch Klartextformate für die Protokolle Ihrer Funktion. Strukturierte JSON-Protokolle bieten eine verbesserte Suchbarkeit und ermöglichen eine automatisierte Analyse, während Klartextprotokolle einfach zu handhaben sind und potenziell geringere Speicherkosten verursachen. Sie können steuern, welche Protokolle Lambda an das von Ihnen gewählte Ziel sendet, indem Sie Protokollebenen für System- und Anwendungsprotokolle konfigurieren. Die Filterung hilft Ihnen, die Speicherkosten zu verwalten, und erleichtert das Auffinden relevanter Protokolleinträge beim Debuggen.

Ausführliche Anweisungen zur Einrichtung für jedes Ziel finden Sie in den folgenden Abschnitten:

Konfigurieren erweiterter Protokollierungsoptionen für Lambda-Funktionen

Um Ihnen mehr Kontrolle über die Erfassung, Verarbeitung und Nutzung Ihrer Funktionsprotokolle zu geben, bietet Lambda die folgenden Optionen zur Protokollierungskonfiguration:

  • Protokollformat – Wählen Sie zwischen Klartext und einem strukturierten JSON-Format für die Protokolle Ihrer Funktion aus.

  • Protokollebene – Wählen Sie für strukturierte JSON-Protokolle die Detailebene der Protokolle aus, die Lambda an CloudWatch sendet, wie FATAL, ERROR, WARN, INFO, DEBUG und TRACE.

  • Protokollgruppe – Wählen Sie die CloudWatch-Protokollgruppe aus, an die Ihre Funktion Protokolle sendet.

Weitere Informationen zur Konfiguration erweiterter Protokollierungssteuerungen finden Sie in den folgenden Abschnitten: