Utilisation des filtres d'abonnement dans Amazon CloudWatch Logs - AWS SDK for JavaScript

Nous avons annoncé la sortie end-of-support de la AWS SDK for JavaScript v2. Nous vous recommandons de migrer vers la AWS SDK for JavaScript version 3. Pour les dates, les détails supplémentaires et les informations sur la façon de migrer, reportez-vous à l'annonce associée.

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 des filtres d'abonnement dans Amazon CloudWatch Logs

JavaScript code example that applies to Node.js execution

Cet exemple de code Node.js présente :

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

Scénario

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

Dans cet exemple, une série de modules Node.js sont utilisés 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 modules Node.js 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 Traitement en temps réel 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.

{ "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 module Node.js nommé cwl_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 module Node.js nommé cwl_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 module Node.js nommé cwl_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.