

La AWS SDK pour JavaScript v2 est arrivée end-of-support. Nous vous recommandons de migrer vers la [AWS SDK pour JavaScript version 3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Pour plus de détails et d'informations sur la façon de migrer, veuillez consulter cette [annonce](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

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.

# Envoyer des événements à Amazon CloudWatch Events
<a name="cloudwatch-examples-sending-events"></a>

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

**Cet exemple de code Node.js présente :**
+ Procédure de création et de mise à jour d'une règle utilisée pour déclencher un événement.
+ Procédure de définition d'une ou plusieurs cibles pour répondre à un événement.
+ Procédure d'envoi des événements associés à des cibles pour traitement.

## Scénario
<a name="cloudwatch-examples-sending-events-scenario"></a>

CloudWatch Events fournit un flux en temps quasi réel d'événements système décrivant les modifications apportées aux ressources Amazon Web Services à différentes cibles. À l'aide de règles simples, vous pouvez faire correspondre les événements et les acheminer vers un ou plusieurs flux ou fonctions cibles.

Dans cet exemple, une série de modules Node.js sont utilisés pour envoyer des CloudWatch événements à Events. Les modules Node.js utilisent le SDK pour gérer les instances JavaScript à l'aide des méthodes suivantes de la 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)

Pour plus d'informations sur les CloudWatch événements, consultez la section [Ajouter des événements PutEvents](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/AddEventsPutEvents.html) dans le *guide de l'utilisateur Amazon CloudWatch Events*.

## Tâches prérequises
<a name="cloudwatch-examples-sending-events-prerequisites"></a>

Pour configurer et exécuter cet exemple, vous devez d'abord :
+ Installez Node.js. Pour plus d'informations sur l'installation de Node.js, consultez le [site web de Node.js](https://nodejs.org).
+ Créez un fichier de configurations partagé avec vos informations d'identification utilisateur. Pour plus d'informations sur le fichier d'informations d'identification partagé, consultez [Chargement des informations d'identification dans Node.js à partir du fichier d'informations d'identification partagé](loading-node-credentials-shared.md).
+ Créez une fonction Lambda à l'aide du plan **hello-world** pour servir de cible aux événements. Pour savoir comment procéder, consultez [Étape 1 : création d'une AWS Lambda fonction](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/LogEC2InstanceState.html) dans le *guide de l'utilisateur Amazon CloudWatch Events*.
+ Créez un rôle IAM dont la politique accorde l'autorisation aux CloudWatch événements, y compris `events.amazonaws.com` en tant qu'entité de confiance. Pour plus d'informations sur la création d'un rôle IAM, consultez la section [Création d'un rôle pour déléguer des autorisations à un AWS service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) dans le Guide de l'*utilisateur IAM*.

Utilisez la stratégie de rôle suivante lors de la création du rôle 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"
      }      
   ]
}
```

------

Utilisez la relation d'approbation suivante lors de la création du rôle IAM.

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

****  

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

------

## Création d'une règle planifiée
<a name="cloudwatch-examples-sending-events-rules"></a>

Créez un module Node.js nommé `cwe_putrule.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder aux CloudWatch événements, créez un objet `AWS.CloudWatchEvents` de service. Créez un objet JSON contenant les paramètres requis pour spécifier la nouvelle règle planifiée, avec les éléments suivants : 
+ Nom de la règle
+ L'ARN du rôle IAM que vous avez créé précédemment
+ Une expression pour planifier le déclenchement de la règle toutes les cinq minutes

Appelez la méthode `putRule` pour créer la règle. Le rappel renvoie l'ARN de la nouvelle règle ou de la règle modifiée.

```
// 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);
  }
});
```

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

```
node cwe_putrule.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/cloudwatch-events/cwe_putrule.js).

## Ajouter une cible AWS Lambda de fonction
<a name="cloudwatch-examples-sending-events-targets"></a>

Créez un module Node.js nommé `cwe_puttargets.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder aux CloudWatch événements, créez un objet `AWS.CloudWatchEvents` de service. Créez un objet JSON contenant les paramètres nécessaires pour spécifier la règle à laquelle vous souhaitez associer la cible, y compris l'ARN de la fonction Lambda que vous avez créée. Appelez la méthode `putTargets` de l'objet de service `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);
  }
});
```

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

```
node cwe_puttargets.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/cloudwatch-events/cwe_puttargets.js).

## Envoi d'événements
<a name="cloudwatch-examples-sending-events-putevents"></a>

Créez un module Node.js nommé `cwe_putevents.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder aux CloudWatch événements, créez un objet `AWS.CloudWatchEvents` de service. Créez un objet JSON contenant les paramètres requis pour envoyer des événements. Pour chaque événement, incluez la source de l'événement, les ARNs ressources affectées par l'événement et les détails de l'événement. Appelez la méthode `putEvents` de l'objet de service `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);
  }
});
```

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

```
node cwe_putevents.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/cloudwatch-events/cwe_putevents.js).