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.
Filtrage au niveau du journal
Lambda peut filtrer les journaux de votre fonction afin que seuls les journaux d'un certain niveau de détail ou inférieur soient envoyés à CloudWatch Logs. Vous pouvez configurer le filtrage au niveau des journaux séparément pour les journaux système de votre fonction (les journaux générés par Lambda) et les journaux des applications (les journaux générés par le code de votre fonction).
Pour Temps d’exécution et méthodes de journalisation pris en charge, vous n’avez pas besoin d’apporter de modifications au code de votre fonction pour que Lambda filtre les journaux d’application de votre fonction.
Pour tous les autres environnements d’exécution et méthodes de journalisation, le code de votre fonction doit générer les événements de journal vers stdout
ou stderr
sous forme d’objets au format JSON contenant une paire clé-valeur avec la clé "level"
. Par exemple, Lambda interprète la sortie suivante vers stdout
comme un journal de niveau DEBUG.
print('{"level": "debug", "msg": "my debug log", "timestamp": "2024-11-02T16:51:31.587199Z"}')
Si le champ de valeur "level"
n’est pas valide ou est manquant, Lambda attribuera à la sortie du journal le niveau INFO. Pour que Lambda utilise le champ d'horodatage, vous devez spécifier le temps dans un format d'horodatage RFC 3339
Lorsque vous nommez la clé d’horodatage, suivez les conventions du moteur d’exécution que vous utilisez. Lambda prend en charge les conventions de dénomination les plus courantes utilisées par les environnements d'exécution gérés.
Note
Pour utiliser le filtrage au niveau du journal, votre fonction doit être configurée pour utiliser le format de journal JSON. Le format de journal par défaut pour tous les environnements d’exécution Lambda est actuellement le texte brut. Pour savoir comment configurer le format de journal de votre fonction sur JSON, consultez Configuration du format du journal de votre fonction.
Pour les journaux d’applications (les journaux générés par votre code de fonction), vous pouvez choisir entre les niveaux de journalisation suivants.
Niveau de journalisation | Utilisation standard |
---|---|
TRACE (le plus détaillé) | Les informations les plus précises utilisées pour tracer le chemin d’exécution de votre code |
DEBUG | Informations détaillées pour le débogage du système |
INFO | Messages qui enregistrent le fonctionnement normal de votre fonction |
WARN | Messages relatifs à des erreurs potentielles susceptibles d’entraîner un comportement inattendu si elles ne sont pas traitées |
ERROR | Messages concernant les problèmes qui empêchent le code de fonctionner comme prévu |
FATAL (moindre détail) | Messages relatifs à des erreurs graves entraînant l’arrêt du fonctionnement de l’application |
Lorsque vous sélectionnez un niveau de journal, Lambda envoie les journaux à ce niveau et aux niveaux inférieurs à CloudWatch Logs. Par exemple, si vous définissez le niveau de journal d’application d’une fonction sur WARN, Lambda n’envoie pas de sorties de journal aux niveaux INFO et DEBUG. Le niveau de journal d’application par défaut pour le filtrage des journaux est INFO.
Lorsque Lambda filtre les journaux d’application de votre fonction, les messages de journal sans niveau se voient attribuer le niveau de journal INFO.
Pour les journaux système (les journaux générés par le service Lambda), vous pouvez choisir entre les niveaux de journalisation suivants.
Niveau de journalisation | Utilisation |
---|---|
DEBUG (le plus détaillé) | Informations détaillées pour le débogage du système |
INFO | Messages qui enregistrent le fonctionnement normal de votre fonction |
WARN (moindre détail) | Messages relatifs à des erreurs potentielles susceptibles d’entraîner un comportement inattendu si elles ne sont pas traitées |
Lorsque vous sélectionnez un niveau de journal, Lambda envoie des journaux à ce niveau ou à un niveau inférieur. Par exemple, si vous définissez le niveau de journal système d’une fonction sur INFO, Lambda n’envoie pas de sorties de journal au niveau DEBUG.
Par défaut, Lambda définit le niveau de journalisation du système sur INFO. Avec ce paramètre, Lambda envoie "start"
et "report"
enregistre automatiquement des messages à. CloudWatch Pour recevoir des journaux système plus ou moins détaillés, définissez le niveau de journal sur DEBUG ou WARN. Pour consulter la liste des niveaux de journalisation auxquels Lambda mappe les différents événements du journal système, consultez. Mappage des événements au niveau du journal système
Configuration du filtrage au niveau du journal
Pour configurer le filtrage au niveau du journal des applications et du système pour votre fonction, vous pouvez utiliser la console Lambda ou le (). AWS Command Line Interface AWS CLI Vous pouvez également configurer le niveau de journalisation d'une fonction à l'aide des commandes CreateFunctionet de l'API UpdateFunctionConfigurationLambda, de la AWS::Serverless::Functionressource AWS Serverless Application Model (AWS SAM) et de la AWS CloudFormation AWS::Lambda::Functionressource.
Notez que si vous définissez le niveau de journalisation de votre fonction dans votre code, ce paramètre a priorité sur tous les autres paramètres de journalisation que vous configurez. Par exemple, si vous utilisez la méthode Python logging
setLevel()
pour définir le niveau de journalisation de votre fonction sur INFO, ce paramètre a priorité sur le paramètre WARN que vous configurez à l'aide de la console Lambda.
Pour configurer le niveau de journal de l’application ou du système d’une fonction existante (console)
Ouvrez la page Functions
(Fonctions) de la console Lambda. -
Choisissez une fonction.
-
Dans la page de configuration de la fonction, choisissez Outils de surveillance et d’exploitation.
-
Dans le volet de configuration de la journalisation, choisissez Modifier.
-
Sous Contenu du journal, pour le format du journal, assurez-vous que JSON est sélectionné.
-
À l’aide des boutons d’option, sélectionnez le niveau de journal des applications et le niveau de journal du système souhaités pour votre fonction.
-
Choisissez Enregistrer.
Pour configurer le niveau de journal de l’application ou du système d’une fonction existante (AWS CLI)
-
Pour modifier le niveau du journal de l’application ou du système d’une fonction existante, utilisez la commande update-function-configuration
. Utilisez --logging-config
pour définirSystemLogLevel
sur l’une des valeurs suivantes :DEBUG
,INFO
ouWARN
. DéfiniApplicationLogLevel
sur l’une des valeursDEBUG
,INFO
,WARN
,ERROR
ouFATAL
.aws lambda update-function-configuration \ --function-name myFunction \ --logging-config LogFormat=JSON,ApplicationLogLevel=ERROR,SystemLogLevel=WARN
Pour configurer le filtrage au niveau du journal lorsque vous créez une fonction
-
Pour configurer le filtrage au niveau du journal lorsque vous créez une fonction, utilisez l’option
--logging-config
pour définir les clésSystemLogLevel
etApplicationLogLevel
de la commande create-function. A défini SystemLogLevel
sur l’une des valeursDEBUG
,INFO
ouWARN
. DéfiniApplicationLogLevel
sur l’une des valeursDEBUG
,INFO
,WARN
,ERROR
ouFATAL
.aws lambda create-function \ --function-name myFunction \ --runtime nodejs22.x \ --handler index.handler \ --zip-file fileb://function.zip \ --role arn:aws:iam::123456789012:role/LambdaRole \ --logging-config LogFormat=JSON,ApplicationLogLevel=ERROR,SystemLogLevel=WARN
Mappage des événements au niveau du journal système
Pour les événements de journal au niveau du système générés par Lambda, le tableau suivant définit le niveau de journal attribué à chaque événement. Pour plus d’informations sur les événements répertoriés dans le tableau, consultez Référence du schéma Event de l’API de télémétrie Lambda
Nom de l’événement | Condition | Niveau de journalisation attribué |
---|---|---|
initStart | runtimeVersion est définie | INFO |
initStart | runtimeVersion est définie | DEBUG |
initRuntimeDone | status=success | DEBUG |
initRuntimeDone | status!=success | WARN |
initReport | initializationType!=on-demand | INFO |
initReport | initializationType=on-demand | DEBUG |
initReport | status!=success | WARN |
restoreStart | runtimeVersion est définie | INFO |
restoreStart | runtimeVersion n’est pas définie | DEBUG |
restoreRuntimeDone | status=success | DEBUG |
restoreRuntimeDone | status!=success | WARN |
restoreReport | status=success | INFO |
restoreReport | status!=success | WARN |
démarrer | - | INFO |
runtimeDone | status=success | DEBUG |
runtimeDone | status!=success | WARN |
report | status=success | INFO |
report | status!=success | WARN |
Extension | status=success | INFO |
Extension | status=success | WARN |
LogSubscription | - | INFO |
telemetrySubscription | - | INFO |
logsDropped | - | WARN |
Note
L’API Accès aux données de télémétrie en temps réel pour les extensions à l’aide de l’API de télémétrie toujours l’ensemble complet des événements de la plateforme. La configuration du niveau des journaux système auxquels Lambda envoie des messages CloudWatch n'affecte pas le comportement de l'API de télémétrie Lambda.
Filtrage au niveau du journal des applications avec des environnements d’exécution personnalisés
Lorsque vous configurez le filtrage au niveau du journal des applications pour votre fonction, Lambda définit en arrière-plan le niveau du journal des applications au moment de l’exécution à l’aide de la variable d’environnement AWS_LAMBDA_LOG_LEVEL
. Lambda définit également le format du journal de votre fonction à l’aide de la variable d’environnement AWS_LAMBDA_LOG_FORMAT
. Vous pouvez utiliser ces variables pour intégrer les commandes de journalisation avancées de Lambda dans un environnement d’exécution personnalisé.
Pour pouvoir configurer les paramètres de journalisation d'une fonction à l'aide d'un environnement d'exécution personnalisé avec la console Lambda et Lambda AWS CLI APIs, configurez votre environnement d'exécution personnalisé pour vérifier la valeur de ces variables d'environnement. Vous pouvez ensuite configurer les enregistreurs de votre environnement d’exécution conformément au format de journal et aux niveaux de journal que vous avez sélectionnés.