La versione AWS SDK per JavaScript v2 ha raggiunto la fine del supporto. Ti consigliamo di eseguire la migrazione alla v3. AWS SDK per JavaScript Per ulteriori dettagli e informazioni su come eseguire la migrazione, consulta questo annuncio. https://aws.amazon.com/blogs/developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/
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à.
Invio di eventi ad Amazon CloudWatch Events
Questo esempio di Node.js codice mostra:
Come creare e aggiornare una regola utilizzata per attivare un evento.
Come definire uno o più target per rispondere a un evento.
Come inviare eventi che corrispondono ai target per la gestione.
Lo scenario
CloudWatch Events fornisce un flusso quasi in tempo reale di eventi di sistema che descrivono le modifiche nelle risorse di Amazon Web Services a qualsiasi destinazione. Utilizzando semplici regole, puoi abbinare gli eventi e instradarli verso una o più funzioni o flussi target.
In questo esempio, una serie di Node.js moduli viene utilizzata per inviare eventi a CloudWatch Events. I Node.js moduli utilizzano l'SDK per JavaScript gestire le istanze utilizzando questi metodi della classe CloudWatchEvents client:
Per ulteriori informazioni sugli CloudWatch eventi, consulta Adding Events with PutEvents nella Amazon CloudWatch Events User Guide.
Attività prerequisite
Per configurare ed eseguire questo esempio, è necessario completare queste attività:
Installa Node.js. Per ulteriori informazioni sull'installazione Node.js, consulta il Node.js sito Web
. 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 utilizzando il modello hello-world che funga da obiettivo per gli eventi. Per scoprire come, consulta la Fase 1: Creare una AWS Lambda funzione nella Amazon CloudWatch Events User Guide.
Crea un ruolo IAM la cui policy conceda l'autorizzazione agli CloudWatch eventi e che includa il
events.amazonaws.com.rproxy.govskope.caruolo di entità attendibile. Per ulteriori informazioni sulla creazione di un ruolo IAM, consulta Creazione di un ruolo per delegare le autorizzazioni a un AWS servizio nella IAM User Guide.
Utilizzare la seguente policy di ruolo quando si crea un ruolo IAM.
Utilizzare la seguente relazione di trust quando si crea un ruolo IAM.
Creazione di una regola pianificata
Crea un Node.js modulo con il nome del file. cwe_putrule.js Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere CloudWatch agli eventi, create un oggetto AWS.CloudWatchEvents di servizio. Crea un oggetto JSON che contiene i parametri necessari per specificare la nuova regola pianificata, che includano i seguenti elementi:
Un nome per la regola
L'ARN del ruolo IAM che hai creato in precedenza
Un'espressione per pianificare l'attivazione della regola ogni cinque minuti
Chiama il metodo putRule per creare la regola. La richiamata restituirà l'ARN della regola nuova o aggiornata.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create CloudWatchEvents service object var cwevents = new AWS.CloudWatchEvents({ apiVersion: "2015-10-07" }); var params = { Name: "DEMO_EVENT", RoleArn: "IAM_ROLE_ARN", ScheduleExpression: "rate(5 minutes)", State: "ENABLED", }; cwevents.putRule(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.RuleArn); } });
Digita la seguente riga di comando per eseguire l'esempio.
node cwe_putrule.js
Questo codice di esempio può essere trovato qui. GitHub
Aggiungere un AWS Lambda Funzione Target
Crea un Node.js modulo con il nome del filecwe_puttargets.js. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere CloudWatch agli eventi, create un oggetto AWS.CloudWatchEvents di servizio. Crea un oggetto JSON contenente i parametri necessari per specificare la regola a cui vuoi collegare il target, incluso l'ARN della funzione Lambda che hai creato. Chiama il metodo putTargets dell'oggetto di servizio AWS.CloudWatchEvents.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create CloudWatchEvents service object var cwevents = new AWS.CloudWatchEvents({ apiVersion: "2015-10-07" }); var params = { Rule: "DEMO_EVENT", Targets: [ { Arn: "LAMBDA_FUNCTION_ARN", Id: "myCloudWatchEventsTarget", }, ], }; cwevents.putTargets(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 cwe_puttargets.js
Questo codice di esempio può essere trovato qui. GitHub
Invio di eventi
Crea un Node.js modulo con il nome del filecwe_putevents.js. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere CloudWatch agli eventi, create un oggetto AWS.CloudWatchEvents di servizio. Crea un oggetto JSON che contiene i parametri necessari per l'invio di eventi. Per ogni evento, includi l'origine dell'evento, le ARN delle risorse interessate dall'evento e i dettagli dell'evento. Chiama il metodo putEvents dell'oggetto di servizio AWS.CloudWatchEvents.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create CloudWatchEvents service object var cwevents = new AWS.CloudWatchEvents({ apiVersion: "2015-10-07" }); var params = { Entries: [ { Detail: '{ "key1": "value1", "key2": "value2" }', DetailType: "appRequestSubmitted", Resources: ["RESOURCE_ARN"], Source: "com.company.app", }, ], }; cwevents.putEvents(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Entries); } });
Digita la seguente riga di comando per eseguire l'esempio.
node cwe_putevents.js
Questo codice di esempio può essere trovato qui su GitHub