Protokollierung der Zuordnung von Kafka-Ereignisquellen - 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.

Protokollierung der Zuordnung von Kafka-Ereignisquellen

Sie können die Protokollierung auf Systemebene für Ihre Kafka-Ereignisquellenzuordnungen konfigurieren, um die Systemprotokolle zu aktivieren und zu filtern, an die Lambda-Ereignisabfragen senden. CloudWatch

Diese Funktion ist nur für Kafka-Ereignisquellenzuordnungen und im Bereitstellungsmodus verfügbar.

Für die Zuordnung von Ereignisquellen mit Protokollierungskonfiguration können Sie jetzt auch die Systemprotokolle aus vorgefertigten Protokollabfragen auf der Registerkarte Monitor auf der Seite Konsole Lambda > Zusätzliche Ressourcen > Ereignisquellenzuordnungen überprüfen.

Wie funktioniert die Protokollierung

Wenn Sie die Protokollierungskonfiguration mit Protokollebene in Ihrer Ereignisquellenzuordnung festlegen, sendet der Lambda-Ereignisabfrage entsprechende Protokolle (Systemprotokolle für die Ereignisquellenzuweisung).

Die Zuordnung der Ereignisquelle verwendet dasselbe Protokollziel wie Ihre Lambda-Funktion erneut. Stellen Sie sicher, dass die Ausführungsrolle Ihrer Lambda-Funktion über die erforderlichen Protokollierungsberechtigungen verfügt.

Die Zuordnung der Ereignisquelle wird über einen eigenen Protokollstream verfügen, mit Datum und UUID für die Zuordnung der Ereignisquelle als Protokollstreamname, z. B. 2020/01/01/12345678-1234-1234-1234-12345678901

Für Systemprotokolle zur Zuordnung von Ereignisquellen können Sie zwischen den folgenden Protokollebenen wählen.

Protokollebene Usage
DEBUG (am detailliertesten) Detaillierte Informationen zum Fortschritt der Verarbeitung der Ereignisquelle
INFO Meldungen über den normalen Betrieb Ihrer Ereignisquellenzuordnung
WARN (am wenigsten Details) Meldungen über mögliche Warnungen und Fehler, die zu unerwartetem Verhalten führen können

Wenn Sie eine Protokollebene auswählen, sendet der Lambda-Ereignisabfrage Protokolle auf dieser Ebene und niedriger. Wenn Sie beispielsweise die Systemprotokollebene für die Zuordnung von Ereignisquellen auf INFO setzen, sendet der Event-Poller keine Protokollausgaben auf der DEBUG-Ebene.

Konfigurieren der Protokollierung

Sie können die Protokollierungskonfiguration festlegen, wenn Sie eine Kafka-Ereignisquellenzuordnung erstellen oder aktualisieren.

Konfiguration der Protokollierung (Konsole)

Um die Protokollierung zu konfigurieren (Konsole)
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie den Namen Ihrer Funktion.

  3. Führen Sie eine der folgenden Aktionen aus:

    • Um einen neuen Kafka-Trigger hinzuzufügen, wählen Sie unter Funktionsübersicht die Option Trigger hinzufügen aus.

    • Um einen vorhandenen Kafka-Trigger zu ändern, wählen Sie den Auslöser aus und klicken Sie dann auf Bearbeiten.

  4. Aktivieren Sie unter Konfiguration des Event-Pollers für den Bereitstellungsmodus das Kontrollkästchen Konfigurieren. Und die Einstellung für die Protokollebene würde angezeigt.

  5. Klicken Sie auf die Dropdownliste Protokollebene und wählen Sie eine Ebene für die Zuordnung der Ereignisquellen aus.

  6. Wählen Sie unten Hinzufügen oder Speichern, um die Zuordnung der Ereignisquellen zu erstellen oder zu aktualisieren.

Protokollierung konfigurieren (AWS CLI)

Erstellen einer Ereignisquellenzuordnung mit Protokollierung

Das folgende Beispiel erstellt eine Amazon MSK-Ereignisquellenzuordnung mit Protokollierungskonfiguration:

aws lambda create-event-source-mapping \ --function-name my-kafka-function \ --topics AWSKafkaTopic \ --event-source-arn arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster/abc123 \ --starting-position LATEST \ --provisioned-poller-config MinimumPollers=1,MaximumPollers=3 \ --logging-config '{"SystemLogLevel":"DEBUG"}'

Verwenden Sie für selbstverwaltetes Kafka dieselbe Syntax:

aws lambda create-event-source-mapping \ --function-name my-kafka-function \ --topics AWSKafkaTopic \ --self-managed-event-source '{"Endpoints":{"KAFKA_BOOTSTRAP_SERVERS":["abc.xyz.com:9092"]}}' \ --starting-position LATEST \ --provisioned-poller-config MinimumPollers=1,MaximumPollers=3 \ --logging-config '{"SystemLogLevel":"DEBUG"}'

Die Logging-Konfiguration wird aktualisiert

Verwenden Sie den update-event-source-mapping Befehl, um die Protokollierungskonfiguration hinzuzufügen oder zu ändern:

aws lambda update-event-source-mapping \ --uuid 12345678-1234-1234-1234-123456789012 \ --logging-config '{"SystemLogLevel":"WARN"}'

Aufzeichnungsformat für ein Systemprotokoll zur Zuordnung von Kafka-Ereignisquellen

Wenn der Lambda-Ereignisabfrage das Protokoll sendet, enthält jeder Protokolleintrag allgemeine Metadaten zur Zuordnung von Ereignisquellen sowie ereignisspezifische Inhalte.

WARN-Protokolldatensatz

Der WARN-Datensatz enthält Fehler oder Warnungen vom Event-Poller und wird ausgegeben, als das Ereignis eingetreten ist. Beispiel:

{ "eventType": "ESM_PROCESSING_EVENT", "timestamp": 1546347650000, "resourceArn": "arn:aws:lambda:us-east-1:123456789012:event-source-mapping:12345678-1234-1234-1234-123456789012", "eventSourceArn": "arn:aws:kafka:us-east-1:123456789012:cluster/tests-cluster/87654321-4321-4321-4321-876543221-s1", "eventProcessorId": "12345678-1234-1234-1234-123456789012/0", "logLevel": "WARN", "error": { "errorMessage": "Timeout expired while fetching topic metadata", "errorCode": "org.apache.kafka.common.errors.TimeoutException" } }

INFO-Protokolleintrag

Der INFO-Datensatz enthält Kafka-Consumer-Client-Konfigurationen in jedem Event-Poller und wird ausgegeben, wenn ein Consumer erstellt oder geändert wird. Beispiel:

{ "eventType": "POLLER_STATUS_EVENT", "timestamp": 1546347660000, "resourceArn": "arn:aws:lambda:us-east-1:123456789012:event-source-mapping:12345678-1234-1234-1234-123456789012", "eventSourceArn": "arn:aws:kafka:us-east-1:123456789012:cluster/tests-cluster/87654321-4321-4321-4321-876543221-s1", "eventProcessorId": "12345678-1234-1234-1234-123456789012/0", "logLevel": "INFO", "kafkaEventSourceConnection": { "brokerEndpoints": "boot-abcd1234.c2.kafka-serverless.us-east-1.amazonaws.com:9098", "consumerId": "12345678-1234-1234-1234-123456789012-0", "topics": [ "test" ], "consumerGroupId": "12345678-1234-1234-1234-123456789012", "securityProtocol": "SASL_SSL", "saslMechanism": "AWS_MSK_IAM", "totalPartitionCount": 2, "assignedPartitionCount": 2, "partitionsAssignmentGeneration": 5, "assignedPartitions": [ "test-0", "test-1" ], "networkConfig": { "ipAddresses": [ "10.100.141.1" ], "subnetCidrBlock": "10.100.128.0/20", "securityGroups": [ "sg-abcdefabcdefabcdef" ] } } }

DEBUG-Protokolleintrag

Das DEBUG-Protokoll enthält die Informationen zu den Kafka-Offsets bei der Verarbeitung der Ereignisquellenzuordnung, und die Offsetinformationen werden pro Minute ausgegeben. Beispiel:

{ "eventType": "KAFKA_STATUS_EVENT", "timestamp": 1546347670000, "resourceArn": "arn:aws:lambda:us-east-1:123456789012:event-source-mapping:12345678-1234-1234-1234-123456789012", "eventSourceArn": "arn:aws:kafka:us-east-1:123456789012:cluster/tests-cluster/87654321-4321-4321-4321-876543221-s1", "eventProcessorId": "12345678-1234-1234-1234-123456789012/0", "logLevel": "DEBUG", "kafkaPartitionOffsets": { "partition": "test-1", "endOffset": 5004, "consumedOffset": 5003, "processedOffset": 5003, "committedOffset": 5004 } }