

La AWS SDK per JavaScript v2 è arrivata. end-of-support [Ti consigliamo di migrare alla AWS SDK per JavaScript v3.](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/) [Per ulteriori dettagli e informazioni su come effettuare 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
<a name="cloudwatch-examples-sending-events"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/it_it/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**Questo esempio di codice di Node.js illustra:**
+ 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
<a name="cloudwatch-examples-sending-events-scenario"></a>

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 moduli Node.js vengono utilizzati per inviare CloudWatch eventi a Events. I moduli Node.js utilizzano l'SDK per JavaScript gestire le istanze utilizzando questi metodi della classe `CloudWatchEvents` client:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchEvents.html#putRule-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchEvents.html#putRule-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchEvents.html#putTargets-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchEvents.html#putTargets-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchEvents.html#putEvents-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchEvents.html#putEvents-property)

Per ulteriori informazioni sugli CloudWatch eventi, consulta [Adding Events with PutEvents](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/AddEventsPutEvents.html) nella *Amazon CloudWatch Events User Guide*.

## Attività prerequisite
<a name="cloudwatch-examples-sending-events-prerequisites"></a>

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](https://nodejs.org).
+ 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](loading-node-credentials-shared.md).
+ Crea una funzione Lambda usando il blueprint **hello-world** come destinazione per gli eventi. Per scoprire come, consulta la [Fase 1: Creare una AWS Lambda funzione](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/LogEC2InstanceState.html) nella *Guida per l'utente di Amazon CloudWatch Events*.
+ Crea un ruolo IAM la cui politica conceda l'autorizzazione a CloudWatch Events e che lo `events.amazonaws.com` includa come entità affidabile. Per ulteriori informazioni sulla creazione di un ruolo IAM, consulta [Creating a Role to Delegate Permissions to an AWS Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) nella *IAM* User Guide.

Utilizzare la seguente policy di ruolo quando si crea un ruolo IAM.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "CloudWatchEventsFullAccess",
         "Effect": "Allow",
         "Action": "events:*",
         "Resource": "*"
      },
      {
         "Sid": "IAMPassRoleForCloudWatchEvents",
         "Effect": "Allow",
         "Action": "iam:PassRole",
         "Resource": "arn:aws:iam::*:role/AWS_Events_Invoke_Targets"
      }      
   ]
}
```

------

Utilizzare la seguente relazione di trust quando si crea un ruolo IAM.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": {
            "Service": "events.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
      }      
   ]
}
```

------

## Creazione di una regola pianificata
<a name="cloudwatch-examples-sending-events-rules"></a>

Crea un modulo Node.js con il nome del file `cwe_putrule.js`. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere agli CloudWatch eventi, crea un oggetto di `AWS.CloudWatchEvents` 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 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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/cloudwatch-events/cwe_putrule.js). GitHub

## Aggiungere un obiettivo di AWS Lambda funzione
<a name="cloudwatch-examples-sending-events-targets"></a>

Crea un modulo Node.js con il nome del file `cwe_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 desideri 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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/cloudwatch-events/cwe_puttargets.js)

## Invio di eventi
<a name="cloudwatch-examples-sending-events-putevents"></a>

Crea un modulo Node.js con il nome del file `cwe_putevents.js`. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere CloudWatch agli eventi, crea 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 ARNs eventuali risorse interessate dall'evento e i dettagli relativi all'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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/cloudwatch-events/cwe_putevents.js).