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.
Konfiguration von CloudWatch Protokollgruppen
Erstellt standardmäßig CloudWatch automatisch eine Protokollgruppe, die nach Ihrer Funktion benannt ist, wenn sie /aws/lambda/<function name> zum ersten Mal aufgerufen wird. Um Ihre Funktion so zu konfigurieren, dass Protokolle an eine bestehende Protokollgruppe gesendet werden, oder um eine neue Protokollgruppe für Ihre Funktion zu erstellen, können Sie die Lambda-Konsole oder die AWS CLI verwenden. Sie können benutzerdefinierte Protokollgruppen auch mithilfe der UpdateFunctionConfiguration Lambda-API-Befehle CreateFunction und der Ressource AWS Serverless Application Model (AWS SAM) AWS: :Serverless: :Function konfigurieren.
Sie können mehrere Lambda-Funktionen so konfigurieren, dass Protokolle an dieselbe Protokollgruppe gesendet werden. CloudWatch Beispielsweise könnten Sie eine einzelne Protokollgruppe verwenden, um Protokolle für alle Lambda-Funktionen zu speichern, aus denen eine bestimmte Anwendung besteht. Wenn Sie eine benutzerdefinierte Protokollgruppe für eine Lambda-Funktion verwenden, enthalten die von Lambda erstellten Protokollstreams den Funktionsnamen und die Funktionsversion. Dadurch wird sichergestellt, dass die Zuordnung zwischen Protokollmeldungen und Funktionen erhalten bleibt, auch wenn Sie dieselbe Protokollgruppe für mehrere Funktionen verwenden.
Das Protokollstream-Benennungsformat für benutzerdefinierte Protokollgruppen folgt dieser Benennungskonvention:
YYYY/MM/DD/<function_name>[<function_version>][<execution_environment_GUID>]Beachten Sie, dass bei der Konfiguration einer benutzerdefinierten Protokollgruppe der Name, den Sie für Ihre Protokollgruppe auswählen, den Benennungsregeln für CloudWatch Protokolle entsprechen muss. Darüber hinaus dürfen benutzerdefinierte Protokollgruppennamen nicht mit der Zeichenfolge aws/ beginnen. Wenn Sie eine benutzerdefinierte Protokollgruppe erstellen, die mit aws/ beginnt, kann Lambda die Protokollgruppe nicht erstellen. Aus diesem Grund werden die Logs Ihrer Funktion nicht an gesendet CloudWatch.
So ändern Sie die Protokollgruppe einer Funktion (Konsole)
-
Öffnen Sie die Seite Funktionen
der Lambda-Konsole. -
Wählen Sie eine Funktion aus.
-
Wählen Sie auf der Konfigurationsseite der Funktion die Option Überwachungs- und Betriebstools aus.
-
Wählen Sie im Bereich Protokollierungskonfiguration die Option Bearbeiten aus.
-
Wählen Sie im Bereich „Protokollierungsgruppe“ für die CloudWatch Protokollgruppe die Option Benutzerdefiniert aus.
-
Geben Sie unter Benutzerdefinierte Protokollgruppe den Namen der CloudWatch Protokollgruppe ein, an die Ihre Funktion Protokolle senden soll. Wenn Sie den Namen einer vorhandenen Protokollgruppe eingeben, verwendet Ihre Funktion diese Gruppe. Wenn keine Protokollgruppe mit dem von Ihnen eingegebenen Namen existiert, erstellt Lambda eine neue Protokollgruppe für Ihre Funktion mit diesem Namen.
Um die Loggruppe einer Funktion zu ändern (AWS CLI)
-
Verwenden Sie den Befehl update-function-configuration
, um die Protokollgruppe einer vorhandenen Funktion zu ändern. aws lambda update-function-configuration \ --function-name myFunction \ --logging-config LogGroup=myLogGroup
Um eine benutzerdefinierte Protokollgruppe anzugeben, wenn Sie eine Funktion erstellen (AWS CLI)
-
Um eine benutzerdefinierte Protokollgruppe anzugeben, wenn Sie eine neue Lambda-Funktion mit der erstellen AWS CLI, verwenden Sie die
--logging-configOption. Mit dem folgenden Beispielbefehl wird eine Node.js Lambda-Funktion erstellt, die Protokolle an eine Protokollgruppe mit dem Namen sendet.myLogGroupaws lambda create-function \ --function-name myFunction \ --runtime nodejs24.x \ --handler index.handler \ --zip-file fileb://function.zip \ --role arn:aws:iam::123456789012:role/LambdaRole \ --logging-config LogGroup=myLogGroup
Berechtigungen für die Ausführungsrolle
Damit Ihre Funktion CloudWatch Protokolle an Logs senden kann, muss sie über die PutLogEvents Berechtigung logs: verfügen. Wenn Sie die Protokollgruppe Ihrer Funktion mithilfe der Lambda-Konsole konfigurieren, fügt Lambda der Rolle diese Berechtigung unter den folgenden Bedingungen hinzu:
-
Das Serviceziel ist auf Logs gesetzt CloudWatch
-
Die Ausführungsrolle Ihrer Funktion hat keine Berechtigungen zum Hochladen von Protokollen in CloudWatch Logs (das Standardziel)
Anmerkung
Lambda fügt keine Put-Berechtigungen für Amazon S3- oder Firehose-Protokollziele hinzu.
Wenn Lambda diese Berechtigung hinzufügt, erteilt es der Funktion die Erlaubnis, Protokolle an eine beliebige CloudWatch Logs-Protokollgruppe zu senden.
Um zu verhindern, dass Lambda die Ausführungsrolle der Funktion automatisch aktualisiert, damit Sie diese stattdessen manuell bearbeiten, erweitern Sie Berechtigungen und deaktivieren Sie Erforderliche Berechtigungen hinzufügen.
Wenn Sie die Protokollgruppe Ihrer Funktion mithilfe von konfigurieren AWS CLI, fügt Lambda die Berechtigung nicht automatisch hinzu. logs:PutLogEvents Fügen Sie die Berechtigung zur Ausführungsrolle Ihrer Funktion hinzu, falls noch nicht geschehen. Diese Berechtigung ist in der AWSLambdaBasicExecutionRole
CloudWatch Protokollierung für von Lambda verwaltete Instances
Bei der Verwendung von Lambda Managed Instances gibt es zusätzliche Überlegungen zum Senden von Protokollen an CloudWatch Logs:
VPC-Netzwerkanforderungen
Lambda Managed Instances werden auf kundeneigenen EC2-Instances innerhalb Ihrer VPC ausgeführt. Um Protokolle an Logs and Traces an zu senden, müssen Sie sicherstellen X-Ray, dass diese AWS APIs von Ihrer VPC aus routbar sind. CloudWatch Sie haben mehrere Möglichkeiten:
-
AWS PrivateLink (empfohlen): Wird verwendet AWS PrivateLink, um VPC-Endpunkte für CloudWatch Protokolle und Dienste zu erstellen. X-Ray Dadurch können Ihre Instances privat auf diese Dienste zugreifen, ohne dass ein Internet-Gateway oder NAT-Gateway erforderlich ist. Weitere Informationen finden Sie unter Verwenden von CloudWatch Protokollen mit Schnittstellen-VPC-Endpunkten.
-
NAT-Gateway: Konfigurieren Sie ein NAT-Gateway, um den ausgehenden Internetzugang von Ihren privaten Subnetzen aus zu ermöglichen.
-
Internet Gateway: Stellen Sie für öffentliche Subnetze sicher, dass für Ihre VPC ein Internet-Gateway konfiguriert ist.
Wenn CloudWatch Logs oder X-Ray APIs nicht von Ihrer VPC aus routbar sind, werden Ihre Funktionsprotokolle und Traces nicht übermittelt.
Gleichzeitige Aufrufe und Protokollzuweisung
In den Ausführungsumgebungen von Lambda Managed Instances können mehrere Aufrufe gleichzeitig verarbeitet werden. Wenn mehrere Aufrufe gleichzeitig ausgeführt werden, werden ihre Protokolleinträge im selben Protokollstream verschachtelt. Um Protokolle aus gleichzeitigen Aufrufen effektiv zu filtern und zu analysieren, sollten Sie sicherstellen, dass jeder Protokolleintrag die Anforderungs-ID enthält. AWS
Wir empfehlen eine der folgenden Methoden:
-
Verwenden Sie standardmäßige Lambda-Laufzeitlogger (empfohlen): Die von Lambda Managed Runtimes bereitgestellten Standard-Logging-Bibliotheken enthalten automatisch die Anforderungs-ID in jedem Logeintrag.
-
Implementieren Sie eine strukturierte JSON-Protokollierung: Wenn Sie eine benutzerdefinierte Laufzeit erstellen oder eine benutzerdefinierte Protokollierung benötigen, implementieren Sie JSON-formatted Protokolle, die die Anforderungs-ID in jedem Eintrag enthalten. Lambda Managed Instances unterstützen nur das JSON-Protokollformat. Nehmen Sie das
requestIdFeld in Ihre JSON-Protokolle auf, um die Filterung per Aufruf zu ermöglichen:{ "timestamp": "2025-01-15T10:30:00.000Z", "level": "INFO", "requestId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "message": "Processing request" }
Mit der Anforderungs-ID-Attribution können Sie CloudWatch Logs-Logeinträge für einen bestimmten Aufruf mithilfe von CloudWatch Logs Insights-Abfragen filtern. Beispiel:
fields @timestamp, @message | filter requestId = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" | sort @timestamp asc
Weitere Informationen zu den Protokollierungsanforderungen für Lambda Managed Instances finden Sie unter. Grundlegendes zur Lambda Managed Instance-Ausführungsumgebung