View a markdown version of this page

Utilisation de filtres d'abonnement dans Amazon CloudWatch Logs - AWS SDK pour JavaScript

La AWS SDK pour JavaScript v2 a atteint la fin du support. Nous vous recommandons de migrer vers la AWS SDK pour JavaScript version 3. Pour plus de détails et d'informations sur la manière de migrer, veuillez consulter cette annonce.

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.

Utilisation de filtres d'abonnement dans Amazon CloudWatch Logs

JavaScript code example that applies to Node.js execution

Cet exemple Node.js de code montre :

  • Comment créer et supprimer des filtres pour les événements de journal dans CloudWatch Logs.

Scénario

Les abonnements permettent d'accéder à un flux en temps réel des événements de journal depuis CloudWatch Logs et de transmettre ce flux à d'autres services, tels qu'un flux Amazon Kinesis ou AWS Lambda, pour un traitement personnalisé, une analyse ou un chargement sur d'autres systèmes. Un filtre d'abonnement définit le modèle à utiliser pour filtrer les événements de journal qui sont transmis à votre AWS ressource.

Dans cet exemple, une série de Node.js modules est utilisée pour répertorier, créer et supprimer un filtre d'abonnement dans CloudWatch Logs. La destination des événements du journal est une fonction Lambda. Les Node.js modules utilisent le SDK pour gérer les filtres d'abonnement JavaScript à l'aide des méthodes suivantes de la classe CloudWatchLogs client :

Pour plus d'informations sur CloudWatch les abonnements aux journaux, consultez la section Real-time Traitement des données de journal avec les abonnements dans le guide de l'utilisateur Amazon CloudWatch Logs.

Tâches prérequises

Pour configurer et exécuter cet exemple, vous devez d'abord :

Utilisez la stratégie de rôle suivante lors de la création du rôle IAM.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:*" }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "*" ] } ] }

Description des filtres d'abonnements existants

Créez un Node.js module avec le nom de fichiercwl_describesubscriptionfilters.js. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder aux CloudWatch journaux, créez un objet AWS.CloudWatchLogs de service. Créez un objet JSON contenant les paramètres requis pour décrire vos filtres existants, y compris le nom du groupe de journaux et le nombre maximal de filtres à décrire. Appelez la méthode describeSubscriptionFilters.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the CloudWatchLogs service object var cwl = new AWS.CloudWatchLogs({ apiVersion: "2014-03-28" }); var params = { logGroupName: "GROUP_NAME", limit: 5, }; cwl.describeSubscriptionFilters(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.subscriptionFilters); } });

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node cwl_describesubscriptionfilters.js

Cet exemple de code se trouve ici sur GitHub.

Création d'un filtre d'abonnement

Créez un Node.js module avec le nom de fichiercwl_putsubscriptionfilter.js. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder aux CloudWatch journaux, créez un objet AWS.CloudWatchLogs de service. Créez un objet JSON contenant les paramètres nécessaires à la création d'un filtre, notamment l'ARN de la fonction Lambda de destination, le nom du filtre, le modèle de chaîne pour le filtrage et le nom du groupe de journaux. Appelez la méthode putSubscriptionFilters.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the CloudWatchLogs service object var cwl = new AWS.CloudWatchLogs({ apiVersion: "2014-03-28" }); var params = { destinationArn: "LAMBDA_FUNCTION_ARN", filterName: "FILTER_NAME", filterPattern: "ERROR", logGroupName: "LOG_GROUP", }; cwl.putSubscriptionFilter(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node cwl_putsubscriptionfilter.js

Cet exemple de code se trouve ici sur GitHub.

Suppression d'un filtre d'abonnement

Créez un Node.js module avec le nom de fichiercwl_deletesubscriptionfilters.js. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder aux CloudWatch journaux, créez un objet AWS.CloudWatchLogs de service. Créez un objet JSON contenant les paramètres requis pour supprimer un filtre, notamment les noms du filtre et du groupe de journaux. Appelez la méthode deleteSubscriptionFilters.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the CloudWatchLogs service object var cwl = new AWS.CloudWatchLogs({ apiVersion: "2014-03-28" }); var params = { filterName: "FILTER", logGroupName: "LOG_GROUP", }; cwl.deleteSubscriptionFilter(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node cwl_deletesubscriptionfilter.js

Cet exemple de code se trouve ici sur GitHub.