Journalisation du mappage des sources d'événements Kafka - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Journalisation du mappage des sources d'événements Kafka

Vous pouvez configurer la journalisation au niveau du système pour vos mappages de sources d'événements Kafka afin d'activer et de filtrer les journaux système auxquels les sondeurs d'événements Lambda envoient des informations. CloudWatch

Cette fonctionnalité n'est disponible que pour les mappages de sources d'événements Kafka et en mode provisionné.

Pour le mappage des sources d'événements avec la configuration de journalisation, vous pouvez également consulter les journaux du système à partir de requêtes de journal prédéfinies dans l'onglet Monitor de la page Console Lambda > Ressources supplémentaires > mappages de sources d'événements actuels.

Comment fonctionne la journalisation

Lorsque vous définissez la configuration de journalisation avec le niveau de journalisation dans le mappage de votre source d'événements, le sondeur d'événements Lambda envoie les journaux correspondants (journaux du système de mappage des sources d'événements).

Le mappage de la source d'événements réutilise la même destination de journal avec votre fonction Lambda. Assurez-vous que le rôle d'exécution de votre fonction Lambda dispose des autorisations de journalisation nécessaires.

Le mappage de la source d'événements aura son propre flux de journal, avec l'UUID du mappage de la date et de la source de l'événement comme nom du flux de journal, par exemple. 2020/01/01/12345678-1234-1234-1234-12345678901

Pour les journaux du système de mappage des sources d'événements, vous pouvez choisir entre les niveaux de journal suivants.

Niveau de journalisation Usage
DEBUG (le plus détaillé) Informations détaillées sur la progression du traitement des sources d'événements
INFO Messages concernant le fonctionnement normal du mappage de la source de votre événement
WARN (moindre détail) Messages concernant les avertissements et les erreurs potentiels susceptibles d'entraîner un comportement inattendu

Lorsque vous sélectionnez un niveau de journal, Lambda Event Poller envoie des journaux à ce niveau ou à un niveau inférieur. Par exemple, si vous définissez le niveau de journal du système de mappage de la source d'événements sur INFO, Event Poller n'envoie pas de sorties de journal au niveau DEBUG.

Configuration de la journalisation

Vous pouvez définir la configuration de journalisation lors de la création ou de la mise à jour d'un mappage de source d'événements Kafka.

Configuration de la journalisation (console)

Pour configurer la journalisation (console)
  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Choisissez le nom de votre fonction.

  3. Effectuez l’une des actions suivantes :

    • Pour ajouter un nouveau déclencheur Kafka, sous Vue d'ensemble des fonctions, choisissez Ajouter un déclencheur.

    • Pour modifier un déclencheur Kafka existant, choisissez-le, puis choisissez Modifier.

  4. Sous Configuration du sondeur d'événements, pour le mode provisionné, cochez la case Configurer. Et le paramètre du niveau de journalisation apparaîtrait.

  5. Cliquez sur la liste déroulante des niveaux de journalisation et sélectionnez un niveau pour le mappage des sources d'événements.

  6. Choisissez Ajouter ou Enregistrer en bas pour créer ou mettre à jour le mappage des sources d'événements.

Configuration de la journalisation (AWS CLI)

Création d'un mappage des sources d'événements avec journalisation

L'exemple suivant crée un mappage de source d'événement Amazon MSK avec une configuration de journalisation :

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"}'

Pour Kafka autogéré, utilisez la même syntaxe :

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"}'

Mettre à jour la configuration d'enregistrement

Utilisez la update-event-source-mapping commande pour ajouter ou modifier la configuration de journalisation :

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

Format d'enregistrement pour un journal du système de mappage des sources d'événements Kafka

Lorsque Lambda Event Poller envoie le journal, chaque entrée de journal contient des métadonnées générales de mappage des sources d'événements ainsi que du contenu spécifique à l'événement.

Enregistrement du journal WARN

L'enregistrement WARN contient des erreurs ou des avertissements provenant de l'analyseur d'événements, et il est émis lorsque l'événement s'est produit. Par exemple :

{ "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" } }

Enregistrement du journal INFO

L'enregistrement INFO contient les configurations des clients clients Kafka dans chaque sondeur d'événements, et il est émis lors de la création ou de la modification d'un consommateur. Par exemple :

{ "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" ] } } }

Enregistrement du journal DEBUG

Le journal DEBUG contient les informations relatives aux décalages de Kafka lors du traitement du mappage des sources d'événements, et les informations de décalage sont émises par minute. Par exemple :

{ "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 } }