Utilizzo dei filtri di abbonamento in Amazon CloudWatch Logs - AWS SDK for JavaScript

Abbiamo annunciato l'imminente uscita end-of-support per la AWS SDK for JavaScript v2. Ti consigliamo di migrare alla AWS SDK for JavaScript v3. Per date, dettagli aggiuntivi e informazioni su come effettuare la migrazione, consulta l'annuncio collegato.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo dei filtri di abbonamento in Amazon CloudWatch Logs

JavaScript code example that applies to Node.js execution

Questo esempio di codice di Node.js illustra:

  • Come creare ed eliminare filtri per gli eventi di registro in CloudWatch Logs.

Lo scenario

Gli abbonamenti forniscono l'accesso a un feed in tempo reale di eventi di log da CloudWatch Logs e lo distribuiscono ad altri servizi, come uno stream Amazon Kinesis AWS Lambda o, per l'elaborazione, l'analisi o il caricamento personalizzati su altri sistemi. Un filtro di sottoscrizione definisce lo schema da utilizzare per filtrare gli eventi di registro inviati alla risorsa. AWS

In questo esempio, una serie di moduli Node.js vengono utilizzati per elencare, creare ed eliminare un filtro di sottoscrizione in CloudWatch Logs. La destinazione per gli eventi di registro è una funzione Lambda. I moduli Node.js utilizzano l'SDK per JavaScript gestire i filtri di sottoscrizione utilizzando questi metodi della classe CloudWatchLogs client:

Per ulteriori informazioni sugli abbonamenti CloudWatch Logs, consulta Elaborazione in tempo reale dei dati di log con abbonamenti nella Amazon CloudWatch Logs User Guide.

Attività prerequisite

Per configurare ed eseguire questo esempio, è necessario completare queste attività:

  • Installa Node.js. Per ulteriori informazioni sull'installazione di Node.js, consulta il sito Web Node.js.

  • Creazione di un file di configurazione condiviso con le credenziali utente. Per ulteriori informazioni sulla fornitura di un file delle credenziali condiviso, consulta Caricamento delle credenziali su Node.js dal file delle credenziali condiviso.

  • Crea una funzione Lambda come destinazione per gli eventi di registro. È necessario utilizzare l'ARN di questa funzione. Per ulteriori informazioni sulla configurazione di una funzione Lambda, consulta Subscription Filters with AWS Lambda nella Amazon CloudWatch Logs User Guide.

  • Crea un ruolo IAM la cui policy conceda l'autorizzazione a richiamare la funzione Lambda che hai creato e conceda l'accesso completo ai CloudWatch log o applica la seguente policy al ruolo di esecuzione che crei per la funzione Lambda. Per ulteriori informazioni sulla creazione di un ruolo IAM, consulta Creating a Role to Delegate Permissions to an Service nella IAM User Guide. AWS

Utilizzare la seguente policy di ruolo quando si crea un ruolo 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": [ "*" ] } ] }

Descrivere i filtri di sottoscrizione esistenti

Crea un modulo Node.js con il nome del file cwl_describesubscriptionfilters.js. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere ai CloudWatch log, crea un AWS.CloudWatchLogs oggetto di servizio. Crea un oggetto JSON che contiene i parametri necessari per descrivere i filtri esistenti, tra cui il nome del gruppo di log e il numero massimo di filtri che desideri vengano descritti. Chiama il metodo 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); } });

Digita la seguente riga di comando per eseguire l'esempio.

node cwl_describesubscriptionfilters.js

Questo codice di esempio può essere trovato qui. GitHub

Creazione di un filtro di sottoscrizione

Crea un modulo Node.js con il nome del file cwl_putsubscriptionfilter.js. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere ai CloudWatch registri, crea un oggetto AWS.CloudWatchLogs di servizio. Crea un oggetto JSON contenente i parametri necessari per creare un filtro, incluso l'ARN della funzione Lambda di destinazione, il nome del filtro, lo schema di stringhe per il filtraggio e il nome del gruppo di log. Chiama il metodo 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); } });

Digita la seguente riga di comando per eseguire l'esempio.

node cwl_putsubscriptionfilter.js

Questo codice di esempio può essere trovato qui. GitHub

Eliminare un filtro di sottoscrizione

Crea un modulo Node.js con il nome del file cwl_deletesubscriptionfilters.js. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere ai CloudWatch registri, crea un oggetto AWS.CloudWatchLogs di servizio. Crea un oggetto JSON contenente i parametri necessari per eliminare un filtro, inclusi i nomi del filtro e il gruppo di log. Chiama il metodo 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); } });

Digita la seguente riga di comando per eseguire l'esempio.

node cwl_deletesubscriptionfilter.js

Questo codice di esempio può essere trovato qui. GitHub