

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.

# SDK pour les exemples de JavaScript code
<a name="sdk-code-samples"></a>

Les rubriques de cette section contiennent des exemples d'utilisation AWS SDK pour JavaScript APIs de différents services pour effectuer des tâches courantes.

Trouvez le code source de ces exemples et d'autres dans le [référentiel d'exemples de code de AWS documentation sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples). Pour proposer un nouvel exemple de code que l'équipe de AWS documentation pourrait envisager de produire, créez une nouvelle demande. L'équipe cherche à produire des exemples de code qui couvrent des scénarios et des cas d'utilisation plus larges, plutôt que de simples extraits de code qui couvrent uniquement les appels d'API individuels. Pour obtenir des instructions, consultez la section *Code de création* dans les [directives relatives aux contributions](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/CONTRIBUTING.md#authoring-code).

**Topics**
+ [CloudWatch Exemples Amazon](cloudwatch-examples.md)
+ [Exemples Amazon DynamoDB](dynamodb-examples.md)
+ [EC2 Exemples Amazon](ec2-examples.md)
+ [AWS Elemental MediaConvert Exemples](emc-examples.md)
+ [AWS Exemples IAM](iam-examples.md)
+ [Exemple Amazon Kinesis](kinesis-examples.md)
+ [Exemples Amazon S3](s3-examples.md)
+ [Exemples de services de messagerie Amazon Simple](ses-examples.md)
+ [Exemples du service de notification Amazon Simple](sns-examples.md)
+ [Exemples Amazon SQS](sqs-examples.md)

# CloudWatch Exemples Amazon
<a name="cloudwatch-examples"></a>

Amazon CloudWatch (CloudWatch) est un service Web qui surveille vos ressources Amazon Web Services et les applications que vous utilisez AWS en temps réel. Vous pouvez les utiliser CloudWatch pour collecter et suivre les métriques, qui sont des variables que vous pouvez mesurer pour vos ressources et vos applications. CloudWatch les alarmes envoient des notifications ou modifient automatiquement les ressources que vous surveillez en fonction des règles que vous définissez.

![\[Relation entre JavaScript les environnements, le SDK et CloudWatch\]](http://docs.aws.amazon.com/fr_fr/sdk-for-javascript/v2/developer-guide/images/code-samples-cloudwatch.png)


L' JavaScript API pour CloudWatch est exposée via les classes `AWS.CloudWatch``AWS.CloudWatchEvents`,, et `AWS.CloudWatchLogs` client. Pour plus d'informations sur l'utilisation des classes CloudWatch clientes, consultez [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html), et [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchLogs.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchLogs.html)dans la référence de l'API.

**Topics**
+ [Création d'alarmes sur Amazon CloudWatch](cloudwatch-examples-creating-alarms.md)
+ [Utilisation des actions d'alarme sur Amazon CloudWatch](cloudwatch-examples-using-alarm-actions.md)
+ [Obtenir des métriques auprès d'Amazon CloudWatch](cloudwatch-examples-getting-metrics.md)
+ [Envoyer des événements à Amazon CloudWatch Events](cloudwatch-examples-sending-events.md)
+ [Utilisation des filtres d'abonnement dans Amazon CloudWatch Logs](cloudwatch-examples-subscriptions.md)

# Création d'alarmes sur Amazon CloudWatch
<a name="cloudwatch-examples-creating-alarms"></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 :**
+ Comment récupérer des informations de base sur vos CloudWatch alarmes.
+ Comment créer et supprimer une CloudWatch alarme

## Scénario
<a name="cloudwatch-examples-creating-alarms-scenario"></a>

Une alarme surveille une seule métrique pendant une durée que vous définissez et exécute une ou plusieurs actions en fonction de la valeur de la métrique par rapport à un seuil donné pendant un certain nombre de périodes.

Dans cet exemple, plusieurs modules Node.js sont utilisés pour créer des alarmes dans CloudWatch. Les modules Node.js utilisent le SDK pour créer des alarmes JavaScript à l'aide des méthodes suivantes de la classe `AWS.CloudWatch` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#describeAlarms-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#describeAlarms-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#putMetricAlarm-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#putMetricAlarm-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#deleteAlarms-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#deleteAlarms-property)

Pour plus d'informations sur les CloudWatch alarmes, consultez la section [Création d' CloudWatch alarmes Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) dans le *guide de CloudWatch l'utilisateur Amazon*.

## Tâches prérequises
<a name="cloudwatch-examples-creating-alarms-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).

## Description des alarmes
<a name="cloudwatch-examples-creating-alarms-describing"></a>

Créez un module Node.js nommé `cw_describealarms.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour y accéder CloudWatch, créez un objet `AWS.CloudWatch` de service. Créez un objet JSON qui contiendra les paramètres nécessaires à la récupération des descriptions d'alarmes, en limitant les alarmes renvoyées à celles dont l'état est `INSUFFICIENT_DATA`. Appelez ensuite la méthode `describeAlarms` de l'objet de service `AWS.CloudWatch`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create CloudWatch service object
var cw = new AWS.CloudWatch({ apiVersion: "2010-08-01" });

cw.describeAlarms({ StateValue: "INSUFFICIENT_DATA" }, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    // List the names of all current alarms in the console
    data.MetricAlarms.forEach(function (item, index, array) {
      console.log(item.AlarmName);
    });
  }
});
```

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

```
node cw_describealarms.js
```

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

## Création d'une alarme pour une CloudWatch métrique
<a name="cloudwatch-examples-creating-alarms-putmetricalarm"></a>

Créez un module Node.js nommé `cw_putmetricalarm.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour y accéder CloudWatch, créez un objet `AWS.CloudWatch` de service. Créez un objet JSON pour les paramètres nécessaires à la création d'une alarme basée sur une métrique, en l'occurrence l'utilisation du processeur d'une instance Amazon EC2. Les paramètres restants sont définis de façon à déclencher l'alarme lorsque la métrique dépasse un seuil de 70 %. Appelez ensuite la méthode `describeAlarms` de l'objet de service `AWS.CloudWatch`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create CloudWatch service object
var cw = new AWS.CloudWatch({ apiVersion: "2010-08-01" });

var params = {
  AlarmName: "Web_Server_CPU_Utilization",
  ComparisonOperator: "GreaterThanThreshold",
  EvaluationPeriods: 1,
  MetricName: "CPUUtilization",
  Namespace: "AWS/EC2",
  Period: 60,
  Statistic: "Average",
  Threshold: 70.0,
  ActionsEnabled: false,
  AlarmDescription: "Alarm when server CPU exceeds 70%",
  Dimensions: [
    {
      Name: "InstanceId",
      Value: "INSTANCE_ID",
    },
  ],
  Unit: "Percent",
};

cw.putMetricAlarm(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 cw_putmetricalarm.js
```

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

## Suppression d'une alarme
<a name="cloudwatch-examples-creating-alarms-deleting"></a>

Créez un module Node.js nommé `cw_deletealarms.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour y accéder CloudWatch, créez un objet `AWS.CloudWatch` de service. Créez un objet JSON contenant les noms des alarmes à supprimer. Appelez ensuite la méthode `deleteAlarms` de l'objet de service `AWS.CloudWatch`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create CloudWatch service object
var cw = new AWS.CloudWatch({ apiVersion: "2010-08-01" });

var params = {
  AlarmNames: ["Web_Server_CPU_Utilization"],
};

cw.deleteAlarms(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 cw_deletealarms.js
```

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

# Utilisation des actions d'alarme sur Amazon CloudWatch
<a name="cloudwatch-examples-using-alarm-actions"></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 :**
+ Comment modifier automatiquement l'état de vos instances Amazon EC2 en fonction d'une CloudWatch alarme.

## Scénario
<a name="cloudwatch-examples-using-alarm-actions-scenario"></a>

À l'aide d'actions d'alarme, vous pouvez créer des alarmes qui arrêtent, mettent fin, redémarrent ou restaurent automatiquement vos instances Amazon EC2. Vous pouvez utiliser les actions d'arrêt ou de mise hors service quand vous n'avez plus besoin qu'une instance s'exécute. Vous pouvez utiliser les actions de redémarrage et de récupération pour redémarrer automatiquement ces instances. 

Dans cet exemple, une série de modules Node.js sont utilisés pour définir une action d'alarme CloudWatch qui déclenche le redémarrage d'une instance Amazon EC2. Les modules Node.js utilisent le SDK pour gérer les instances Amazon EC2 JavaScript à l'aide des méthodes suivantes de `CloudWatch` la classe client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#enableAlarmActions-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#enableAlarmActions-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#disableAlarmActions-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#disableAlarmActions-property)

Pour plus d'informations sur les actions CloudWatch d'alarme, consultez la section [Créer des alarmes pour arrêter, résilier, redémarrer ou récupérer une instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingAlarmActions.html) dans le *guide de CloudWatch l'utilisateur Amazon*.

## Tâches prérequises
<a name="cloudwatch-examples-using-alarm-actions-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](http://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 un rôle IAM dont la politique autorise la description, le redémarrage, l'arrêt ou la mise hors service d'une instance Amazon EC2. 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": [
      {
         "Effect": "Allow",
         "Action": [
            "cloudwatch:Describe*",
            "ec2:Describe*",
            "ec2:RebootInstances",
            "ec2:StopInstances*",
            "ec2:TerminateInstances"
         ],
         "Resource": [
            "*"
         ]
      }
   ]
}
```

------

## 
<a name="cloudwatch-examples-using-alarm-actions-configure-sdk"></a>

Configurez le SDK pour JavaScript en créant un objet de configuration global, puis en définissant la région pour votre code. Dans cet exemple, la région est `us-west-2`.

```
// Load the SDK for JavaScript
var AWS = require('aws-sdk');
// Set the Region 
AWS.config.update({region: 'us-west-2'});
```

## Création et activation d'actions sur une alarme
<a name="cloudwatch-examples-using-alarm-actions-enabling"></a>

Créez un module Node.js nommé `cw_enablealarmactions.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour y accéder CloudWatch, créez un objet `AWS.CloudWatch` de service.

Créez un objet JSON contenant les paramètres de création d'une alarme, en spécifiant les actions `ActionsEnabled` que l' ARNs alarme déclenchera `true` et un tableau de ces actions. Appelez la méthode `putMetricAlarm` de l'objet de service `AWS.CloudWatch`, qui crée l'alarme si elle n'existe pas ou la met à jour si elle existe.

Dans la fonction de rappel du`putMetricAlarm`, une fois l'opération terminée, créez un objet JSON contenant le nom de l' CloudWatch alarme. Appelez la méthode `enableAlarmActions` pour activer l'action d'alarme.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create CloudWatch service object
var cw = new AWS.CloudWatch({ apiVersion: "2010-08-01" });

var params = {
  AlarmName: "Web_Server_CPU_Utilization",
  ComparisonOperator: "GreaterThanThreshold",
  EvaluationPeriods: 1,
  MetricName: "CPUUtilization",
  Namespace: "AWS/EC2",
  Period: 60,
  Statistic: "Average",
  Threshold: 70.0,
  ActionsEnabled: true,
  AlarmActions: ["ACTION_ARN"],
  AlarmDescription: "Alarm when server CPU exceeds 70%",
  Dimensions: [
    {
      Name: "InstanceId",
      Value: "INSTANCE_ID",
    },
  ],
  Unit: "Percent",
};

cw.putMetricAlarm(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Alarm action added", data);
    var paramsEnableAlarmAction = {
      AlarmNames: [params.AlarmName],
    };
    cw.enableAlarmActions(paramsEnableAlarmAction, function (err, data) {
      if (err) {
        console.log("Error", err);
      } else {
        console.log("Alarm action enabled", data);
      }
    });
  }
});
```

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

```
node cw_enablealarmactions.js
```

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

## Désactivation des actions sur une alarme
<a name="cloudwatch-examples-using-alarm-actions-disabling"></a>

Créez un module Node.js nommé `cw_disablealarmactions.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour y accéder CloudWatch, créez un objet `AWS.CloudWatch` de service. Créez un objet JSON contenant le nom de l' CloudWatch alarme. Appelez la méthode `disableAlarmActions` pour désactiver les actions pour cette alarme.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create CloudWatch service object
var cw = new AWS.CloudWatch({ apiVersion: "2010-08-01" });

cw.disableAlarmActions(
  { AlarmNames: ["Web_Server_CPU_Utilization"] },
  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 cw_disablealarmactions.js
```

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

# Obtenir des métriques auprès d'Amazon CloudWatch
<a name="cloudwatch-examples-getting-metrics"></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 :**
+ Comment récupérer une liste de CloudWatch métriques publiées.
+ Comment publier des points de données dans CloudWatch des métriques

## Scénario
<a name="cloudwatch-examples-getting-metrics-scenario"></a>

Les métriques sont des données sur les performances de vos systèmes. Vous pouvez activer la surveillance détaillée de certaines ressources, telles que vos instances Amazon EC2 ou vos propres indicateurs d'application. 

Dans cet exemple, une série de modules Node.js sont utilisés pour obtenir des métriques CloudWatch et envoyer des événements à Amazon CloudWatch Events. Les modules Node.js utilisent le SDK pour JavaScript obtenir des métriques CloudWatch en utilisant les méthodes suivantes de la classe `CloudWatch` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#listMetrics-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#listMetrics-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#putMetricData-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatch.html#putMetricData-property)

Pour plus d'informations sur CloudWatch les métriques, consultez la section [Utilisation d'Amazon CloudWatch Metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) dans le *guide de CloudWatch l'utilisateur Amazon*.

## Tâches prérequises
<a name="cloudwatch-examples-getting-metrics-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).

## Affichage de la liste des métriques
<a name="cloudwatch-examples-getting-metrics-listing"></a>

Créez un module Node.js nommé `cw_listmetrics.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour y accéder CloudWatch, créez un objet `AWS.CloudWatch` de service. Créez un objet JSON contenant les paramètres requis pour répertorier les métriques dans l'espace de noms `AWS/Logs`. Appelez la méthode `listMetrics` pour répertorier la métrique `IncomingLogEvents`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create CloudWatch service object
var cw = new AWS.CloudWatch({ apiVersion: "2010-08-01" });

var params = {
  Dimensions: [
    {
      Name: "LogGroupName" /* required */,
    },
  ],
  MetricName: "IncomingLogEvents",
  Namespace: "AWS/Logs",
};

cw.listMetrics(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Metrics", JSON.stringify(data.Metrics));
  }
});
```

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

```
node cw_listmetrics.js
```

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

## Envoi de métriques personnalisées
<a name="cloudwatch-examples-getting-metrics-publishing-custom"></a>

Créez un module Node.js nommé `cw_putmetricdata.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour y accéder CloudWatch, créez un objet `AWS.CloudWatch` de service. Créez un objet JSON contenant les paramètres requis afin d'envoyer un point de données pour la métrique personnalisée `PAGES_VISITED`. Appelez la méthode `putMetricData`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create CloudWatch service object
var cw = new AWS.CloudWatch({ apiVersion: "2010-08-01" });

// Create parameters JSON for putMetricData
var params = {
  MetricData: [
    {
      MetricName: "PAGES_VISITED",
      Dimensions: [
        {
          Name: "UNIQUE_PAGES",
          Value: "URLS",
        },
      ],
      Unit: "None",
      Value: 1.0,
    },
  ],
  Namespace: "SITE/TRAFFIC",
};

cw.putMetricData(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", JSON.stringify(data));
  }
});
```

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

```
node cw_putmetricdata.js
```

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

# 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).

# Utilisation des filtres d'abonnement dans Amazon CloudWatch Logs
<a name="cloudwatch-examples-subscriptions"></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 :**
+ Comment créer et supprimer des filtres pour les événements de journalisation dans CloudWatch Logs

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

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 traitement AWS 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 :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchLogs.html#putSubscriptionFilters-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchLogs.html#putSubscriptionFilters-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchLogs.html#describeSubscriptionFilters-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchLogs.html#describeSubscriptionFilters-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchLogs.html#deleteSubscriptionFilter-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchLogs.html#deleteSubscriptionFilter-property)

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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Subscriptions.html) dans le *guide de l'utilisateur Amazon CloudWatch Logs*.

## Tâches prérequises
<a name="cloudwatch-examples-subscriptions-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 comme destination pour les événements du journal. Vous devrez utiliser l'ARN de cette fonction. Pour plus d'informations sur la configuration d'une fonction Lambda, consultez la section [Filtres d'abonnement AWS Lambda dans le guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html#LambdaFunctionExample) de *l'utilisateur Amazon CloudWatch Logs*.
+ Créez un rôle IAM dont la politique autorise l'appel de la fonction Lambda que vous avez créée et accorde un accès complet CloudWatch aux journaux ou appliquez la politique suivante au rôle d'exécution que vous créez pour la fonction Lambda. 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": [
      {
         "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
<a name="cloudwatch-examples-subscriptions-describing"></a>

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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/cloudwatch-logs/cwl_describesubscriptionfilters.js).

## Création d'un filtre d'abonnement
<a name="cloudwatch-examples-subscriptions-creating"></a>

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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/cloudwatch-logs/cwl_putsubscriptionfilter.js).

## Suppression d'un filtre d'abonnement
<a name="cloudwatch-examples-subscriptions-deleting"></a>

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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/cloudwatch-logs/cwl_deletesubscriptionfilter.js).

# Exemples Amazon DynamoDB
<a name="dynamodb-examples"></a>

Amazon DynamoDB est une base de données cloud NoSQL entièrement gérée qui prend en charge les modèles de magasin de documents et de magasins de valeurs clés. Vous créez des tables sans schéma pour les données sans avoir besoin d'allouer ni de gérer des serveurs de base de données dédiés.

![\[Relation entre JavaScript les environnements, le SDK et DynamoDB\]](http://docs.aws.amazon.com/fr_fr/sdk-for-javascript/v2/developer-guide/images/code-samples-dynamodb.png)


L' JavaScript API pour DynamoDB est exposée par le biais `AWS.DynamoDB` des classes`AWS.DynamoDBStreams`,, `AWS.DynamoDB.DocumentClient` et client. Pour plus d'informations sur l'utilisation des classes clientes DynamoDB, [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html)consultez [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDBStreams.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDBStreams.html), [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html)et dans la référence de l'API.

**Topics**
+ [Création et utilisation de tables dans DynamoDB](dynamodb-examples-using-tables.md)
+ [Lecture et écriture d'un seul élément dans DynamoDB](dynamodb-example-table-read-write.md)
+ [Lecture et écriture d'éléments par lots dans DynamoDB](dynamodb-example-table-read-write-batch.md)
+ [Interrogation et analyse d'une table DynamoDB](dynamodb-example-query-scan.md)
+ [Utilisation du client de documents DynamoDB](dynamodb-example-document-client.md)

# Création et utilisation de tables dans DynamoDB
<a name="dynamodb-examples-using-tables"></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 :**
+ Comment créer et gérer les tables utilisées pour stocker et récupérer des données depuis DynamoDB.

## Scénario
<a name="dynamodb-examples-using-tables-scenario"></a>

Comme les autres systèmes de base de données, DynamoDB stocke les données dans des tables. Une table DynamoDB est un ensemble de données organisé en éléments analogues à des lignes. Pour stocker des données ou y accéder dans DynamoDB, vous devez créer des tables et les utiliser.

Dans cet exemple, vous utilisez une série de modules Node.js pour effectuer des opérations de base avec une table DynamoDB. Le code utilise le SDK pour JavaScript créer et utiliser des tables en utilisant les méthodes suivantes de la classe `AWS.DynamoDB` client :
+ [createTable](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#createTable-property)
+ [listTables](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#listTables-property)
+ [describeTable](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#describeTable-property)
+ [deleteTable](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#deleteTable-property)

## Tâches prérequises
<a name="dynamodb-examples-using-tables-prerequisites"></a>

Pour configurer et exécuter cet exemple, réalisez tout d'abord les tâches ci-après :
+ Installez Node.js. Pour plus d'informations, 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éation d'une table
<a name="dynamodb-examples-using-tables-creating-a-table"></a>

Créez un module Node.js nommé `ddb_createtable.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un `AWS.DynamoDB` objet de service. Créez un objet JSON contenant les paramètres requis pour créer une table, ce qui dans cet exemple inclut le nom et le type de données de chaque attribut, le schéma de clé, le nom de la table, ainsi que les unités de débit à allouer. Appelez la `createTable` méthode de l'objet de service DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the DynamoDB service object
var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });

var params = {
  AttributeDefinitions: [
    {
      AttributeName: "CUSTOMER_ID",
      AttributeType: "N",
    },
    {
      AttributeName: "CUSTOMER_NAME",
      AttributeType: "S",
    },
  ],
  KeySchema: [
    {
      AttributeName: "CUSTOMER_ID",
      KeyType: "HASH",
    },
    {
      AttributeName: "CUSTOMER_NAME",
      KeyType: "RANGE",
    },
  ],
  ProvisionedThroughput: {
    ReadCapacityUnits: 1,
    WriteCapacityUnits: 1,
  },
  TableName: "CUSTOMER_LIST",
  StreamSpecification: {
    StreamEnabled: false,
  },
};

// Call DynamoDB to create the table
ddb.createTable(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Table Created", data);
  }
});
```

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

```
node ddb_createtable.js
```

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

## Liste de vos tables
<a name="dynamodb-examples-using-tables-listing-tables"></a>

Créez un module Node.js nommé `ddb_listtables.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un `AWS.DynamoDB` objet de service. Créez un objet JSON contenant les paramètres requis pour répertorier vos tables, ce qui dans cet exemple limite à 10 le nombre de tables répertoriées. Appelez la `listTables` méthode de l'objet de service DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the DynamoDB service object
var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });

// Call DynamoDB to retrieve the list of tables
ddb.listTables({ Limit: 10 }, function (err, data) {
  if (err) {
    console.log("Error", err.code);
  } else {
    console.log("Table names are ", data.TableNames);
  }
});
```

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

```
node ddb_listtables.js
```

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

## Description d'une table
<a name="dynamodb-examples-using-tables-describing-a-table"></a>

Créez un module Node.js nommé `ddb_describetable.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un `AWS.DynamoDB` objet de service. Créez un objet JSON contenant les paramètres requis pour décrire une table, ce qui dans cet exemple inclut le nom de la table fournie en tant que paramètre de ligne de commande. Appelez la `describeTable` méthode de l'objet de service DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the DynamoDB service object
var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });

var params = {
  TableName: process.argv[2],
};

// Call DynamoDB to retrieve the selected table descriptions
ddb.describeTable(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.Table.KeySchema);
  }
});
```

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

```
node ddb_describetable.js TABLE_NAME
```

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

## Suppression d'une table
<a name="dynamodb-examples-using-tables-deleting-a-table"></a>

Créez un module Node.js nommé `ddb_deletetable.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un `AWS.DynamoDB` objet de service. Créez un objet JSON contenant les paramètres requis pour décrire une table, ce qui dans cet exemple inclut le nom de la table fournie en tant que paramètre de ligne de commande. Appelez la `deleteTable` méthode de l'objet de service DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the DynamoDB service object
var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });

var params = {
  TableName: process.argv[2],
};

// Call DynamoDB to delete the specified table
ddb.deleteTable(params, function (err, data) {
  if (err && err.code === "ResourceNotFoundException") {
    console.log("Error: Table not found");
  } else if (err && err.code === "ResourceInUseException") {
    console.log("Error: Table in use");
  } else {
    console.log("Success", data);
  }
});
```

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

```
node ddb_deletetable.js TABLE_NAME
```

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

# Lecture et écriture d'un seul élément dans DynamoDB
<a name="dynamodb-example-table-read-write"></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 :**
+ Comment ajouter un élément dans une table DynamoDB
+ Comment récupérer un élément dans une table DynamoDB
+ Comment supprimer un élément dans une table DynamoDB

## Scénario
<a name="dynamodb-example-table-read-write-scenario"></a>

Dans cet exemple, vous utilisez une série de modules Node.js pour lire et écrire un élément dans une table DynamoDB en utilisant les méthodes suivantes de la `AWS.DynamoDB` classe client :
+ [putItem](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#putItem-property)
+ [getItem](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#getItem-property)
+ [deleteItem](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#deleteItem-property)

## Tâches prérequises
<a name="dynamodb-example-table-read-write-prerequisites"></a>

Pour configurer et exécuter cet exemple, réalisez tout d'abord les tâches ci-après :
+ Installez Node.js. Pour plus d'informations, 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 table DynamoDB dont vous pouvez accéder aux éléments. Pour plus d'informations sur la création d'une table DynamoDB, consultez. [Création et utilisation de tables dans DynamoDB](dynamodb-examples-using-tables.md)

## Ecriture d'un élément
<a name="dynamodb-example-table-read-write-writing-an-item"></a>

Créez un module Node.js nommé `ddb_putitem.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un `AWS.DynamoDB` objet de service. Créez un objet JSON contenant les paramètres requis pour ajouter un élément, ce qui dans cet exemple inclut le nom de la table et une carte qui détermine les attributs à définir et les valeurs de chaque attribut. Appelez la `putItem` méthode de l'objet de service DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the DynamoDB service object
var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });

var params = {
  TableName: "CUSTOMER_LIST",
  Item: {
    CUSTOMER_ID: { N: "001" },
    CUSTOMER_NAME: { S: "Richard Roe" },
  },
};

// Call DynamoDB to add the item to the table
ddb.putItem(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 ddb_putitem.js
```

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

## Obtention d'un élément
<a name="dynamodb-example-table-read-write-getting-an-item"></a>

Créez un module Node.js nommé `ddb_getitem.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un `AWS.DynamoDB` objet de service. Pour déterminer l'élément à obtenir, vous devez fournir la valeur de la clé primaire de cet élément dans la table. Par défaut, la méthode `getItem` renvoie toutes les valeurs d'attribut définies pour l'élément. Pour obtenir uniquement un sous-ensemble de toutes les valeurs d'attribut possible, spécifiez une expression de projection.

Créez un objet JSON contenant les paramètres requis pour obtenir un élément, ce qui dans cet exemple inclut le nom de la table, le nom et la valeur de la clé de l'élément que vous récupérez, ainsi qu'une expression de projection qui identifie l'attribut de l'élément à récupérer. Appelez la `getItem` méthode de l'objet de service DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the DynamoDB service object
var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });

var params = {
  TableName: "TABLE",
  Key: {
    KEY_NAME: { N: "001" },
  },
  ProjectionExpression: "ATTRIBUTE_NAME",
};

// Call DynamoDB to read the item from the table
ddb.getItem(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.Item);
  }
});
```

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

```
node ddb_getitem.js
```

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

## Suppression d'un élément
<a name="dynamodb-example-table-read-write-deleting-an-item"></a>

Créez un module Node.js nommé `ddb_deleteitem.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un `AWS.DynamoDB` objet de service. Créez un objet JSON contenant les paramètres requis pour supprimer un élément, ce qui dans cet exemple inclut le nom de la table, ainsi que le nom de clé et la valeur de l'élément que vous supprimez. Appelez la `deleteItem` méthode de l'objet de service DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the DynamoDB service object
var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });

var params = {
  TableName: "TABLE",
  Key: {
    KEY_NAME: { N: "VALUE" },
  },
};

// Call DynamoDB to delete the item from the table
ddb.deleteItem(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 ddb_deleteitem.js
```

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

# Lecture et écriture d'éléments par lots dans DynamoDB
<a name="dynamodb-example-table-read-write-batch"></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 :**
+ Comment lire et écrire des lots d'éléments dans une table DynamoDB

## Scénario
<a name="dynamodb-example-table-read-write-batch-scenario"></a>

Dans cet exemple, vous utilisez une série de modules Node.js pour placer un lot d'éléments dans une table DynamoDB ainsi que pour lire un lot d'éléments. Le code utilise le SDK pour effectuer des opérations JavaScript de lecture et d'écriture par lots à l'aide des méthodes suivantes de la classe client DynamoDB :
+ [batchGetItem](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#batchGetItem-property)
+ [batchWriteItem](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#batchWriteItem-property)

## Tâches prérequises
<a name="dynamodb-example-table-read-write-batch-prerequisites"></a>

Pour configurer et exécuter cet exemple, réalisez tout d'abord les tâches ci-après :
+ Installez Node.js. Pour plus d'informations, 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 table DynamoDB dont vous pouvez accéder aux éléments. Pour plus d'informations sur la création d'une table DynamoDB, consultez. [Création et utilisation de tables dans DynamoDB](dynamodb-examples-using-tables.md)

## Lecture des éléments par lots
<a name="dynamodb-example-table-read-write-batch-reading"></a>

Créez un module Node.js nommé `ddb_batchgetitem.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un `AWS.DynamoDB` objet de service. Créez un objet JSON contenant les paramètres requis pour obtenir un lot d'éléments, ce qui dans cet exemple inclut le nom d'une ou de plusieurs tables dans lesquelles lire les éléments, les valeurs des clés à lire dans chaque table et l'expression de projection qui spécifie les attributs à renvoyer. Appelez la `batchGetItem` méthode de l'objet de service DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create DynamoDB service object
var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });

var params = {
  RequestItems: {
    TABLE_NAME: {
      Keys: [
        { KEY_NAME: { N: "KEY_VALUE_1" } },
        { KEY_NAME: { N: "KEY_VALUE_2" } },
        { KEY_NAME: { N: "KEY_VALUE_3" } },
      ],
      ProjectionExpression: "KEY_NAME, ATTRIBUTE",
    },
  },
};

ddb.batchGetItem(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    data.Responses.TABLE_NAME.forEach(function (element, index, array) {
      console.log(element);
    });
  }
});
```

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

```
node ddb_batchgetitem.js
```

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

## Écriture d'éléments par lots
<a name="dynamodb-example-table-read-write-batch-writing"></a>

Créez un module Node.js nommé `ddb_batchwriteitem.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un `AWS.DynamoDB` objet de service. Créez un objet JSON contenant les paramètres requis pour obtenir un lot d'éléments, ce qui dans cet exemple inclut la table dans laquelle vous souhaitez écrire des éléments, la ou les clés à écrire pour chaque élément, ainsi que les attributs et leurs valeurs. Appelez la `batchWriteItem` méthode de l'objet de service DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create DynamoDB service object
var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });

var params = {
  RequestItems: {
    TABLE_NAME: [
      {
        PutRequest: {
          Item: {
            KEY: { N: "KEY_VALUE" },
            ATTRIBUTE_1: { S: "ATTRIBUTE_1_VALUE" },
            ATTRIBUTE_2: { N: "ATTRIBUTE_2_VALUE" },
          },
        },
      },
      {
        PutRequest: {
          Item: {
            KEY: { N: "KEY_VALUE" },
            ATTRIBUTE_1: { S: "ATTRIBUTE_1_VALUE" },
            ATTRIBUTE_2: { N: "ATTRIBUTE_2_VALUE" },
          },
        },
      },
    ],
  },
};

ddb.batchWriteItem(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 ddb_batchwriteitem.js
```

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

# Interrogation et analyse d'une table DynamoDB
<a name="dynamodb-example-query-scan"></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 :**
+ Comment interroger et analyser une table DynamoDB à la recherche d'éléments.

## Scénario
<a name="dynamodb-example-table-query-scan-scenario"></a>

L'interrogation recherche les éléments d'une table ou d'un index secondaire uniquement à l'aide des valeurs d'attribut de clé primaire. Vous devez fournir un nom de clé de partition et une valeur à rechercher. Vous pouvez également indiquer un nom de clé de tri et une valeur, et utiliser un opérateur de comparaison pour affiner les résultats de recherche. L'analyse recherche les éléments en vérifiant chacun d'eux dans la table spécifiée.

Dans cet exemple, vous utilisez une série de modules Node.js pour identifier un ou plusieurs éléments que vous souhaitez récupérer dans une table DynamoDB. Le code utilise le SDK pour interroger et analyser des tables JavaScript à l'aide des méthodes suivantes de la classe client DynamoDB :
+ [query](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#query-property)
+ [scan](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#scan-property)

## Tâches prérequises
<a name="dynamodb-example-table-query-scan-prerequisites"></a>

Pour configurer et exécuter cet exemple, réalisez tout d'abord les tâches ci-après :
+ Installez Node.js. Pour plus d'informations, 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 table DynamoDB dont vous pouvez accéder aux éléments. Pour plus d'informations sur la création d'une table DynamoDB, consultez. [Création et utilisation de tables dans DynamoDB](dynamodb-examples-using-tables.md)

## Interrogation d'une table
<a name="dynamodb-example-table-query-scan-querying"></a>

Cet exemple interroge une table qui contient des informations sur chaque épisode d'une série de vidéos, en renvoyant les titres et les sous-titres des épisodes de la deuxième saison après l'épisode 9 qui contiennent une expression spécifiée dans leur sous-titre.

Créez un module Node.js nommé `ddb_query.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un `AWS.DynamoDB` objet de service. Créez un objet JSON contenant les paramètres requis pour interroger la table, ce qui dans cet exemple inclut le nom de la table, les valeurs `ExpressionAttributeValues` requises par la requête, une `KeyConditionExpression` qui utilise ces valeurs pour définir quels éléments sont renvoyés par la requête, ainsi que les noms des valeurs d'attribut à renvoyer pour chaque élément. Appelez la `query` méthode de l'objet de service DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create DynamoDB service object
var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });

var params = {
  ExpressionAttributeValues: {
    ":s": { N: "2" },
    ":e": { N: "09" },
    ":topic": { S: "PHRASE" },
  },
  KeyConditionExpression: "Season = :s and Episode > :e",
  ProjectionExpression: "Episode, Title, Subtitle",
  FilterExpression: "contains (Subtitle, :topic)",
  TableName: "EPISODES_TABLE",
};

ddb.query(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    //console.log("Success", data.Items);
    data.Items.forEach(function (element, index, array) {
      console.log(element.Title.S + " (" + element.Subtitle.S + ")");
    });
  }
});
```

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

```
node ddb_query.js
```

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

## Analyse d'une table
<a name="dynamodb-example-table-query-scan-scanning"></a>

Créez un module Node.js nommé `ddb_scan.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un `AWS.DynamoDB` objet de service. Créez un objet JSON contenant les paramètres requis pour analyser les éléments de la table, ce qui dans cet exemple inclut le nom de la table, la liste des valeurs d'attribut à renvoyer pour chaque élément correspondant et une expression permettant de filtrer le jeu de résultats afin de rechercher les éléments contenant une expression spécifiée. Appelez la `scan` méthode de l'objet de service DynamoDB.

```
// Load the AWS SDK for Node.js.
var AWS = require("aws-sdk");
// Set the AWS Region.
AWS.config.update({ region: "REGION" });

// Create DynamoDB service object.
var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });

const params = {
  // Specify which items in the results are returned.
  FilterExpression: "Subtitle = :topic AND Season = :s AND Episode = :e",
  // Define the expression attribute value, which are substitutes for the values you want to compare.
  ExpressionAttributeValues: {
    ":topic": { S: "SubTitle2" },
    ":s": { N: 1 },
    ":e": { N: 2 },
  },
  // Set the projection expression, which are the attributes that you want.
  ProjectionExpression: "Season, Episode, Title, Subtitle",
  TableName: "EPISODES_TABLE",
};

ddb.scan(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data);
    data.Items.forEach(function (element, index, array) {
      console.log(
        "printing",
        element.Title.S + " (" + element.Subtitle.S + ")"
      );
    });
  }
});
```

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

```
node ddb_scan.js
```

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

# Utilisation du client de documents DynamoDB
<a name="dynamodb-example-document-client"></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 :**
+ Comment accéder à une table DynamoDB à l'aide du client de documents

## Scénario
<a name="dynamodb-example-document-client-scenario"></a>

Le client de documents DynamoDB simplifie l'utilisation des éléments en faisant abstraction de la notion de valeurs d'attribut. Cette abstraction annote les JavaScript types natifs fournis en tant que paramètres d'entrée et convertit les données de réponse annotées en types natifs JavaScript .

Pour plus d'informations sur la classe DynamoDB Document Client, [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html)consultez le Guide de référence des API. *Pour plus d'informations sur la programmation avec Amazon DynamoDB, consultez la section [Programmation avec DynamoDB dans le manuel du développeur Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.html).*

Dans cet exemple, vous utilisez une série de modules Node.js pour effectuer des opérations de base sur une table DynamoDB à l'aide du client de documents. Le code utilise le SDK pour interroger et scanner des tables JavaScript à l'aide des méthodes suivantes de la classe DynamoDB Document Client :
+ [get](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#get-property)
+ [put](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#put-property)
+ [update](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#update-property)
+ [query](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#query-property)
+ [supprimer](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#delete-property)

## Tâches prérequises
<a name="dynamodb-example-document-client-prerequisites"></a>

Pour configurer et exécuter cet exemple, réalisez tout d'abord les tâches ci-après :
+ Installez Node.js. Pour plus d'informations, 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 table DynamoDB dont vous pouvez accéder aux éléments. Pour plus d'informations sur la création d'une table DynamoDB à l'aide du SDK JavaScript pour, consultez. [Création et utilisation de tables dans DynamoDB](dynamodb-examples-using-tables.md) Vous pouvez également utiliser la console [DynamoDB](https://console.aws.amazon.com/dynamodb/) pour créer une table.

## Obtention d'un élément à partir d'une table
<a name="dynamodb-example-document-client-get"></a>

Créez un module Node.js nommé `ddbdoc_get.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un objet. `AWS.DynamoDB.DocumentClient` Créez un objet JSON contenant les paramètres requis pour obtenir un élément de la table, ce qui dans cet exemple inclut le nom de la table, le nom de la clé de hachage dans cette table et la valeur de la clé de hachage de l'élément que vous récupérez. Appelez la `get` méthode du client de documents DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create DynamoDB document client
var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" });

var params = {
  TableName: "EPISODES_TABLE",
  Key: { KEY_NAME: VALUE },
};

docClient.get(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.Item);
  }
});
```

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

```
node ddbdoc_get.js
```

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

## Positionnement d'un élément dans une table
<a name="dynamodb-example-document-client-put"></a>

Créez un module Node.js nommé `ddbdoc_put.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un objet. `AWS.DynamoDB.DocumentClient` Créez un objet JSON contenant les paramètres requis pour écrire un élément dans la table, ce qui dans cet exemple inclut le nom de la table et une description de l'élément à ajouter ou à mettre à jour qui inclut la clé de hachage et la valeur, ainsi que les noms et valeurs des attributs à définir sur l'élément. Appelez la `put` méthode du client de documents DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create DynamoDB document client
var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" });

var params = {
  TableName: "TABLE",
  Item: {
    HASHKEY: VALUE,
    ATTRIBUTE_1: "STRING_VALUE",
    ATTRIBUTE_2: VALUE_2,
  },
};

docClient.put(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 ddbdoc_put.js
```

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

## Mise à jour d'un élément dans une table
<a name="dynamodb-example-document-client-update"></a>

Créez un module Node.js nommé `ddbdoc_update.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un objet. `AWS.DynamoDB.DocumentClient` Créez un objet JSON contenant les paramètres requis pour écrire un élément dans la table, ce qui dans cet exemple inclut le nom de la table, la clé de l'élément à mettre à jour et un ensemble de `UpdateExpressions` définissant les attributs de l'élément à mettre à jour avec les jetons auxquels vous attribuez des valeurs dans les paramètres `ExpressionAttributeValues`. Appelez la `update` méthode du client de documents DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create DynamoDB document client
var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" });

// Create variables to hold numeric key values
var season = SEASON_NUMBER;
var episode = EPISODES_NUMBER;

var params = {
  TableName: "EPISODES_TABLE",
  Key: {
    Season: season,
    Episode: episode,
  },
  UpdateExpression: "set Title = :t, Subtitle = :s",
  ExpressionAttributeValues: {
    ":t": "NEW_TITLE",
    ":s": "NEW_SUBTITLE",
  },
};

docClient.update(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 ddbdoc_update.js
```

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

## Interrogation d'une table
<a name="dynamodb-example-document-client-query"></a>

Cet exemple interroge une table qui contient des informations sur chaque épisode d'une série de vidéos, en renvoyant les titres et les sous-titres des épisodes de la deuxième saison après l'épisode 9 qui contiennent une expression spécifiée dans leur sous-titre.

Créez un module Node.js nommé `ddbdoc_query.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un objet. `AWS.DynamoDB.DocumentClient` Créez un objet JSON contenant les paramètres requis pour interroger la table, ce qui dans cet exemple inclut le nom de la table, les valeurs `ExpressionAttributeValues` requises par la requête et une `KeyConditionExpression` qui utilise ces valeurs pour définir quels éléments sont renvoyés par la requête. Appelez la `query` méthode du client de documents DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create DynamoDB document client
var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" });

var params = {
  ExpressionAttributeValues: {
    ":s": 2,
    ":e": 9,
    ":topic": "PHRASE",
  },
  KeyConditionExpression: "Season = :s and Episode > :e",
  FilterExpression: "contains (Subtitle, :topic)",
  TableName: "EPISODES_TABLE",
};

docClient.query(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.Items);
  }
});
```

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

```
node ddbdoc_query.js
```

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

## Suppression d'un élément d'une table
<a name="dynamodb-example-document-client-delete"></a>

Créez un module Node.js nommé `ddbdoc_delete.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un objet. `AWS.DynamoDB.DocumentClient` Créez un objet JSON contenant les paramètres requis pour supprimer un élément de la table, ce qui dans cet exemple inclut le nom de la table, ainsi que le nom et la valeur de la clé de hachage de l'élément à supprimer. Appelez la `delete` méthode du client de documents DynamoDB.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create DynamoDB document client
var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" });

var params = {
  Key: {
    HASH_KEY: VALUE,
  },
  TableName: "TABLE",
};

docClient.delete(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 ddbdoc_delete.js
```

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

# EC2 Exemples Amazon
<a name="ec2-examples"></a>

Amazon Elastic Compute Cloud (Amazon EC2) est un service Web qui fournit un hébergement de serveurs virtuels dans le cloud. Destiné aux développeurs, il est conçu pour faciliter les opérations de cloud computing à l'échelle du web en offrant une capacité de calcul redimensionnable.

![\[Relation entre JavaScript les environnements, le SDK et Amazon EC2\]](http://docs.aws.amazon.com/fr_fr/sdk-for-javascript/v2/developer-guide/images/code-samples-ec2.png)


L' JavaScript API pour Amazon EC2 est exposée par le biais de la classe `AWS.EC2` client. Pour plus d'informations sur l'utilisation de la classe EC2 client Amazon, consultez [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html)la référence de l'API.

**Topics**
+ [Création d'une EC2 instance Amazon](ec2-example-creating-an-instance.md)
+ [Gestion des EC2 instances Amazon](ec2-example-managing-instances.md)
+ [Utilisation des paires de EC2 clés Amazon](ec2-example-key-pairs.md)
+ [Utilisation des régions et des zones de disponibilité avec Amazon EC2](ec2-example-regions-availability-zones.md)
+ [Travailler avec des groupes de sécurité sur Amazon EC2](ec2-example-security-groups.md)
+ [Utilisation d'adresses IP élastiques sur Amazon EC2](ec2-example-elastic-ip-addresses.md)

# Création d'une EC2 instance Amazon
<a name="ec2-example-creating-an-instance"></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 :**
+ Comment créer une EC2 instance Amazon à partir d'une Amazon Machine Image (AMI) publique.
+ Comment créer et attribuer des balises à la nouvelle EC2 instance Amazon.

## À propos de l'exemple
<a name="ec2-example-creating-an-instance-scenario"></a>

Dans cet exemple, vous utilisez un module Node.js pour créer une EC2 instance Amazon et lui attribuer à la fois une paire de clés et des balises. Le code utilise le SDK pour JavaScript créer et étiqueter une instance en utilisant les méthodes suivantes de la classe EC2 client Amazon :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#runInstances-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#runInstances-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#createTags-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#createTags-property)

## Tâches prérequises
<a name="ec2-example-creating-an-instance-prerequisites"></a>

Pour configurer et exécuter cet exemple, réalisez tout d'abord les tâches ci-après.
+ Installez Node.js. Pour plus d'informations, 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éer une paire de clé. Pour plus de détails, consultez [Utilisation des paires de EC2 clés Amazon](ec2-example-key-pairs.md). Vous utilisez le nom de la paire de clés dans cet exemple.

## Création et balisage d'une instance
<a name="ec2-example-creating-an-instance-and-tags"></a>

Créez un module Node.js nommé `ec2_createinstances.js`. Veillez à configurer le kit SDK comme indiqué précédemment.

Créez un objet pour transmettre les paramètres de la `runInstances` méthode de l'AWS. EC2 classe client, y compris le nom de la paire de clés à attribuer et l'ID de l'AMI à exécuter. Pour appeler la `runInstances` méthode, créez une promesse pour appeler un objet de EC2 service Amazon en transmettant les paramètres. Traitez ensuite l'élément response dans le rappel de promesse. 

Le code ajoute ensuite une `Name` balise à une nouvelle instance, que la EC2 console Amazon reconnaît et affiche dans le champ **Nom** de la liste des instances. Vous pouvez ajouter jusqu'à 50 balises à une instance, qui peuvent toutes être ajoutées dans un seul appel à la méthode `createTags`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Load credentials and set region from JSON file
AWS.config.update({ region: "REGION" });

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

// AMI is amzn-ami-2011.09.1.x86_64-ebs
var instanceParams = {
  ImageId: "AMI_ID",
  InstanceType: "t2.micro",
  KeyName: "KEY_PAIR_NAME",
  MinCount: 1,
  MaxCount: 1,
};

// Create a promise on an EC2 service object
var instancePromise = new AWS.EC2({ apiVersion: "2016-11-15" })
  .runInstances(instanceParams)
  .promise();

// Handle promise's fulfilled/rejected states
instancePromise
  .then(function (data) {
    console.log(data);
    var instanceId = data.Instances[0].InstanceId;
    console.log("Created instance", instanceId);
    // Add tags to the instance
    tagParams = {
      Resources: [instanceId],
      Tags: [
        {
          Key: "Name",
          Value: "SDK Sample",
        },
      ],
    };
    // Create a promise on an EC2 service object
    var tagPromise = new AWS.EC2({ apiVersion: "2016-11-15" })
      .createTags(tagParams)
      .promise();
    // Handle promise's fulfilled/rejected states
    tagPromise
      .then(function (data) {
        console.log("Instance tagged");
      })
      .catch(function (err) {
        console.error(err, err.stack);
      });
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node ec2_createinstances.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_createinstances.js).

# Gestion des EC2 instances Amazon
<a name="ec2-example-managing-instances"></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 :**
+ Comment récupérer des informations de base sur vos EC2 instances Amazon.
+ Comment démarrer et arrêter la surveillance détaillée d'une EC2 instance Amazon.
+ Comment démarrer et arrêter une EC2 instance Amazon.
+ Comment redémarrer une EC2 instance Amazon.

## Scénario
<a name="ec2-example-managing-instances-scenario"></a>

Dans cet exemple, vous utilisez plusieurs modules Node.js pour effectuer des opérations de gestion des instances de base. Les modules Node.js utilisent le SDK JavaScript pour gérer les instances en utilisant les méthodes de classe EC2 client Amazon suivantes :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeInstances-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeInstances-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#monitorInstances-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#monitorInstances-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#unmonitorInstances-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#unmonitorInstances-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#startInstances-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#startInstances-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#stopInstances-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#stopInstances-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#rebootInstances-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#rebootInstances-property)

[Pour plus d'informations sur le cycle de vie des EC2 instances Amazon, consultez le manuel *Amazon EC2 User Guide*.](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html)

## Tâches prérequises
<a name="ec2-example-managing-instances-prerequisites"></a>

Pour configurer et exécuter cet exemple, réalisez tout d'abord les tâches ci-après :
+ 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 EC2 instance Amazon. Pour plus d'informations sur la création d' EC2 instances Amazon, consultez [Amazon EC2 Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Instances.html) dans le *guide de EC2 l'utilisateur Amazon* ou [Amazon EC2 Instances](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Instances.html) dans le *guide de EC2 l'utilisateur Amazon*.

## Description des instances
<a name="ec2-example-managing-instances-describing"></a>

Créez un module Node.js nommé `ec2_describeinstances.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon EC2, créez un objet `AWS.EC2` de service. Appelez la `describeInstances` méthode de l'objet de EC2 service Amazon pour obtenir une description détaillée de vos instances. 

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

var params = {
  DryRun: false,
};

// Call EC2 to retrieve policy for selected bucket
ec2.describeInstances(params, function (err, data) {
  if (err) {
    console.log("Error", err.stack);
  } else {
    console.log("Success", JSON.stringify(data));
  }
});
```

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

```
node ec2_describeinstances.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_describeinstances.js).

## Gestion de la surveillance des instances
<a name="ec2-example-managing-instances-monitoring"></a>

Créez un module Node.js nommé `ec2_monitorinstances.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon EC2, créez un objet `AWS.EC2` de service. Ajoutez l'instance IDs des instances pour lesquelles vous souhaitez contrôler la surveillance.

Sur la base de la valeur d'un argument de ligne de commande (`ON`ou`OFF`), appelez soit la `monitorInstances` méthode de l'objet de EC2 service Amazon pour commencer la surveillance détaillée des instances spécifiées, soit appelez la `unmonitorInstances` méthode. Utilisez le paramètre `DryRun` pour vérifier si vous pouvez modifier la surveillance des instances avant de le faire réellement.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

var params = {
  InstanceIds: ["INSTANCE_ID"],
  DryRun: true,
};

if (process.argv[2].toUpperCase() === "ON") {
  // Call EC2 to start monitoring the selected instances
  ec2.monitorInstances(params, function (err, data) {
    if (err && err.code === "DryRunOperation") {
      params.DryRun = false;
      ec2.monitorInstances(params, function (err, data) {
        if (err) {
          console.log("Error", err);
        } else if (data) {
          console.log("Success", data.InstanceMonitorings);
        }
      });
    } else {
      console.log("You don't have permission to change instance monitoring.");
    }
  });
} else if (process.argv[2].toUpperCase() === "OFF") {
  // Call EC2 to stop monitoring the selected instances
  ec2.unmonitorInstances(params, function (err, data) {
    if (err && err.code === "DryRunOperation") {
      params.DryRun = false;
      ec2.unmonitorInstances(params, function (err, data) {
        if (err) {
          console.log("Error", err);
        } else if (data) {
          console.log("Success", data.InstanceMonitorings);
        }
      });
    } else {
      console.log("You don't have permission to change instance monitoring.");
    }
  });
}
```

Pour exécuter l'exemple, entrez ce qui suit sur la ligne de commande, en spécifiant `ON` pour commencer la surveillance détaillée ou `OFF` pour l'interrompre.

```
node ec2_monitorinstances.js ON
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_monitorinstances.js).

## Démarrage et arrêt des instances
<a name="ec2-example-managing-instances-starting-stopping"></a>

Créez un module Node.js nommé `ec2_startstopinstances.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon EC2, créez un objet `AWS.EC2` de service. Ajoutez l'instance IDs des instances que vous souhaitez démarrer ou arrêter.

Sur la base de la valeur d'un argument de ligne de commande (`START`ou`STOP`), appelez soit la `startInstances` méthode de l'objet de EC2 service Amazon pour démarrer les instances spécifiées, soit la `stopInstances` méthode pour les arrêter. Utilisez le paramètre `DryRun` pour vérifier si vous y êtes autorisé avant de tenter de démarrer ou d'arrêter les instances sélectionnées.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

var params = {
  InstanceIds: [process.argv[3]],
  DryRun: true,
};

if (process.argv[2].toUpperCase() === "START") {
  // Call EC2 to start the selected instances
  ec2.startInstances(params, function (err, data) {
    if (err && err.code === "DryRunOperation") {
      params.DryRun = false;
      ec2.startInstances(params, function (err, data) {
        if (err) {
          console.log("Error", err);
        } else if (data) {
          console.log("Success", data.StartingInstances);
        }
      });
    } else {
      console.log("You don't have permission to start instances.");
    }
  });
} else if (process.argv[2].toUpperCase() === "STOP") {
  // Call EC2 to stop the selected instances
  ec2.stopInstances(params, function (err, data) {
    if (err && err.code === "DryRunOperation") {
      params.DryRun = false;
      ec2.stopInstances(params, function (err, data) {
        if (err) {
          console.log("Error", err);
        } else if (data) {
          console.log("Success", data.StoppingInstances);
        }
      });
    } else {
      console.log("You don't have permission to stop instances");
    }
  });
}
```

Pour exécuter l'exemple, entrez ce qui suit sur la ligne de commande, en spécifiant `START` pour démarrer les instances ou `STOP` pour les arrêter.

```
node ec2_startstopinstances.js START INSTANCE_ID
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_startstopinstances.js).

## Redémarrage des instances
<a name="ec2-example-managing-instances-rebooting"></a>

Créez un module Node.js nommé `ec2_rebootinstances.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon EC2, créez un objet EC2 de service Amazon. Ajoutez l'instance IDs des instances que vous souhaitez redémarrer. Appelez la méthode `rebootInstances` de l'objet de service `AWS.EC2` pour redémarrer les instances spécifiées. Utilisez le paramètre `DryRun` pour savoir si vous y êtes autorisé avant de tenter de redémarrer ces instances.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

var params = {
  InstanceIds: ["INSTANCE_ID"],
  DryRun: true,
};

// Call EC2 to reboot instances
ec2.rebootInstances(params, function (err, data) {
  if (err && err.code === "DryRunOperation") {
    params.DryRun = false;
    ec2.rebootInstances(params, function (err, data) {
      if (err) {
        console.log("Error", err);
      } else if (data) {
        console.log("Success", data);
      }
    });
  } else {
    console.log("You don't have permission to reboot instances.");
  }
});
```

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

```
node ec2_rebootinstances.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_rebootinstances.js).

# Utilisation des paires de EC2 clés Amazon
<a name="ec2-example-key-pairs"></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 récupération des informations sur les paires de clés
+ Comment créer une paire de clés pour accéder à une EC2 instance Amazon.
+ Procédure de suppression d'une paire de clés existante.

## Scénario
<a name="ec2-example-key-pairs-scenario"></a>

Amazon EC2 utilise le chiffrement à clé publique pour chiffrer et déchiffrer les informations de connexion. Le chiffrement à clé publique a recours à une clé publique pour chiffrer les données ; le destinataire utilise ensuite la clé privée pour déchiffrer les données. La clé publique et la clé privée constituent une *paire de clés*.

Dans cet exemple, vous utilisez une série de modules Node.js pour effectuer plusieurs opérations de gestion des paires de EC2 clés Amazon. Les modules Node.js utilisent le SDK JavaScript pour gérer les instances en utilisant les méthodes suivantes de la classe EC2 client Amazon :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#createKeyPair-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#createKeyPair-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#deleteKeyPair-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#deleteKeyPair-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeKeyPairs-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeKeyPairs-property)

Pour plus d'informations sur les paires de EC2 clés Amazon, consultez [Amazon EC2 Key Pairs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) dans le *Amazon EC2 User Guide* ou [Amazon EC2 Key Pairs and Windows Instances](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-key-pairs.html) dans le *Amazon EC2 User Guide*.

## Tâches prérequises
<a name="ec2-example-key-pairs-prerequisites"></a>

Pour configurer et exécuter cet exemple, réalisez tout d'abord les tâches ci-après :
+ 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).

## Description de vos paires de clés
<a name="ec2-example-key-pairs-describing"></a>

Créez un module Node.js nommé `ec2_describekeypairs.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon EC2, créez un objet `AWS.EC2` de service. Créez un objet JSON vide qui contiendra les paramètres requis par la méthode `describeKeyPairs` pour renvoyer les descriptions de toutes les paires de clés. Vous pouvez également fournir une liste des noms de paires de clés dans la portion `KeyName` des paramètres du fichier JSON à la méthode `describeKeyPairs`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

// Retrieve key pair descriptions; no params needed
ec2.describeKeyPairs(function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", JSON.stringify(data.KeyPairs));
  }
});
```

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

```
node ec2_describekeypairs.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_describekeypairs.js).

## Création d'une paire de clés
<a name="ec2-example-key-pairs-creating"></a>

Chaque paire de clés doit avoir un nom. Amazon EC2 associe la clé publique au nom que vous spécifiez comme nom de clé. Créez un module Node.js nommé `ec2_createkeypair.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon EC2, créez un objet `AWS.EC2` de service. Créez les paramètres JSON afin de spécifier le nom de la paire de clés, puis transmettez-les pour appeler la méthode `createKeyPair`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

var params = {
  KeyName: "KEY_PAIR_NAME",
};

// Create the key pair
ec2.createKeyPair(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log(JSON.stringify(data));
  }
});
```

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

```
node ec2_createkeypair.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_createkeypair.js).

## Suppression d'une paire de clés
<a name="ec2-example-key-pairs-deleting"></a>

Créez un module Node.js nommé `ec2_deletekeypair.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon EC2, créez un objet `AWS.EC2` de service. Créez les paramètres JSON pour spécifier le nom de la paire de clés à supprimer. Ensuite, appelez la méthode `deleteKeyPair`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

var params = {
  KeyName: "KEY_PAIR_NAME",
};

// Delete the key pair
ec2.deleteKeyPair(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Key Pair Deleted");
  }
});
```

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

```
node ec2_deletekeypair.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_deletekeypair.js).

# Utilisation des régions et des zones de disponibilité avec Amazon EC2
<a name="ec2-example-regions-availability-zones"></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 récupération des descriptions pour les régions et les zones de disponibilité.

## Scénario
<a name="ec2-example-regions-availability-zones-scenario"></a>

Amazon EC2 est hébergé sur plusieurs sites dans le monde entier. Ces emplacements sont composés de régions et de zones de disponibilité. Chaque région constitue une zone géographique séparée. Chaque région se compose de plusieurs emplacements isolés appelés *zones de disponibilité*. Amazon EC2 permet de placer des instances et des données sur plusieurs sites. 

Dans cet exemple, vous utilisez plusieurs modules Node.js pour récupérer des détails sur les régions et les zones de disponibilité. Les modules Node.js utilisent le SDK JavaScript pour gérer les instances en utilisant les méthodes suivantes de la classe EC2 client Amazon :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeAvailabilityZones-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeAvailabilityZones-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeRegions-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeRegions-property)

Pour plus d'informations sur les régions et les zones de disponibilité, consultez [Régions et zones de disponibilité](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html) dans le *guide de EC2 l'utilisateur Amazon* ou [Régions et zones de disponibilité](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/using-regions-availability-zones.html) dans le *guide de EC2 l'utilisateur Amazon*.

## Tâches prérequises
<a name="ec2-example-regions-availability-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).

## Description des régions et zones de disponibilité
<a name="ec2-example-regions-availability-describing"></a>

Créez un module Node.js nommé `ec2_describeregionsandzones.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon EC2, créez un objet `AWS.EC2` de service. Créez un objet JSON vide à transmettre en tant que paramètres, qui renvoie toutes les descriptions disponibles. Appelez ensuite les méthodes `describeRegions` et `describeAvailabilityZones`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

var params = {};

// Retrieves all regions/endpoints that work with EC2
ec2.describeRegions(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Regions: ", data.Regions);
  }
});

// Retrieves availability zones only for region of the ec2 service object
ec2.describeAvailabilityZones(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Availability Zones: ", data.AvailabilityZones);
  }
});
```

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

```
node ec2_describeregionsandzones.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_describeregionsandzones.js).

# Travailler avec des groupes de sécurité sur Amazon EC2
<a name="ec2-example-security-groups"></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 récupération des informations sur vos groupes de sécurité.
+ Comment créer un groupe de sécurité pour accéder à une EC2 instance Amazon.
+ Procédure de suppression d'un groupe de sécurité existant.

## Scénario
<a name="ec2-example-security-groups-scenario"></a>

Un groupe EC2 de sécurité Amazon agit comme un pare-feu virtuel qui contrôle le trafic d'une ou de plusieurs instances. Vous ajoutez des règles à chaque groupe de sécurité pour autoriser le trafic vers ou depuis ses instances associées. Vous pouvez modifier les règles d'un groupe de sécurité à tout moment. Les nouvelles règles sont appliquées automatiquement à toutes les instances associées au groupe de sécurité.

Dans cet exemple, vous utilisez une série de modules Node.js pour effectuer plusieurs EC2 opérations Amazon impliquant des groupes de sécurité. Les modules Node.js utilisent le SDK JavaScript pour gérer les instances en utilisant les méthodes suivantes de la classe EC2 client Amazon :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeSecurityGroups-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeSecurityGroups-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#authorizeSecurityGroupIngress-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#authorizeSecurityGroupIngress-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#createSecurityGroup-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#createSecurityGroup-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeVpcs-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeVpcs-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#deleteSecurityGroup-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#deleteSecurityGroup-property)

Pour plus d'informations sur les groupes EC2 de sécurité Amazon, consultez [ EC2 Amazon Security Groups for Linux Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html) dans le *Amazon EC2 User Guide* ou [Amazon EC2 Security Groups for Windows Instances](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/using-network-security.html) dans le *Amazon EC2 User Guide*.

## Tâches prérequises
<a name="ec2-example-security-groups-prerequisites"></a>

Pour configurer et exécuter cet exemple, réalisez tout d'abord les tâches ci-après :
+ 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).

## Description de vos groupes de sécurité
<a name="ec2-example-security-groups-describing"></a>

Créez un module Node.js nommé `ec2_describesecuritygroups.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon EC2, créez un objet `AWS.EC2` de service. Créez un objet JSON à transmettre en tant que paramètres, y compris le groupe IDs pour les groupes de sécurité que vous souhaitez décrire. Appelez ensuite la `describeSecurityGroups` méthode de l'objet de EC2 service Amazon.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

var params = {
  GroupIds: ["SECURITY_GROUP_ID"],
};

// Retrieve security group descriptions
ec2.describeSecurityGroups(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", JSON.stringify(data.SecurityGroups));
  }
});
```

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

```
node ec2_describesecuritygroups.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_describesecuritygroups.js).

## Création d'un groupe et de règles de sécurité
<a name="ec2-example-security-groups-creating"></a>

Créez un module Node.js nommé `ec2_createsecuritygroup.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon EC2, créez un objet `AWS.EC2` de service. Créez un objet JSON pour les paramètres qui spécifient le nom du groupe de sécurité, une description et l'ID du VPC. Transmettez les paramètres à la méthode `createSecurityGroup`.

Après avoir créé le groupe de sécurité, vous pouvez définir des règles autorisant le trafic entrant. Créez un objet JSON pour les paramètres qui spécifient le protocole IP et les ports entrants sur lesquels l' EC2 instance Amazon recevra le trafic. Transmettez les paramètres à la méthode `authorizeSecurityGroupIngress`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Load credentials and set region from JSON file
AWS.config.update({ region: "REGION" });

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

// Variable to hold a ID of a VPC
var vpc = null;

// Retrieve the ID of a VPC
ec2.describeVpcs(function (err, data) {
  if (err) {
    console.log("Cannot retrieve a VPC", err);
  } else {
    vpc = data.Vpcs[0].VpcId;
    var paramsSecurityGroup = {
      Description: "DESCRIPTION",
      GroupName: "SECURITY_GROUP_NAME",
      VpcId: vpc,
    };
    // Create the instance
    ec2.createSecurityGroup(paramsSecurityGroup, function (err, data) {
      if (err) {
        console.log("Error", err);
      } else {
        var SecurityGroupId = data.GroupId;
        console.log("Success", SecurityGroupId);
        var paramsIngress = {
          GroupId: "SECURITY_GROUP_ID",
          IpPermissions: [
            {
              IpProtocol: "tcp",
              FromPort: 80,
              ToPort: 80,
              IpRanges: [{ CidrIp: "0.0.0.0/0" }],
            },
            {
              IpProtocol: "tcp",
              FromPort: 22,
              ToPort: 22,
              IpRanges: [{ CidrIp: "0.0.0.0/0" }],
            },
          ],
        };
        ec2.authorizeSecurityGroupIngress(paramsIngress, function (err, data) {
          if (err) {
            console.log("Error", err);
          } else {
            console.log("Ingress Successfully Set", data);
          }
        });
      }
    });
  }
});
```

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

```
node ec2_createsecuritygroup.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_createsecuritygroup.js).

## Suppression d'un groupe de sécurité
<a name="ec2-example-security-groups-deleting"></a>

Créez un module Node.js nommé `ec2_deletesecuritygroup.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon EC2, créez un objet `AWS.EC2` de service. Créez les paramètres JSON pour spécifier le nom du groupe de sécurité à supprimer. Ensuite, appelez la méthode `deleteSecurityGroup`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

var params = {
  GroupId: "SECURITY_GROUP_ID",
};

// Delete the security group
ec2.deleteSecurityGroup(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Security Group Deleted");
  }
});
```

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

```
node ec2_deletesecuritygroup.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_deletesecuritygroup.js).

# Utilisation d'adresses IP élastiques sur Amazon EC2
<a name="ec2-example-elastic-ip-addresses"></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 récupération des descriptions de vos adresses IP Elastic.
+ Procédure d'attribution et de libération d'une adresse IP Elastic.
+ Comment associer une adresse IP élastique à une EC2 instance Amazon.

## Scénario
<a name="ec2-example-elastic-ip-addresses-scenario"></a>

Une *adresse IP Elastic* est une adresse IP statique conçue pour le cloud computing dynamique. Une adresse IP élastique est associée à votre AWS compte. Il s'agit d'une adresse IP publique accessible depuis Internet. Si votre instance ne dispose pas d'une adresse IP publique, vous pouvez associer une adresse IP Elastic à votre instance pour établir la communication avec Internet.

Dans cet exemple, vous utilisez une série de modules Node.js pour effectuer plusieurs EC2 opérations Amazon impliquant des adresses IP élastiques. Les modules Node.js utilisent le SDK JavaScript pour gérer les adresses IP élastiques en utilisant les méthodes suivantes de la classe EC2 client Amazon :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeAddresses-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeAddresses-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#allocateAddress-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#allocateAddress-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#associateAddress-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#associateAddress-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#releaseAddress-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#releaseAddress-property)

Pour plus d'informations sur les adresses IP élastiques sur Amazon EC2, consultez les [adresses IP élastiques](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) dans le *guide de EC2 l'utilisateur Amazon* ou les [adresses IP élastiques](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-ip-addresses-eip.html) dans le *guide de EC2 l'utilisateur Amazon*.

## Tâches prérequises
<a name="ec2-example-elastic-ip-addresses-prerequisites"></a>

Pour configurer et exécuter cet exemple, réalisez tout d'abord les tâches ci-après :
+ 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 EC2 instance Amazon. Pour plus d'informations sur la création d' EC2 instances Amazon, consultez [Amazon EC2 Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Instances.html) dans le *guide de EC2 l'utilisateur Amazon* ou [Amazon EC2 Instances](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Instances.html) dans le *guide de EC2 l'utilisateur Amazon*.

## Description des adresses IP Elastic
<a name="ec2-example-elastic-ip-addresses-describing"></a>

Créez un module Node.js nommé `ec2_describeaddresses.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon EC2, créez un objet `AWS.EC2` de service. Créez un objet JSON à transmettre en tant que paramètres, en filtrant les adresses renvoyées selon celles de votre VPC. Pour récupérer les descriptions de toutes vos adresses IP Elastic, il suffit d'omettre un filtre de l'objet JSON des paramètres. Appelez ensuite la `describeAddresses` méthode de l'objet de EC2 service Amazon.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

var params = {
  Filters: [{ Name: "domain", Values: ["vpc"] }],
};

// Retrieve Elastic IP address descriptions
ec2.describeAddresses(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", JSON.stringify(data.Addresses));
  }
});
```

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

```
node ec2_describeaddresses.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_describeaddresses.js).

## Allocation et association d'une adresse IP élastique à une instance Amazon EC2
<a name="ec2-example-elastic-ip-addresses-allocating-associating"></a>

Créez un module Node.js nommé `ec2_allocateaddress.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon EC2, créez un objet `AWS.EC2` de service. Créez un objet JSON contenant les paramètres utilisés pour attribuer une adresse IP Elastic qui, dans le cas présent, spécifie que le `Domain` est un VPC. Appelez la `allocateAddress` méthode de l'objet de EC2 service Amazon.

Si l'appel aboutit, le paramètre `data` envoyé dans la fonction de rappel dispose d'une propriété `AllocationId` qui identifie l'adresse IP Elastic attribuée.

Créez un objet JSON pour les paramètres utilisés pour associer une adresse IP élastique à une EC2 instance Amazon, y compris l'adresse `AllocationId` provenant de la nouvelle adresse attribuée et `InstanceId` celle de l' EC2 instance Amazon. Appelez ensuite la `associateAddresses` méthode de l'objet de EC2 service Amazon.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

var paramsAllocateAddress = {
  Domain: "vpc",
};

// Allocate the Elastic IP address
ec2.allocateAddress(paramsAllocateAddress, function (err, data) {
  if (err) {
    console.log("Address Not Allocated", err);
  } else {
    console.log("Address allocated:", data.AllocationId);
    var paramsAssociateAddress = {
      AllocationId: data.AllocationId,
      InstanceId: "INSTANCE_ID",
    };
    // Associate the new Elastic IP address with an EC2 instance
    ec2.associateAddress(paramsAssociateAddress, function (err, data) {
      if (err) {
        console.log("Address Not Associated", err);
      } else {
        console.log("Address associated:", data.AssociationId);
      }
    });
  }
});
```

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

```
node ec2_allocateaddress.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_allocateaddress.js).

## Libération d'une adresse IP Elastic
<a name="ec2-example-elastic-ip-addresses-releasing"></a>

Créez un module Node.js nommé `ec2_releaseaddress.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon EC2, créez un objet `AWS.EC2` de service. Créez un objet JSON contenant les paramètres utilisés pour libérer une adresse IP Elastic qui, dans le cas présent, spécifie l'`AllocationId` de l'adresse IP Elastic. La publication d'une adresse IP élastique la dissocie également de toute EC2 instance Amazon. Appelez la `releaseAddress` méthode de l'objet de EC2 service Amazon.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

var paramsReleaseAddress = {
  AllocationId: "ALLOCATION_ID",
};

// Disassociate the Elastic IP address from EC2 instance
ec2.releaseAddress(paramsReleaseAddress, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Address released");
  }
});
```

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

```
node ec2_releaseaddress.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_releaseaddress.js).

# AWS Elemental MediaConvert Exemples
<a name="emc-examples"></a>

AWS Elemental MediaConvert est un service de transcodage vidéo basé sur des fichiers doté de fonctionnalités adaptées à la diffusion. Vous pouvez l'utiliser pour créer des ressources destinées à la diffusion et à la diffusion video-on-demand (VOD) sur Internet. Pour plus d’informations, consultez le [Guide de l’utilisateur *AWS Elemental MediaConvert *](https://docs.aws.amazon.com/mediaconvert/latest/ug/).

L' JavaScript API pour MediaConvert est exposée via la classe `AWS.MediaConvert` client. Pour plus d'informations, consultez [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html)la référence de l'API.

**Topics**
+ [Création et gestion de tâches de transcodage dans MediaConvert](emc-examples-jobs.md)
+ [Utilisation de modèles de Job dans MediaConvert](emc-examples-templates.md)

# Création et gestion de tâches de transcodage dans MediaConvert
<a name="emc-examples-jobs"></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 :**
+ Comment créer des tâches de transcodage dans. MediaConvert
+ Procédure d'annulation d'une tâche de transcodage.
+ Procédure de récupération de l'objet JSON pour une tâche de transcodage terminée.
+ Procédure de récupération d'un tableau JSON pour jusqu'à 20 tâches créées en dernier.

## Scénario
<a name="emc-examples-jobs-scenario"></a>

Dans cet exemple, vous utilisez un module Node.js à appeler pour MediaConvert créer et gérer des tâches de transcodage. Le code utilise le SDK pour ce JavaScript faire en utilisant les méthodes suivantes de la classe MediaConvert client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#createJob-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#createJob-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#cancelJob-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#cancelJob-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#getJob-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#getJob-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#listJobs-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#listJobs-property)

## Tâches prérequises
<a name="emc-examples-jobs-prerequisites"></a>

Pour configurer et exécuter cet exemple, réalisez tout d'abord les tâches ci-après :
+ Installez Node.js. Pour plus d'informations, 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 et configurez des compartiments Amazon S3 qui fournissent du stockage pour les fichiers d'entrée et de sortie des tâches. Pour plus de détails, voir [Création d'un espace de stockage pour les fichiers](https://docs.aws.amazon.com/mediaconvert/latest/ug/set-up-file-locations.html) dans le *guide de AWS Elemental MediaConvert l'utilisateur*.
+ Téléchargez la vidéo d'entrée dans le compartiment Amazon S3 que vous avez configuré pour le stockage d'entrée. *Pour obtenir la liste des codecs et conteneurs vidéo d'entrée pris en charge, consultez la section Codecs et conteneurs [d'entrée pris en charge dans le guide de l'utilisateur](https://docs.aws.amazon.com/mediaconvert/latest/ug/reference-codecs-containers-input.html).AWS Elemental MediaConvert *
+ Créez un rôle IAM qui donne MediaConvert accès à vos fichiers d'entrée et aux compartiments Amazon S3 dans lesquels vos fichiers de sortie sont stockés. Pour plus de détails, consultez la section [Configurer les autorisations IAM](https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html) dans le *guide de l'AWS Elemental MediaConvert utilisateur*.

## Définition d'une tâche de transcodage simple
<a name="emc-examples-jobs-spec"></a>

Créez un module Node.js nommé `emc_createjob.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Créez le code JSON qui définit les paramètres de tâche de transcodage.

Ces paramètres sont assez détaillés. Vous pouvez utiliser la [AWS Elemental MediaConvert console](https://console.aws.amazon.com/mediaconvert/) pour générer les paramètres de tâche JSON en choisissant vos paramètres de tâche dans la console, puis en choisissant **Afficher le JSON de la tâche** en bas de la section **Job**. Cet exemple illustre le code JSON pour une tâche simple.

```
var params = {
  Queue: "JOB_QUEUE_ARN",
  UserMetadata: {
    Customer: "Amazon",
  },
  Role: "IAM_ROLE_ARN",
  Settings: {
    OutputGroups: [
      {
        Name: "File Group",
        OutputGroupSettings: {
          Type: "FILE_GROUP_SETTINGS",
          FileGroupSettings: {
            Destination: "s3://OUTPUT_BUCKET_NAME/",
          },
        },
        Outputs: [
          {
            VideoDescription: {
              ScalingBehavior: "DEFAULT",
              TimecodeInsertion: "DISABLED",
              AntiAlias: "ENABLED",
              Sharpness: 50,
              CodecSettings: {
                Codec: "H_264",
                H264Settings: {
                  InterlaceMode: "PROGRESSIVE",
                  NumberReferenceFrames: 3,
                  Syntax: "DEFAULT",
                  Softness: 0,
                  GopClosedCadence: 1,
                  GopSize: 90,
                  Slices: 1,
                  GopBReference: "DISABLED",
                  SlowPal: "DISABLED",
                  SpatialAdaptiveQuantization: "ENABLED",
                  TemporalAdaptiveQuantization: "ENABLED",
                  FlickerAdaptiveQuantization: "DISABLED",
                  EntropyEncoding: "CABAC",
                  Bitrate: 5000000,
                  FramerateControl: "SPECIFIED",
                  RateControlMode: "CBR",
                  CodecProfile: "MAIN",
                  Telecine: "NONE",
                  MinIInterval: 0,
                  AdaptiveQuantization: "HIGH",
                  CodecLevel: "AUTO",
                  FieldEncoding: "PAFF",
                  SceneChangeDetect: "ENABLED",
                  QualityTuningLevel: "SINGLE_PASS",
                  FramerateConversionAlgorithm: "DUPLICATE_DROP",
                  UnregisteredSeiTimecode: "DISABLED",
                  GopSizeUnits: "FRAMES",
                  ParControl: "SPECIFIED",
                  NumberBFramesBetweenReferenceFrames: 2,
                  RepeatPps: "DISABLED",
                  FramerateNumerator: 30,
                  FramerateDenominator: 1,
                  ParNumerator: 1,
                  ParDenominator: 1,
                },
              },
              AfdSignaling: "NONE",
              DropFrameTimecode: "ENABLED",
              RespondToAfd: "NONE",
              ColorMetadata: "INSERT",
            },
            AudioDescriptions: [
              {
                AudioTypeControl: "FOLLOW_INPUT",
                CodecSettings: {
                  Codec: "AAC",
                  AacSettings: {
                    AudioDescriptionBroadcasterMix: "NORMAL",
                    RateControlMode: "CBR",
                    CodecProfile: "LC",
                    CodingMode: "CODING_MODE_2_0",
                    RawFormat: "NONE",
                    SampleRate: 48000,
                    Specification: "MPEG4",
                    Bitrate: 64000,
                  },
                },
                LanguageCodeControl: "FOLLOW_INPUT",
                AudioSourceName: "Audio Selector 1",
              },
            ],
            ContainerSettings: {
              Container: "MP4",
              Mp4Settings: {
                CslgAtom: "INCLUDE",
                FreeSpaceBox: "EXCLUDE",
                MoovPlacement: "PROGRESSIVE_DOWNLOAD",
              },
            },
            NameModifier: "_1",
          },
        ],
      },
    ],
    AdAvailOffset: 0,
    Inputs: [
      {
        AudioSelectors: {
          "Audio Selector 1": {
            Offset: 0,
            DefaultSelection: "NOT_DEFAULT",
            ProgramSelection: 1,
            SelectorType: "TRACK",
            Tracks: [1],
          },
        },
        VideoSelector: {
          ColorSpace: "FOLLOW",
        },
        FilterEnable: "AUTO",
        PsiControl: "USE_PSI",
        FilterStrength: 0,
        DeblockFilter: "DISABLED",
        DenoiseFilter: "DISABLED",
        TimecodeSource: "EMBEDDED",
        FileInput: "s3://INPUT_BUCKET_AND_FILE_NAME",
      },
    ],
    TimecodeConfig: {
      Source: "EMBEDDED",
    },
  },
};
```

## Création d'une tâche de transcodage
<a name="emc-examples-jobs-create"></a>

Après avoir créé l'objet JSON des paramètres de tâche, appelez la méthode `createJob` en créant une promesse pour appeler un objet de service `AWS.MediaConvert` et en transmettant les paramètres. Traitez ensuite l'élément response dans le rappel de promesse. L'ID de la tâche créée est renvoyé dans les données `data` de la réponse.

```
// Create a promise on a MediaConvert object
var endpointPromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" })
  .createJob(params)
  .promise();

// Handle promise's fulfilled/rejected status
endpointPromise.then(
  function (data) {
    console.log("Job created! ", data);
  },
  function (err) {
    console.log("Error", err);
  }
);
```

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

```
node emc_createjob.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/mediaconvert/emc_createjob.js).

## Annulation d'une tâche de transcodage
<a name="emc-examples-jobs-cancel"></a>

Créez un module Node.js nommé `emc_canceljob.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Créez l'objet JSON qui inclut l'ID de la tâche à annuler. Appelez ensuite la méthode `cancelJob` en créant une promesse pour appeler un objet de service `AWS.MediaConvert`, en transmettant les paramètres. Traitez la réponse dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the Region
AWS.config.update({ region: "us-west-2" });
// Set MediaConvert to customer endpoint
AWS.config.mediaconvert = { endpoint: "ACCOUNT_ENDPOINT" };

var params = {
  Id: "JOB_ID" /* required */,
};

// Create a promise on a MediaConvert object
var endpointPromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" })
  .cancelJob(params)
  .promise();

// Handle promise's fulfilled/rejected status
endpointPromise.then(
  function (data) {
    console.log("Job  " + params.Id + " is canceled");
  },
  function (err) {
    console.log("Error", err);
  }
);
```

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

```
node ec2_canceljob.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/mediaconvert/emc_canceljob.js).

## Affichage de la liste des tâches de transcodage récentes
<a name="emc-examples-jobs-listing"></a>

Créez un module Node.js nommé `emc_listjobs.js`. Veillez à configurer le kit SDK comme indiqué précédemment.

Créez l'objet JSON des paramètres, en incluant les valeurs qui spécifient si vous souhaitez trier la liste dans l'ordre `ASCENDING` (croissant) ou `DESCENDING` (décroissant), l'ARN de la file d'attente de tâches à vérifier et le statut des tâches à inclure. Appelez ensuite la méthode `listJobs` en créant une promesse pour appeler un objet de service `AWS.MediaConvert`, en transmettant les paramètres. Traitez la réponse dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the Region
AWS.config.update({ region: "us-west-2" });
// Set the customer endpoint
AWS.config.mediaconvert = { endpoint: "ACCOUNT_ENDPOINT" };

var params = {
  MaxResults: 10,
  Order: "ASCENDING",
  Queue: "QUEUE_ARN",
  Status: "SUBMITTED",
};

// Create a promise on a MediaConvert object
var endpointPromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" })
  .listJobs(params)
  .promise();

// Handle promise's fulfilled/rejected status
endpointPromise.then(
  function (data) {
    console.log("Jobs: ", data);
  },
  function (err) {
    console.log("Error", err);
  }
);
```

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

```
node emc_listjobs.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/mediaconvert/emc_listjobs.js).

# Utilisation de modèles de Job dans MediaConvert
<a name="emc-examples-templates"></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 :**
+ Comment créer des modèles de MediaConvert tâches
+ Procédure d'utilisation d'un modèle de tâche pour créer une tâche de transcodage.
+ Procédure permettant de répertorier tous vos modèles de tâche.
+ Procédure de suppression des modèles de tâche.

## Scénario
<a name="emc-examples-templates-scenario"></a>

Le JSON requis pour créer une tâche de transcodage dans MediaConvert est détaillé et contient un grand nombre de paramètres. Vous pouvez simplifier considérablement la création des tâches en enregistrant les paramètres que vous savez appropriés dans un modèle de tâche, que vous utiliserez par la suite pour créer d'autres tâches. Dans cet exemple, vous utilisez un module Node.js à appeler MediaConvert pour créer, utiliser et gérer des modèles de tâches. Le code utilise le SDK pour ce JavaScript faire en utilisant les méthodes suivantes de la classe MediaConvert client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#createJobTemplate-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#createJobTemplate-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#createJob-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#createJob-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#deleteJobTemplate-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#deleteJobTemplate-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#listJobTemplates-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/MediaConvert.html#listJobTemplates-property)

## Tâches prérequises
<a name="emc-example-templates-prerequisites"></a>

Pour configurer et exécuter cet exemple, réalisez tout d'abord les tâches ci-après :
+ Installez Node.js. Pour plus d'informations, 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 un rôle IAM qui donne MediaConvert accès à vos fichiers d'entrée et aux compartiments Amazon S3 dans lesquels vos fichiers de sortie sont stockés. Pour plus de détails, consultez la section [Configurer les autorisations IAM](https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html) dans le *guide de l'AWS Elemental MediaConvert utilisateur*.

## Création d'un modèle de tâche
<a name="emc-examples-templates-create"></a>

Créez un module Node.js nommé `emc_create_jobtemplate.js`. Veillez à configurer le kit SDK comme indiqué précédemment.

Spécifiez l'objet JSON des paramètres pour la création du modèle. Vous pouvez utiliser la plupart des paramètres JSON issus d'une tâche antérieure réussie afin de spécifier les valeurs `Settings` du modèle. Cet exemple utilise les paramètres de tâche de [Création et gestion de tâches de transcodage dans MediaConvert](emc-examples-jobs.md).

Appelez la méthode `createJobTemplate` en créant une promesse pour appeler un objet de service `AWS.MediaConvert`, en transmettant les paramètres. Traitez ensuite l'élément response dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the Region
AWS.config.update({ region: "us-west-2" });
// Set the custom endpoint for your account
AWS.config.mediaconvert = { endpoint: "ACCOUNT_ENDPOINT" };

var params = {
  Category: "YouTube Jobs",
  Description: "Final production transcode",
  Name: "DemoTemplate",
  Queue: "JOB_QUEUE_ARN",
  Settings: {
    OutputGroups: [
      {
        Name: "File Group",
        OutputGroupSettings: {
          Type: "FILE_GROUP_SETTINGS",
          FileGroupSettings: {
            Destination: "s3://BUCKET_NAME/",
          },
        },
        Outputs: [
          {
            VideoDescription: {
              ScalingBehavior: "DEFAULT",
              TimecodeInsertion: "DISABLED",
              AntiAlias: "ENABLED",
              Sharpness: 50,
              CodecSettings: {
                Codec: "H_264",
                H264Settings: {
                  InterlaceMode: "PROGRESSIVE",
                  NumberReferenceFrames: 3,
                  Syntax: "DEFAULT",
                  Softness: 0,
                  GopClosedCadence: 1,
                  GopSize: 90,
                  Slices: 1,
                  GopBReference: "DISABLED",
                  SlowPal: "DISABLED",
                  SpatialAdaptiveQuantization: "ENABLED",
                  TemporalAdaptiveQuantization: "ENABLED",
                  FlickerAdaptiveQuantization: "DISABLED",
                  EntropyEncoding: "CABAC",
                  Bitrate: 5000000,
                  FramerateControl: "SPECIFIED",
                  RateControlMode: "CBR",
                  CodecProfile: "MAIN",
                  Telecine: "NONE",
                  MinIInterval: 0,
                  AdaptiveQuantization: "HIGH",
                  CodecLevel: "AUTO",
                  FieldEncoding: "PAFF",
                  SceneChangeDetect: "ENABLED",
                  QualityTuningLevel: "SINGLE_PASS",
                  FramerateConversionAlgorithm: "DUPLICATE_DROP",
                  UnregisteredSeiTimecode: "DISABLED",
                  GopSizeUnits: "FRAMES",
                  ParControl: "SPECIFIED",
                  NumberBFramesBetweenReferenceFrames: 2,
                  RepeatPps: "DISABLED",
                  FramerateNumerator: 30,
                  FramerateDenominator: 1,
                  ParNumerator: 1,
                  ParDenominator: 1,
                },
              },
              AfdSignaling: "NONE",
              DropFrameTimecode: "ENABLED",
              RespondToAfd: "NONE",
              ColorMetadata: "INSERT",
            },
            AudioDescriptions: [
              {
                AudioTypeControl: "FOLLOW_INPUT",
                CodecSettings: {
                  Codec: "AAC",
                  AacSettings: {
                    AudioDescriptionBroadcasterMix: "NORMAL",
                    RateControlMode: "CBR",
                    CodecProfile: "LC",
                    CodingMode: "CODING_MODE_2_0",
                    RawFormat: "NONE",
                    SampleRate: 48000,
                    Specification: "MPEG4",
                    Bitrate: 64000,
                  },
                },
                LanguageCodeControl: "FOLLOW_INPUT",
                AudioSourceName: "Audio Selector 1",
              },
            ],
            ContainerSettings: {
              Container: "MP4",
              Mp4Settings: {
                CslgAtom: "INCLUDE",
                FreeSpaceBox: "EXCLUDE",
                MoovPlacement: "PROGRESSIVE_DOWNLOAD",
              },
            },
            NameModifier: "_1",
          },
        ],
      },
    ],
    AdAvailOffset: 0,
    Inputs: [
      {
        AudioSelectors: {
          "Audio Selector 1": {
            Offset: 0,
            DefaultSelection: "NOT_DEFAULT",
            ProgramSelection: 1,
            SelectorType: "TRACK",
            Tracks: [1],
          },
        },
        VideoSelector: {
          ColorSpace: "FOLLOW",
        },
        FilterEnable: "AUTO",
        PsiControl: "USE_PSI",
        FilterStrength: 0,
        DeblockFilter: "DISABLED",
        DenoiseFilter: "DISABLED",
        TimecodeSource: "EMBEDDED",
      },
    ],
    TimecodeConfig: {
      Source: "EMBEDDED",
    },
  },
};

// Create a promise on a MediaConvert object
var templatePromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" })
  .createJobTemplate(params)
  .promise();

// Handle promise's fulfilled/rejected status
templatePromise.then(
  function (data) {
    console.log("Success!", data);
  },
  function (err) {
    console.log("Error", err);
  }
);
```

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

```
node emc_create_jobtemplate.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/mediaconvert/emc_create_jobtemplate.js).

## Création d'une tâche de transcodage à partir d'un modèle de tâche
<a name="emc-examples-templates-createjob"></a>

Créez un module Node.js nommé `emc_template_createjob.js`. Veillez à configurer le kit SDK comme indiqué précédemment.

Créez l'objet JSON des paramètres de création de tâche, en incluant le nom du modèle de tâche à utiliser et les `Settings` à utiliser propres à la tâche que vous créez. Appelez ensuite la méthode `createJobs` en créant une promesse pour appeler un objet de service `AWS.MediaConvert`, en transmettant les paramètres. Traitez la réponse dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the Region
AWS.config.update({ region: "us-west-2" });
// Set the custom endpoint for your account
AWS.config.mediaconvert = { endpoint: "ACCOUNT_ENDPOINT" };

var params = {
  Queue: "QUEUE_ARN",
  JobTemplate: "TEMPLATE_NAME",
  Role: "ROLE_ARN",
  Settings: {
    Inputs: [
      {
        AudioSelectors: {
          "Audio Selector 1": {
            Offset: 0,
            DefaultSelection: "NOT_DEFAULT",
            ProgramSelection: 1,
            SelectorType: "TRACK",
            Tracks: [1],
          },
        },
        VideoSelector: {
          ColorSpace: "FOLLOW",
        },
        FilterEnable: "AUTO",
        PsiControl: "USE_PSI",
        FilterStrength: 0,
        DeblockFilter: "DISABLED",
        DenoiseFilter: "DISABLED",
        TimecodeSource: "EMBEDDED",
        FileInput: "s3://BUCKET_NAME/FILE_NAME",
      },
    ],
  },
};

// Create a promise on a MediaConvert object
var templateJobPromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" })
  .createJob(params)
  .promise();

// Handle promise's fulfilled/rejected status
templateJobPromise.then(
  function (data) {
    console.log("Success! ", data);
  },
  function (err) {
    console.log("Error", err);
  }
);
```

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

```
node emc_template_createjob.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/mediaconvert/emc_template_createjob.js).

## Liste de vos modèles de tâche
<a name="emc-examples-templates-listing"></a>

Créez un module Node.js nommé `emc_listtemplates.js`. Veillez à configurer le kit SDK comme indiqué précédemment.

Créez un objet afin de transmettre les paramètres de demande pour la méthode `listTemplates` de la classe client `AWS.MediaConvert`. Incluez les valeurs permettant de déterminer quels modèles répertorier (`NAME`, `CREATION DATE`, `SYSTEM`), combien de modèles répertorier et leur ordre de tri. Pour appeler la `listTemplates` méthode, créez une promesse pour appeler un objet de MediaConvert service en transmettant les paramètres. Traitez ensuite l'élément response dans le rappel de promesse. 

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the Region
AWS.config.update({ region: "us-west-2" });
// Set the customer endpoint
AWS.config.mediaconvert = { endpoint: "ACCOUNT_ENDPOINT" };

var params = {
  ListBy: "NAME",
  MaxResults: 10,
  Order: "ASCENDING",
};

// Create a promise on a MediaConvert object
var listTemplatesPromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" })
  .listJobTemplates(params)
  .promise();

// Handle promise's fulfilled/rejected status
listTemplatesPromise.then(
  function (data) {
    console.log("Success ", data);
  },
  function (err) {
    console.log("Error", err);
  }
);
```

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

```
node emc_listtemplates.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/mediaconvert/emc_template_createjob.js).

## Suppression d'un modèle de tâche
<a name="emc-examples-templates-delete"></a>

Créez un module Node.js nommé `emc_deletetemplate.js`. Veillez à configurer le kit SDK comme indiqué précédemment.

Créez un objet qui permettra de transmettre le nom du modèle de tâche que vous souhaitez supprimer en tant que paramètres de la méthode `deleteJobTemplate` de la classe client `AWS.MediaConvert`. Pour appeler la `deleteJobTemplate` méthode, créez une promesse pour appeler un objet de MediaConvert service en transmettant les paramètres. Traitez la réponse dans le rappel de promesse. 

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the Region
AWS.config.update({ region: "us-west-2" });
// Set the customer endpoint
AWS.config.mediaconvert = { endpoint: "ACCOUNT_ENDPOINT" };

var params = {
  Name: "TEMPLATE_NAME",
};

// Create a promise on a MediaConvert object
var deleteTemplatePromise = new AWS.MediaConvert({ apiVersion: "2017-08-29" })
  .deleteJobTemplate(params)
  .promise();

// Handle promise's fulfilled/rejected status
deleteTemplatePromise.then(
  function (data) {
    console.log("Success ", data);
  },
  function (err) {
    console.log("Error", err);
  }
);
```

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

```
node emc_deletetemplate.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/mediaconvert/emc_deletetemplate.js).

# AWS Exemples IAM
<a name="iam-examples"></a>

Gestion des identités et des accès AWS (IAM) est un service Web qui permet aux clients d'Amazon Web Services de gérer les utilisateurs et les autorisations des utilisateurs dans AWS. Le service est destiné aux organisations ayant plusieurs utilisateurs ou des systèmes dans le cloud qui utilisent AWS des produits. Avec IAM, vous pouvez gérer de manière centralisée les utilisateurs, les informations d'identification de sécurité telles que les clés d'accès et les autorisations qui contrôlent les AWS ressources auxquelles les utilisateurs peuvent accéder.

![\[Relation entre JavaScript les environnements, le SDK et l'IAM\]](http://docs.aws.amazon.com/fr_fr/sdk-for-javascript/v2/developer-guide/images/code-samples-iam.png)


L' JavaScript API pour IAM est exposée par le biais de la classe `AWS.IAM` client. Pour plus d'informations sur l'utilisation de la classe client IAM, consultez la référence [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html)de l'API.

**Topics**
+ [Gestion des utilisateurs IAM](iam-examples-managing-users.md)
+ [Utilisation des stratégies IAM](iam-examples-policies.md)
+ [Gestion des clés d’accès IAM](iam-examples-managing-access-keys.md)
+ [Utilisation des certificats de serveur IAM](iam-examples-server-certificates.md)
+ [Gestion des alias de compte IAM](iam-examples-account-aliases.md)

# Gestion des utilisateurs IAM
<a name="iam-examples-managing-users"></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 :**
+ Comment récupérer une liste d'utilisateurs IAM.
+ Procédure de création et de suppression des utilisateurs.
+ Procédure de mise à jour d'un nom d'utilisateur.

## Scénario
<a name="iam-examples-managing-users-scenario"></a>

Dans cet exemple, une série de modules Node.js sont utilisés pour créer et gérer des utilisateurs dans IAM. Les modules Node.js utilisent le SDK pour créer, supprimer et mettre JavaScript à jour les utilisateurs à l'aide des méthodes suivantes de la classe `AWS.IAM` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#createUser-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#createUser-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#listUsers-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#listUsers-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#updateUser-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#updateUser-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#getUser-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#getUser-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#deleteUser-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#deleteUser-property)

Pour plus d'informations sur les utilisateurs IAM, consultez la section Utilisateurs [IAM dans le Guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) de l'utilisateur *IAM*.

## Tâches prérequises
<a name="iam-examples-managing-users-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éation d'un utilisateur
<a name="iam-examples-managing-users-creating-users"></a>

Créez un module Node.js nommé `iam_createuser.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres nécessaires, ce qui inclut le nom d'utilisateur que vous souhaitez attribuer au nouvel utilisateur en tant que paramètre de ligne de commande.

Appelez la méthode `getUser` de l'objet de service `AWS.IAM` afin de vérifier si le nom d'utilisateur existe déjà. Si le nom d'utilisateur n'existe pas, appelez la méthode `createUser` pour le créer. Si le nom existe déjà, écrivez un message à cette fin à destination de la console.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

var params = {
  UserName: process.argv[2],
};

iam.getUser(params, function (err, data) {
  if (err && err.code === "NoSuchEntity") {
    iam.createUser(params, function (err, data) {
      if (err) {
        console.log("Error", err);
      } else {
        console.log("Success", data);
      }
    });
  } else {
    console.log(
      "User " + process.argv[2] + " already exists",
      data.User.UserId
    );
  }
});
```

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

```
node iam_createuser.js USER_NAME
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_createuser.js).

## Liste des utilisateurs de votre compte
<a name="iam-examples-managing-users-listing-users"></a>

Créez un module Node.js nommé `iam_listusers.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres nécessaires pour répertorier vos utilisateurs et limitez le nombre de résultats renvoyés en définissant le paramètre `MaxItems` sur 10. Appelez la méthode `listUsers` de l'objet de service `AWS.IAM`. Écrivez le nom du premier utilisateur et sa date de création sur la console.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

var params = {
  MaxItems: 10,
};

iam.listUsers(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    var users = data.Users || [];
    users.forEach(function (user) {
      console.log("User " + user.UserName + " created", user.CreateDate);
    });
  }
});
```

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

```
node iam_listusers.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_listusers.js).

## Mise à jour du nom d'un utilisateur
<a name="iam-examples-managing-users-updating-users"></a>

Créez un module Node.js nommé `iam_updateuser.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres nécessaires pour répertorier les utilisateurs, en spécifiant le nom d'utilisateur actuel et le nouveau nom d'utilisateur en tant que paramètres de ligne de commande. Appelez la méthode `updateUser` de l'objet de service `AWS.IAM`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

var params = {
  UserName: process.argv[2],
  NewUserName: process.argv[3],
};

iam.updateUser(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data);
  }
});
```

Pour exécuter l'exemple, entrez ce qui suit sur la ligne de commande, en spécifiant le nom actuel de l'utilisateur, suivi de son nouveau nom.

```
node iam_updateuser.js ORIGINAL_USERNAME NEW_USERNAME
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_updateuser.js).

## Suppression d'un utilisateur
<a name="iam-examples-managing-users-deleting-users"></a>

Créez un module Node.js nommé `iam_deleteuser.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres nécessaires, ce qui inclut le nom d'utilisateur que vous souhaitez supprimer en tant que paramètre de ligne de commande.

Appelez la méthode `getUser` de l'objet de service `AWS.IAM` afin de vérifier si le nom d'utilisateur existe déjà. Si le nom d'utilisateur n'existe pas déjà, écrivez un message à cette fin à destination à la console. Si l'utilisateur existe, appelez la méthode `deleteUser` pour le supprimer.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

var params = {
  UserName: process.argv[2],
};

iam.getUser(params, function (err, data) {
  if (err && err.code === "NoSuchEntity") {
    console.log("User " + process.argv[2] + " does not exist.");
  } else {
    iam.deleteUser(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 iam_deleteuser.js USER_NAME
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_deleteuser.js).

# Utilisation des stratégies IAM
<a name="iam-examples-policies"></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 :**
+ Comment créer et supprimer des politiques IAM.
+ Comment associer et détacher les politiques IAM des rôles.

## Scénario
<a name="iam-examples-policies-scenario"></a>

Vous accordez des autorisations à un utilisateur en créant une *stratégie*, à savoir un document qui répertorie les actions qu'un utilisateur peut réaliser et les ressources que ces actions peuvent concerner. Les actions ou ressources qui ne sont pas explicitement autorisées sont refusées par défaut. Vous pouvez créer des stratégies et les attacher à des utilisateurs, à des groupes d'utilisateurs, à des rôles pris en charge par des utilisateurs et à des ressources.

Dans cet exemple, une série de modules Node.js sont utilisés pour gérer les politiques dans IAM. Les modules Node.js utilisent le SDK pour JavaScript créer et supprimer des politiques, ainsi que pour associer et détacher des politiques de rôle à l'aide des méthodes suivantes de la classe `AWS.IAM` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#createPolicy-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#createPolicy-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#getPolicy-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#getPolicy-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#listAttachedRolePolicies-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#listAttachedRolePolicies-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#attachRolePolicy-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#attachRolePolicy-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#detachRolePolicy-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#detachRolePolicy-property)

Pour plus d'informations sur les utilisateurs IAM, voir [Présentation de la gestion des accès : autorisations et politiques](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_access-management.html) dans le guide de l'*utilisateur IAM*.

## Tâches prérequises
<a name="iam-examples-policies-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 un rôle IAM auquel vous pouvez associer des politiques. Pour plus d'informations sur la création de rôles, consultez la section [Création de rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) dans le guide de l'*utilisateur IAM*.

## Création d'une politique IAM
<a name="iam-examples-policies-creating"></a>

Créez un module Node.js nommé `iam_createpolicy.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez deux objets JSON, l'un contenant le document de stratégie à créer et l'autre contenant les paramètres requis pour créer la stratégie, ce qui inclut l'objet JSON de la stratégie et le nom que vous voulez attribuer à la stratégie. Veillez à traiter le paramètre « stringify » de l'objet JSON de la stratégie dans les paramètres. Appelez la méthode `createPolicy` de l'objet de service `AWS.IAM`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

var myManagedPolicy = {
  Version: "2012-10-17",
  Statement: [
    {
      Effect: "Allow",
      Action: "logs:CreateLogGroup",
      Resource: "RESOURCE_ARN",
    },
    {
      Effect: "Allow",
      Action: [
        "dynamodb:DeleteItem",
        "dynamodb:GetItem",
        "dynamodb:PutItem",
        "dynamodb:Scan",
        "dynamodb:UpdateItem",
      ],
      Resource: "RESOURCE_ARN",
    },
  ],
};

var params = {
  PolicyDocument: JSON.stringify(myManagedPolicy),
  PolicyName: "myDynamoDBPolicy",
};

iam.createPolicy(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 iam_createpolicy.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_createpolicy.js).

## Obtenir une politique IAM
<a name="iam-examples-policies-getting"></a>

Créez un module Node.js nommé `iam_getpolicy.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres nécessaires pour récupérer une stratégie, qui est l'ARN de la stratégie que vous souhaitez obtenir. Appelez la méthode `getPolicy` de l'objet de service `AWS.IAM`. Écrivez la description de stratégie sur la console.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

var params = {
  PolicyArn: "arn:aws:iam::aws:policy/AWSLambdaExecute",
};

iam.getPolicy(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.Policy.Description);
  }
});
```

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

```
node iam_getpolicy.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_getpolicy.js).

## Attachement d'une stratégie de rôle gérée
<a name="iam-examples-policies-attaching-role-policy"></a>

Créez un module Node.js nommé `iam_attachrolepolicy.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres nécessaires pour obtenir une liste des politiques IAM gérées associées à un rôle, qui comprend le nom du rôle. Indiquez le nom de rôle en tant que paramètre de ligne de commande. Appelez la méthode `listAttachedRolePolicies` de l'objet de service `AWS.IAM`, qui renvoie un tableau des stratégies gérées à la fonction de rappel.

Consultez la liste des membres du tableau afin de vérifier si la stratégie que vous souhaitez attacher au rôle est déjà attachée. Si elle ne l'est pas, appelez la méthode `attachRolePolicy` pour l'attacher. 

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

var paramsRoleList = {
  RoleName: process.argv[2],
};

iam.listAttachedRolePolicies(paramsRoleList, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    var myRolePolicies = data.AttachedPolicies;
    myRolePolicies.forEach(function (val, index, array) {
      if (myRolePolicies[index].PolicyName === "AmazonDynamoDBFullAccess") {
        console.log(
          "AmazonDynamoDBFullAccess is already attached to this role."
        );
        process.exit();
      }
    });
    var params = {
      PolicyArn: "arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess",
      RoleName: process.argv[2],
    };
    iam.attachRolePolicy(params, function (err, data) {
      if (err) {
        console.log("Unable to attach policy to role", err);
      } else {
        console.log("Role attached successfully");
      }
    });
  }
});
```

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

```
node iam_attachrolepolicy.js IAM_ROLE_NAME
```

## Détachement d'une stratégie de rôle gérée
<a name="iam-examples-policies-detaching-role-policy"></a>

Créez un module Node.js nommé `iam_detachrolepolicy.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres nécessaires pour obtenir une liste des politiques IAM gérées associées à un rôle, qui comprend le nom du rôle. Indiquez le nom de rôle en tant que paramètre de ligne de commande. Appelez la méthode `listAttachedRolePolicies` de l'objet de service `AWS.IAM`, qui renvoie un tableau des stratégies gérées dans la fonction de rappel.

Consultez la liste des membres du tableau afin de vérifier si la stratégie que vous souhaitez détacher du rôle est déjà attachée. Si elle l'est, appelez la méthode `detachRolePolicy` pour la détacher.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

var paramsRoleList = {
  RoleName: process.argv[2],
};

iam.listAttachedRolePolicies(paramsRoleList, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    var myRolePolicies = data.AttachedPolicies;
    myRolePolicies.forEach(function (val, index, array) {
      if (myRolePolicies[index].PolicyName === "AmazonDynamoDBFullAccess") {
        var params = {
          PolicyArn: "arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess",
          RoleName: process.argv[2],
        };
        iam.detachRolePolicy(params, function (err, data) {
          if (err) {
            console.log("Unable to detach policy from role", err);
          } else {
            console.log("Policy detached from role successfully");
            process.exit();
          }
        });
      }
    });
  }
});
```

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

```
node iam_detachrolepolicy.js IAM_ROLE_NAME
```

# Gestion des clés d’accès IAM
<a name="iam-examples-managing-access-keys"></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 gestion des clés d'accès de vos utilisateurs.

## Scénario
<a name="iam-examples-managing-access-keys-scenario"></a>

Les utilisateurs ont besoin de leurs propres clés d'accès pour effectuer des appels programmatiques AWS depuis le SDK pour. JavaScript Pour répondre à ce besoin, vous pouvez créer, modifier, afficher ou faire pivoter des clés d'accès (clé d'accès IDs et clés d'accès secrètes) pour les utilisateurs IAM. Par défaut, lorsque vous créez une clé d'accès, son statut est `Active`, ce qui signifie que l'utilisateur peut l'utiliser pour les appels d'API. 

Dans cet exemple, une série de modules Node.js sont utilisés pour gérer les clés d'accès dans IAM. Les modules Node.js utilisent le SDK pour gérer les clés JavaScript d'accès IAM à l'aide des méthodes suivantes de la classe `AWS.IAM` client :
+ [createAccessKey](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#createAccessKey-property)
+ [listAccessKeys](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#listAccessKeys-property)
+ [getAccessKeyLastUsed](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#getAccessKeyLastUsed-property)
+ [updateAccessKey](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#updateAccessKey-property)
+ [deleteAccessKey](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#deleteAccessKey-property)

Pour plus d'informations sur les clés d'accès IAM, consultez la section [Clés d'accès](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) dans le guide de l'*utilisateur IAM*.

## Tâches prérequises
<a name="iam-examples-managing-access-keys-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éation de clés d'accès pour un utilisateur
<a name="iam-examples-managing-access-keys-creating"></a>

Créez un module Node.js nommé `iam_createaccesskeys.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres nécessaires pour créer de nouvelles clés d'accès, y compris le nom de l'utilisateur IAM. Appelez la méthode `createAccessKey` de l'objet de service `AWS.IAM`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

iam.createAccessKey({ UserName: "IAM_USER_NAME" }, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.AccessKey);
  }
});
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. Veillez à diriger les données renvoyées vers un fichier texte afin de ne pas perdre la clé secrète, qui peut être fournie une seule fois.

```
node iam_createaccesskeys.js > newuserkeys.txt
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_createaccesskeys.js).

## Liste des clés d'accès d'un utilisateur
<a name="iam-examples-managing-access-keys-listing"></a>

Créez un module Node.js nommé `iam_listaccesskeys.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres nécessaires pour récupérer les clés d'accès de l'utilisateur, y compris le nom de l'utilisateur IAM et éventuellement le nombre maximum de paires de clés d'accès que vous souhaitez répertorier. Appelez la méthode `listAccessKeys` de l'objet de service `AWS.IAM`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

var params = {
  MaxItems: 5,
  UserName: "IAM_USER_NAME",
};

iam.listAccessKeys(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 iam_listaccesskeys.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_listaccesskeys.js).

## Obtention de la date à laquelle une clé d'accès a été utilisée pour la dernière fois
<a name="iam-examples-managing-access-keys-last-used"></a>

Créez un module Node.js nommé `iam_accesskeylastused.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres requis pour créer des clés d'accès, qui est l'ID de clé d'accès pour lequel vous souhaitez récupérer les informations sur la dernière utilisation. Appelez la méthode `getAccessKeyLastUsed` de l'objet de service `AWS.IAM`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

iam.getAccessKeyLastUsed(
  { AccessKeyId: "ACCESS_KEY_ID" },
  function (err, data) {
    if (err) {
      console.log("Error", err);
    } else {
      console.log("Success", data.AccessKeyLastUsed);
    }
  }
);
```

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

```
node iam_accesskeylastused.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_accesskeylastused.js).

## Mise à jour du statut des clés d'accès
<a name="iam-examples-managing-access-keys-updating"></a>

Créez un module Node.js nommé `iam_updateaccesskey.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres requis pour mettre à jour le statut des clés d'accès, ce qui inclut l'ID de clé d'accès et le statut mis à jour. Le statut peut être `Active` ou `Inactive`. Appelez la méthode `updateAccessKey` de l'objet de service `AWS.IAM`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

var params = {
  AccessKeyId: "ACCESS_KEY_ID",
  Status: "Active",
  UserName: "USER_NAME",
};

iam.updateAccessKey(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 iam_updateaccesskey.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_updateaccesskey.js).

## Suppression des clés d'accès
<a name="iam-examples-managing-access-keys-deleting"></a>

Créez un module Node.js nommé `iam_deleteaccesskey.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres requis pour supprimer des clés d'accès, ce qui inclut l'ID des clés d'accès et le nom de l'utilisateur. Appelez la méthode `deleteAccessKey` de l'objet de service `AWS.IAM`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

var params = {
  AccessKeyId: "ACCESS_KEY_ID",
  UserName: "USER_NAME",
};

iam.deleteAccessKey(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 iam_deleteaccesskey.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_deleteaccesskey.js).

# Utilisation des certificats de serveur IAM
<a name="iam-examples-server-certificates"></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 permettant d'effectuer des tâches de base de gestion des certificats de serveur pour les connexions HTTPS.

## Scénario
<a name="iam-examples-server-certificates-scenario"></a>

Pour activer les connexions HTTPS à votre site Web ou à votre application AWS, vous avez besoin d'un *certificat de SSL/TLS serveur*. Pour utiliser un certificat que vous avez obtenu auprès d'un fournisseur externe avec votre site Web ou votre application AWS, vous devez télécharger le certificat dans IAM ou l'importer dans AWS Certificate Manager.

Dans cet exemple, une série de modules Node.js sont utilisés pour gérer les certificats de serveur dans IAM. Les modules Node.js utilisent le SDK pour gérer les certificats de serveur JavaScript à l'aide des méthodes suivantes de la classe `AWS.IAM` client :
+ [listServerCertificates](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#listServerCertificates-property)
+ [getServerCertificate](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#getServerCertificate-property)
+ [updateServerCertificate](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#updateServerCertificate-property)
+ [deleteServerCertificate](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#deleteServerCertificate-property)

Pour plus d'informations sur les certificats de serveur, consultez la section [Utilisation des certificats de serveur](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) dans le *guide de l'utilisateur IAM*.

## Tâches prérequises
<a name="iam-examples-server-certificates-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).

## Liste des certificats de serveur
<a name="iam-examples-server-certificates-listing"></a>

Créez un module Node.js nommé `iam_listservercerts.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Appelez la méthode `listServerCertificates` de l'objet de service `AWS.IAM`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

iam.listServerCertificates({}, 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 iam_listservercerts.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_listservercerts.js).

## Obtention d'un certificat de serveur
<a name="iam-examples-server-certificates-getting"></a>

Créez un module Node.js nommé `iam_getservercert.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres nécessaires pour obtenir un certificat, ce qui inclut le nom du certificat de serveur que vous recherchez. Appelez la méthode `getServerCertificates` de l'objet de service `AWS.IAM`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

iam.getServerCertificate(
  { ServerCertificateName: "CERTIFICATE_NAME" },
  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 iam_getservercert.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_getservercert.js).

## Mise à jour d'un certificat de serveur
<a name="iam-examples-server-certificates-updating"></a>

Créez un module Node.js nommé `iam_updateservercert.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres requis pour mettre à jour un certificat, ce qui comprend le nom du certificat de serveur existant, ainsi que le nom du nouveau certificat. Appelez la méthode `updateServerCertificate` de l'objet de service `AWS.IAM`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

var params = {
  ServerCertificateName: "CERTIFICATE_NAME",
  NewServerCertificateName: "NEW_CERTIFICATE_NAME",
};

iam.updateServerCertificate(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 iam_updateservercert.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_updateservercert.js).

## Suppression d'un certificat de serveur
<a name="iam-examples-server-certificates-deleting"></a>

Créez un module Node.js nommé `iam_deleteservercert.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres nécessaires pour supprimer un certificat de serveur, ce qui inclut le nom du certificat à supprimer. Appelez la méthode `deleteServerCertificates` de l'objet de service `AWS.IAM`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

iam.deleteServerCertificate(
  { ServerCertificateName: "CERTIFICATE_NAME" },
  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 iam_deleteservercert.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_deleteservercert.js).

# Gestion des alias de compte IAM
<a name="iam-examples-account-aliases"></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 :**
+ Comment gérer les alias de votre identifiant de AWS compte.

## Scénario
<a name="iam-examples-account-aliases-scenario"></a>

Si vous souhaitez que l'URL de votre page de connexion contienne le nom de votre entreprise ou un autre identifiant convivial au lieu de votre identifiant de AWS compte, vous pouvez créer un alias pour votre identifiant de AWS compte. Si vous créez un alias de AWS compte, l'URL de votre page de connexion change pour intégrer l'alias.

Dans cet exemple, une série de modules Node.js sont utilisés pour créer et gérer des alias de comptes IAM. Les modules Node.js utilisent le SDK pour gérer les alias JavaScript à l'aide des méthodes suivantes de la classe `AWS.IAM` client :
+ [createAccountAlias](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#createAccountAlias-property)
+ [listAccountAliases](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#listAccountAliases-property)
+ [deleteAccountAlias](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#deleteAccountAlias-property)

Pour plus d'informations sur les alias de compte IAM, consultez la section [Votre identifiant de AWS compte et son alias](https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html) dans le guide de l'utilisateur *IAM*.

## Tâches prérequises
<a name="iam-examples-account-aliases-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éation d'un alias de compte
<a name="iam-examples-account-aliases-creating"></a>

Créez un module Node.js nommé `iam_createaccountalias.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres requis pour créer un alias de compte, ce qui inclut l'alias que vous voulez créer. Appelez la méthode `createAccountAlias` de l'objet de service `AWS.IAM`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

iam.createAccountAlias({ AccountAlias: process.argv[2] }, 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 iam_createaccountalias.js ALIAS
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_createaccountalias.js).

## Liste des alias de compte
<a name="iam-examples-account-aliases-listing"></a>

Créez un module Node.js nommé `iam_listaccountaliases.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres requis pour répertorier les alias de compte, ce qui inclut le nombre maximal d'éléments à renvoyer. Appelez la méthode `listAccountAliases` de l'objet de service `AWS.IAM`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

iam.listAccountAliases({ MaxItems: 10 }, 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 iam_listaccountaliases.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_listaccountaliases.js).

## Suppression d'un alias de compte
<a name="iam-examples-account-aliases-deleting"></a>

Créez un module Node.js nommé `iam_deleteaccountalias.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres requis pour supprimer un alias de compte, ce qui inclut l'alias que vous voulez supprimer. Appelez la méthode `deleteAccountAlias` de l'objet de service `AWS.IAM`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

iam.deleteAccountAlias({ AccountAlias: process.argv[2] }, 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 iam_deleteaccountalias.js ALIAS
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_deleteaccountalias.js).

# Exemple Amazon Kinesis
<a name="kinesis-examples"></a>

Amazon Kinesis est une plateforme de diffusion de données qui propose de puissants services de chargement et d'analyse des données de streaming, ainsi que la possibilité de créer des applications de données de streaming personnalisées répondant à des besoins spécifiques. AWS

![\[Relation entre JavaScript les environnements, le AWS SDK et Kinesis\]](http://docs.aws.amazon.com/fr_fr/sdk-for-javascript/v2/developer-guide/images/code-samples-kinesis.png)


L' JavaScript API pour Kinesis est exposée par le biais de la classe `AWS.Kinesis` client. Pour plus d'informations sur l'utilisation de la classe client Kinesis, consultez la référence [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Kinesis.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Kinesis.html)de l'API.

**Topics**
+ [Capture de la progression du défilement des pages Web avec Amazon Kinesis](kinesis-examples-capturing-page-scrolling.md)

# Capture de la progression du défilement des pages Web avec Amazon Kinesis
<a name="kinesis-examples-capturing-page-scrolling"></a>

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

**Cet exemple de script de navigateur présente :**
+ Comment enregistrer la progression du défilement d'une page Web avec Amazon Kinesis comme exemple de statistiques d'utilisation d'une page de streaming pour une analyse ultérieure.

## Scénario
<a name="kinesis-examples-capturing-page-scrolling-scenario"></a>

Dans cet exemple, une simple page HTML simule le contenu d'une page de blog. Lorsque le lecteur fait défiler le billet de blog simulé, le script du navigateur utilise le SDK pour JavaScript enregistrer la distance de défilement vers le bas de la page et envoyer ces données à Kinesis en utilisant la méthode [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Kinesis.html#putRecords-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Kinesis.html#putRecords-property)de la classe client Kinesis. Les données de streaming capturées par Amazon Kinesis Data Streams peuvent ensuite être traitées par les instances Amazon EC2 et stockées dans l'un des nombreux magasins de données, notamment Amazon DynamoDB et Amazon Redshift.

## Tâches prérequises
<a name="kinesis-examples-capturing-page-scrolling-prerequisites"></a>

Pour configurer et exécuter cet exemple, vous devez d'abord :
+ Créez un flux Kinesis. Vous devez inclure l'ARN de la ressource du flux dans le script du navigateur. Pour plus d'informations sur la création d'Amazon Kinesis Data Streams, [consultez Managing Kinesis Streams dans le manuel Amazon Kinesis Data](https://docs.aws.amazon.com/streams/latest/dev/working-with-streams.html) *Streams* Developer Guide.
+ Créez un pool d'identités Amazon Cognito dont l'accès est activé pour les identités non authentifiées. Vous devez inclure l'ID du groupe d'identités dans le code afin d'obtenir les informations d'identification relatives au script du navigateur. Pour plus d'informations sur les groupes d'identités Amazon Cognito, consultez la section Groupes [d'identités](https://docs.aws.amazon.com/cognito/latest/developerguide/identity-pools.html) du manuel *Amazon Cognito Developer Guide*.
+ Créez un rôle IAM dont la politique autorise l'envoi de données vers un flux Kinesis. 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": [
      {
         "Effect": "Allow",
         "Action": [
            "mobileanalytics:PutEvents",
            "cognito-sync:*"
         ],
         "Resource": [
            "*"
         ]
      },
      {
         "Effect": "Allow",
         "Action": [
            "kinesis:Put*"
         ],
         "Resource": [
            "arn:aws:kinesis:us-east-1:111122223333:stream/stream-name"
         ]
      }
   ]
}
```

------

## Page du blog
<a name="kinesis-examples-capturing-page-scrolling-html"></a>

Le code HTML de la page du blog se compose principalement d'une série de paragraphes contenus dans un élément `<div>`. La hauteur de défilement de cet élément `<div>` sert à calculer jusqu'où un lecteur a déroulé le contenu qu'il lit. Le code HTML contient également une paire d'éléments `<script>`. L'un de ces éléments ajoute le SDK JavaScript pour la page et l'autre ajoute le script de navigateur qui enregistre la progression du défilement sur la page et la rapporte à Kinesis.

```
<!DOCTYPE html>
<html>
    <head>
        <title>AWS SDK for JavaScript - Amazon Kinesis Application</title>
    </head>
    <body>
        <div id="BlogContent" style="width: 60%; height: 800px; overflow: auto;margin: auto; text-align: center;">
            <div>
                <p>
                Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nulla eget nisl bibendum feugiat. Fusce rhoncus felis at ultricies luctus. Vivamus fermentum cursus sem at interdum. Proin vel lobortis nulla. Aenean rutrum odio in tellus semper rhoncus. Nam eu felis ac augue dapibus laoreet vel in erat. Vivamus vitae mollis turpis. Integer sagittis dictum odio. Duis nec sapien diam. In imperdiet sem nec ante laoreet, vehicula facilisis sem placerat. Duis ut metus egestas, ullamcorper neque et, accumsan quam. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
                </p>
                <!-- Additional paragraphs in the blog page appear here -->
            </div>
        </div>
        <script src="https://sdk.amazonaws.com/js/aws-sdk-2.283.1.min.js"></script>
        <script src="kinesis-example.js"></script>
    </body>
</html>
```

## Configuration du kit SDK
<a name="kinesis-examples-capturing-page-scrolling-configure-sdk"></a>

Obtenez les informations d'identification nécessaires pour configurer le SDK en appelant la `CognitoIdentityCredentials` méthode, en fournissant l'ID du pool d'identités Amazon Cognito. En cas de succès, créez l'objet de service Kinesis dans la fonction de rappel.

L'extrait de code suivant illustre cette étape. (Pour obtenir l'exemple complet, consultez [Code de capture de la progression du défilement d'une page web](kinesis-examples-capturing-page-scrolling-full.md).)

```
// Configure Credentials to use Cognito
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
  IdentityPoolId: "IDENTITY_POOL_ID",
});

AWS.config.region = "REGION";
// We're going to partition Amazon Kinesis records based on an identity.
// We need to get credentials first, then attach our event listeners.
AWS.config.credentials.get(function (err) {
  // attach event listener
  if (err) {
    alert("Error retrieving credentials.");
    console.error(err);
    return;
  }
  // create Amazon Kinesis service object
  var kinesis = new AWS.Kinesis({
    apiVersion: "2013-12-02",
  });
```

## Création des enregistrements de défilement
<a name="kinesis-examples-capturing-page-scrolling-create-records"></a>

La progression du défilement est calculée à l'aide des propriétés `scrollHeight` et `scrollTop` de l'élément `<div>` contenant le contenu du billet de blog. Chaque enregistrement de défilement est créé dans une fonction d'écoute d'événements pour l'`scroll`événement, puis ajouté à un tableau d'enregistrements pour être soumis périodiquement à Kinesis.

L'extrait de code suivant illustre cette étape. (Pour obtenir l'exemple complet, consultez [Code de capture de la progression du défilement d'une page web](kinesis-examples-capturing-page-scrolling-full.md).)

```
  // Get the ID of the Web page element.
  var blogContent = document.getElementById("BlogContent");

  // Get Scrollable height
  var scrollableHeight = blogContent.clientHeight;

  var recordData = [];
  var TID = null;
  blogContent.addEventListener("scroll", function (event) {
    clearTimeout(TID);
    // Prevent creating a record while a user is actively scrolling
    TID = setTimeout(function () {
      // calculate percentage
      var scrollableElement = event.target;
      var scrollHeight = scrollableElement.scrollHeight;
      var scrollTop = scrollableElement.scrollTop;

      var scrollTopPercentage = Math.round((scrollTop / scrollHeight) * 100);
      var scrollBottomPercentage = Math.round(
        ((scrollTop + scrollableHeight) / scrollHeight) * 100
      );

      // Create the Amazon Kinesis record
      var record = {
        Data: JSON.stringify({
          blog: window.location.href,
          scrollTopPercentage: scrollTopPercentage,
          scrollBottomPercentage: scrollBottomPercentage,
          time: new Date(),
        }),
        PartitionKey: "partition-" + AWS.config.credentials.identityId,
      };
      recordData.push(record);
    }, 100);
  });
```

## Soumission d'enregistrements à Kinesis
<a name="kinesis-examples-capturing-page-scrolling-submit-records"></a>

Une fois par seconde, s'il y a des enregistrements dans le tableau, ces enregistrements en attente sont envoyés à Kinesis.

L'extrait de code suivant illustre cette étape. (Pour obtenir l'exemple complet, consultez [Code de capture de la progression du défilement d'une page web](kinesis-examples-capturing-page-scrolling-full.md).)

```
  // upload data to Amazon Kinesis every second if data exists
  setInterval(function () {
    if (!recordData.length) {
      return;
    }
    // upload data to Amazon Kinesis
    kinesis.putRecords(
      {
        Records: recordData,
        StreamName: "NAME_OF_STREAM",
      },
      function (err, data) {
        if (err) {
          console.error(err);
        }
      }
    );
    // clear record data
    recordData = [];
  }, 1000);
});
```

# Code de capture de la progression du défilement d'une page web
<a name="kinesis-examples-capturing-page-scrolling-full"></a>

Voici le code du script de navigateur pour l'exemple de progression du défilement d'une page Web par capture Kinesis.

```
// Configure Credentials to use Cognito
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
  IdentityPoolId: "IDENTITY_POOL_ID",
});

AWS.config.region = "REGION";
// We're going to partition Amazon Kinesis records based on an identity.
// We need to get credentials first, then attach our event listeners.
AWS.config.credentials.get(function (err) {
  // attach event listener
  if (err) {
    alert("Error retrieving credentials.");
    console.error(err);
    return;
  }
  // create Amazon Kinesis service object
  var kinesis = new AWS.Kinesis({
    apiVersion: "2013-12-02",
  });

  // Get the ID of the Web page element.
  var blogContent = document.getElementById("BlogContent");

  // Get Scrollable height
  var scrollableHeight = blogContent.clientHeight;

  var recordData = [];
  var TID = null;
  blogContent.addEventListener("scroll", function (event) {
    clearTimeout(TID);
    // Prevent creating a record while a user is actively scrolling
    TID = setTimeout(function () {
      // calculate percentage
      var scrollableElement = event.target;
      var scrollHeight = scrollableElement.scrollHeight;
      var scrollTop = scrollableElement.scrollTop;

      var scrollTopPercentage = Math.round((scrollTop / scrollHeight) * 100);
      var scrollBottomPercentage = Math.round(
        ((scrollTop + scrollableHeight) / scrollHeight) * 100
      );

      // Create the Amazon Kinesis record
      var record = {
        Data: JSON.stringify({
          blog: window.location.href,
          scrollTopPercentage: scrollTopPercentage,
          scrollBottomPercentage: scrollBottomPercentage,
          time: new Date(),
        }),
        PartitionKey: "partition-" + AWS.config.credentials.identityId,
      };
      recordData.push(record);
    }, 100);
  });

  // upload data to Amazon Kinesis every second if data exists
  setInterval(function () {
    if (!recordData.length) {
      return;
    }
    // upload data to Amazon Kinesis
    kinesis.putRecords(
      {
        Records: recordData,
        StreamName: "NAME_OF_STREAM",
      },
      function (err, data) {
        if (err) {
          console.error(err);
        }
      }
    );
    // clear record data
    recordData = [];
  }, 1000);
});
```

# Exemples Amazon S3
<a name="s3-examples"></a>

Amazon Simple Storage Service (Amazon S3) est un service Web qui fournit un stockage dans le cloud hautement évolutif. Amazon S3 fournit un stockage d'objets facile à utiliser, avec une interface de service Web simple permettant de stocker et de récupérer n'importe quel volume de données, où que vous soyez sur le Web.

![\[Relation entre JavaScript les environnements, le SDK et Amazon S3\]](http://docs.aws.amazon.com/fr_fr/sdk-for-javascript/v2/developer-guide/images/code-samples-s3.png)


L' JavaScript API d'Amazon S3 est exposée par le biais de la classe `AWS.S3` client. Pour plus d'informations sur l'utilisation de la classe client Amazon S3, consultez [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html)la référence de l'API.

**Topics**
+ [Exemples de navigateurs Amazon S3](s3-browser-examples.md)
+ [Exemples Node.js d'Amazon S3](s3-node-examples.md)

# Exemples de navigateurs Amazon S3
<a name="s3-browser-examples"></a>

Les rubriques suivantes présentent deux exemples de la manière dont le navigateur AWS SDK pour JavaScript peut être utilisé pour interagir avec les compartiments Amazon S3.
+ La première montre un scénario simple dans lequel les photos existantes dans un compartiment Amazon S3 peuvent être consultées par n'importe quel utilisateur (non authentifié).
+ La seconde montre un scénario plus complexe dans lequel les utilisateurs sont autorisés à effectuer des opérations sur les photos du bucket, telles que le téléchargement, la suppression, etc. 

**Topics**
+ [Affichage de photos dans un compartiment Amazon S3 à partir d'un navigateur](s3-example-photos-view.md)
+ [Téléchargement de photos vers Amazon S3 depuis un navigateur](s3-example-photo-album.md)

# Affichage de photos dans un compartiment Amazon S3 à partir d'un navigateur
<a name="s3-example-photos-view"></a>

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

**Cet exemple de code de script de navigateur illustre :**
+ Comment créer un album photo dans un compartiment Amazon Simple Storage Service (Amazon S3) et autoriser les utilisateurs non authentifiés à voir les photos.

## Scénario
<a name="s3-example-photos-view-scenario"></a>

Dans cet exemple, une simple page HTML fournit une application basée sur un navigateur pour afficher des photos dans un album photo. L'album photo se trouve dans un compartiment Amazon S3 dans lequel les photos sont téléchargées.

![\[JavaScript dans un script de navigateur utilisant des compartiments Amazon S3 pour les albums photos.\]](http://docs.aws.amazon.com/fr_fr/sdk-for-javascript/v2/developer-guide/images/s3-photo-album-example.png)


Le script de navigateur utilise le SDK JavaScript pour interagir avec un compartiment Amazon S3. Le script utilise la [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listObjects-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listObjects-property)méthode de la classe client Amazon S3 pour vous permettre de visualiser les albums photos.

## Tâches prérequises
<a name="s3-example-photos-view-scenario-prerequisites"></a>

Pour configurer et exécuter cet exemple, réalisez tout d'abord les tâches ci-après.

**Note**  
Dans cet exemple, vous devez utiliser la même AWS région pour le compartiment Amazon S3 et le pool d'identités Amazon Cognito.

### Créer le compartiment
<a name="s3-example-photos-view-prereq-bucket"></a>

Dans la [console Amazon S3](https://console.aws.amazon.com/s3/), créez un compartiment Amazon S3 dans lequel vous pouvez stocker des albums et des photos. Pour plus d'informations sur l'utilisation de la console pour créer un compartiment S3, consultez la section [Création d'un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html) dans le *guide de l'utilisateur d'Amazon Simple Storage Service*.

Lorsque vous créez le compartiment S3, veillez à :
+ Noter le nom du compartiment afin de pouvoir l'utiliser ultérieurement dans la tâche prérequise Configurer des autorisations de rôle.
+ Choisissez une AWS région dans laquelle créer le compartiment. Il doit s'agir de la même région que celle que vous utiliserez pour créer un pool d'identités Amazon Cognito lors d'une tâche préalable ultérieure, Créer un pool d'identités.
+ Configurez les autorisations du bucket en suivant la procédure de [définition des autorisations pour l'accès au site Web](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteAccessPermissionsReqd.html) dans le *guide de l'utilisateur d'Amazon Simple Storage Service*.

### Créer un groupe d'identités
<a name="s3-example-photos-view-prereq-idpool"></a>

Dans la [console Amazon Cognito](https://console.aws.amazon.com/cognito/), créez un pool d'identités Amazon Cognito, comme décrit [Étape 1 : créer un pool d'identités Amazon Cognito](getting-started-browser.md#getting-started-browser-create-identity-pool) dans *la rubrique Getting Started in a Browser Script*.

Lorsque vous créez le pool d'identités, notez le nom du pool d'identités, ainsi que le nom du rôle de l'identité **non authentifiée.**

### Configurer les autorisations de rôle
<a name="s3-example-photos-view-prereq-perms"></a>

Pour autoriser l'affichage d'albums et de photos, vous devez ajouter des autorisations à un rôle IAM du pool d'identités que vous venez de créer. Commencez par créer une stratégie comme suit.

1. Ouvrez la [console IAM](https://console.aws.amazon.com/iam/).

1. Dans le volet de navigation de gauche, choisissez **Policies (Stratégies)**, puis le bouton **Create policy (Créer une stratégie)**.

1. Dans l'onglet **JSON**, entrez la définition JSON suivante en remplaçant *BUCKET\$1NAME* par le nom de votre compartiment.

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

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
         {
            "Effect": "Allow",
            "Action": [
               "s3:ListBucket"
            ],
            "Resource": [
               "arn:aws:s3:::BUCKET_NAME"
            ]
         }
      ]
   }
   ```

------

1. Choisissez le bouton **Review policy (Vérifier la stratégie)**, nommez la stratégie et fournissez une description (si vous le souhaitez), puis choisissez le bouton **Create policy (Créer la stratégie)**.

   N'oubliez pas de noter le nom afin de pouvoir le retrouver et de l'associer ultérieurement au rôle IAM.

Une fois la politique créée, revenez à la [console IAM.](https://console.aws.amazon.com/iam/) Recherchez le rôle IAM pour l'identité **non authentifiée** créée par Amazon Cognito dans la tâche préalable précédente, Créer un pool d'identités. Utilisez la stratégie que vous venez de créer pour ajouter des autorisations à cette identité.

Bien que le flux de travail pour cette tâche soit généralement le même que celui de [Étape 2 : ajouter une politique au rôle IAM créé](getting-started-browser.md#getting-started-browser-iam-role) de la rubrique *Démarrage dans un script de navigateur*, quelques différences doivent être notées :
+ Utilisez la nouvelle politique que vous venez de créer, et non une politique pour Amazon Polly.
+ Sur la page **Attach Permissions (Attacher des autorisations)**, pour retrouver rapidement la nouvelle stratégie, ouvrez la liste **Filter policies (Filtrer les stratégies)** et choisissez **Customer managed (Gérées par l’utilisateur)**.

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*.

### Configurer CORS
<a name="s3-example-photos-view-cors-configuration"></a>

Avant que le script du navigateur puisse accéder au compartiment Amazon S3, vous devez configurer sa [configuration CORS](cors.md#configuring-cors-s3-bucket) comme suit.

**Important**  
Dans la nouvelle console S3, la configuration CORS doit être de type JSON.

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

```
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "HEAD",
            "GET"
        ],
        "AllowedOrigins": [
            "*"
        ]
    }
]
```

------
#### [ XML ]

```
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>HEAD</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>
```

------

### Créer des albums et charge des photos
<a name="s3-example-photos-view-create-albums"></a>

Cet exemple permettant uniquement aux utilisateurs d'afficher les photos qui sont déjà dans le compartiment, vous devez créer des albums dans le compartiment et y charger des photos.

**Note**  
Dans cet exemple, les noms de fichier photo doivent commencer par un trait de soulignement (« \$1 ») unique. Ce caractère sera important ultérieurement pour le filtrage. Veillez également à respecter les droits d'auteur des propriétaires des photos.

1. Dans la [console Amazon S3](https://console.aws.amazon.com/s3/), ouvrez le compartiment que vous avez créé précédemment.

1. Dans l'onglet **Overview (Présentation)**, cliquez sur le bouton **Create folder (Créer un dossier)** pour créer des dossiers. Pour cet exemple, nommez les dossiers « album1 », « album2 » et « album3 ».

1. Pour **album1** puis **album2**, sélectionnez le dossier et chargez des photos comme suit :

   1. Choisissez le bouton **Upload (Charger)**.

   1. Faites glisser ou choisissez les fichiers photos que vous souhaitez utiliser, puis choisissez **Next (Suivant)**.

   1. Sous **Manage public permissions Gérer les autorisations publiques)**, choisissez **Grant public read access to this object(s) (Octroyer un accès en lecture public à ces objets)**.

   1. Choisissez le bouton **Upload (Charger)**(dans le coin inférieur gauche).

1. Laissez **album3** vide.

## Définition de la page Web
<a name="s3-example-photos-view-html"></a>

Le code HTML pour l’application d’affichage de photos se compose d'un élément `<div>` dans lequel le script de navigateur crée l'interface d'affichage. Le premier élément `<script>` ajoute le kit SDK au script de navigateur. Le deuxième `<script>` élément ajoute le JavaScript fichier externe qui contient le code du script du navigateur. 

Pour cet exemple, le fichier est nommé `PhotoViewer.js`, et se trouve dans le même dossier que le fichier HTML. [Pour trouver le SDK\$1VERSION\$1NUMBER actuel, consultez la référence d'API du SDK pour le guide de référence des API. JavaScript AWS SDK pour JavaScript](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/)

```
<!DOCTYPE html>
<html>
  <head>
    <!-- **DO THIS**: -->
    <!--   Replace SDK_VERSION_NUMBER with the current SDK version number -->
    <script src="https://sdk.amazonaws.com/js/aws-sdk-SDK_VERSION_NUMBER.js"></script>
    <script src="./PhotoViewer.js"></script>
    <script>listAlbums();</script>
  </head>
  <body>
    <h1>Photo Album Viewer</h1>
    <div id="viewer" />
  </body>
</html>
```



## Configuration du kit SDK
<a name="s3-example-photos-view-config"></a>

Obtenez les informations d'identification dont vous avez besoin pour configurer le kit SDK en appelant la méthode `CognitoIdentityCredentials`. Vous devez fournir l'ID du pool d'identités Amazon Cognito. Ensuite, créez un objet de service `AWS.S3`.

```
// **DO THIS**:
//   Replace BUCKET_NAME with the bucket name.
//
var albumBucketName = "BUCKET_NAME";

// **DO THIS**:
//   Replace this block of code with the sample code located at:
//   Cognito -- Manage Identity Pools -- [identity_pool_name] -- Sample Code -- JavaScript
//
// Initialize the Amazon Cognito credentials provider
AWS.config.region = "REGION"; // Region
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
  IdentityPoolId: "IDENTITY_POOL_ID",
});

// Create a new service object
var s3 = new AWS.S3({
  apiVersion: "2006-03-01",
  params: { Bucket: albumBucketName },
});

// A utility function to create HTML.
function getHtml(template) {
  return template.join("\n");
}
```

Dans cet exemple, le reste du code définit les fonctions suivantes pour collecter et présenter des informations sur les albums et les photos du compartiment.
+ `listAlbums`
+ `viewAlbum`

## Liste des albums dans le compartiment
<a name="s3-example-photos-view-list-albums"></a>

Pour répertorier tous les albums existants dans le compartiment, la fonction `listAlbums` de l'application appelle la méthode `listObjects` de l'objet de service `AWS.S3`. La fonction utilise la propriété `CommonPrefixes` de sorte que l'appel renvoie uniquement les objets utilisés en tant qu’albums (c'est-à-dire, les dossiers).

Le reste de la fonction prend la liste des albums du compartiment Amazon S3 et génère le code HTML nécessaire pour afficher la liste des albums sur la page Web.

```
// List the photo albums that exist in the bucket.
function listAlbums() {
  s3.listObjects({ Delimiter: "/" }, function (err, data) {
    if (err) {
      return alert("There was an error listing your albums: " + err.message);
    } else {
      var albums = data.CommonPrefixes.map(function (commonPrefix) {
        var prefix = commonPrefix.Prefix;
        var albumName = decodeURIComponent(prefix.replace("/", ""));
        return getHtml([
          "<li>",
          '<button style="margin:5px;" onclick="viewAlbum(\'' +
            albumName +
            "')\">",
          albumName,
          "</button>",
          "</li>",
        ]);
      });
      var message = albums.length
        ? getHtml(["<p>Click on an album name to view it.</p>"])
        : "<p>You do not have any albums. Please Create album.";
      var htmlTemplate = [
        "<h2>Albums</h2>",
        message,
        "<ul>",
        getHtml(albums),
        "</ul>",
      ];
      document.getElementById("viewer").innerHTML = getHtml(htmlTemplate);
    }
  });
}
```

## Affichage d'un album
<a name="s3-example-photos-view-viewing-album"></a>

Pour afficher le contenu d'un album dans le compartiment Amazon S3, la `viewAlbum` fonction de l'application prend un nom d'album et crée la clé Amazon S3 pour cet album. Ensuite, la fonction appelle la méthode `listObjects` de l'objet de service `AWS.S3` pour obtenir une liste de tous les objets (les photos) de l'album.

Le reste de la fonction prend la liste des objets (photos) de l'album et génère le code HTML nécessaire à l'affichage des photos dans la page web.

```
// Show the photos that exist in an album.
function viewAlbum(albumName) {
  var albumPhotosKey = encodeURIComponent(albumName) + "/";
  s3.listObjects({ Prefix: albumPhotosKey }, function (err, data) {
    if (err) {
      return alert("There was an error viewing your album: " + err.message);
    }
    // 'this' references the AWS.Request instance that represents the response
    var href = this.request.httpRequest.endpoint.href;
    var bucketUrl = href + albumBucketName + "/";

    var photos = data.Contents.map(function (photo) {
      var photoKey = photo.Key;
      var photoUrl = bucketUrl + encodeURIComponent(photoKey);
      return getHtml([
        "<span>",
        "<div>",
        "<br/>",
        '<img style="width:128px;height:128px;" src="' + photoUrl + '"/>',
        "</div>",
        "<div>",
        "<span>",
        photoKey.replace(albumPhotosKey, ""),
        "</span>",
        "</div>",
        "</span>",
      ]);
    });
    var message = photos.length
      ? "<p>The following photos are present.</p>"
      : "<p>There are no photos in this album.</p>";
    var htmlTemplate = [
      "<div>",
      '<button onclick="listAlbums()">',
      "Back To Albums",
      "</button>",
      "</div>",
      "<h2>",
      "Album: " + albumName,
      "</h2>",
      message,
      "<div>",
      getHtml(photos),
      "</div>",
      "<h2>",
      "End of Album: " + albumName,
      "</h2>",
      "<div>",
      '<button onclick="listAlbums()">',
      "Back To Albums",
      "</button>",
      "</div>",
    ];
    document.getElementById("viewer").innerHTML = getHtml(htmlTemplate);
    document
      .getElementsByTagName("img")[0]
      .setAttribute("style", "display:none;");
  });
}
```

# Affichage de photos dans un compartiment Amazon S3 : code complet
<a name="s3-example-photos-view-full"></a>

Cette section contient le code HTML complet et le JavaScript code de l'exemple dans lequel les photos d'un compartiment Amazon S3 peuvent être visualisées. Consultez la [section parente](s3-example-photos-view.md) pour plus de détails et les conditions préalables.

Code HTML pour l'exemple :

```
<!DOCTYPE html>
<html>
  <head>
    <!-- **DO THIS**: -->
    <!--   Replace SDK_VERSION_NUMBER with the current SDK version number -->
    <script src="https://sdk.amazonaws.com/js/aws-sdk-SDK_VERSION_NUMBER.js"></script>
    <script src="./PhotoViewer.js"></script>
    <script>listAlbums();</script>
  </head>
  <body>
    <h1>Photo Album Viewer</h1>
    <div id="viewer" />
  </body>
</html>
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_PhotoViewer.html).

Code de script de navigateur pour l'exemple :

```
//
// Data constructs and initialization.
//

// **DO THIS**:
//   Replace BUCKET_NAME with the bucket name.
//
var albumBucketName = "BUCKET_NAME";

// **DO THIS**:
//   Replace this block of code with the sample code located at:
//   Cognito -- Manage Identity Pools -- [identity_pool_name] -- Sample Code -- JavaScript
//
// Initialize the Amazon Cognito credentials provider
AWS.config.region = "REGION"; // Region
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
  IdentityPoolId: "IDENTITY_POOL_ID",
});

// Create a new service object
var s3 = new AWS.S3({
  apiVersion: "2006-03-01",
  params: { Bucket: albumBucketName },
});

// A utility function to create HTML.
function getHtml(template) {
  return template.join("\n");
}

//
// Functions
//

// List the photo albums that exist in the bucket.
function listAlbums() {
  s3.listObjects({ Delimiter: "/" }, function (err, data) {
    if (err) {
      return alert("There was an error listing your albums: " + err.message);
    } else {
      var albums = data.CommonPrefixes.map(function (commonPrefix) {
        var prefix = commonPrefix.Prefix;
        var albumName = decodeURIComponent(prefix.replace("/", ""));
        return getHtml([
          "<li>",
          '<button style="margin:5px;" onclick="viewAlbum(\'' +
            albumName +
            "')\">",
          albumName,
          "</button>",
          "</li>",
        ]);
      });
      var message = albums.length
        ? getHtml(["<p>Click on an album name to view it.</p>"])
        : "<p>You do not have any albums. Please Create album.";
      var htmlTemplate = [
        "<h2>Albums</h2>",
        message,
        "<ul>",
        getHtml(albums),
        "</ul>",
      ];
      document.getElementById("viewer").innerHTML = getHtml(htmlTemplate);
    }
  });
}

// Show the photos that exist in an album.
function viewAlbum(albumName) {
  var albumPhotosKey = encodeURIComponent(albumName) + "/";
  s3.listObjects({ Prefix: albumPhotosKey }, function (err, data) {
    if (err) {
      return alert("There was an error viewing your album: " + err.message);
    }
    // 'this' references the AWS.Request instance that represents the response
    var href = this.request.httpRequest.endpoint.href;
    var bucketUrl = href + albumBucketName + "/";

    var photos = data.Contents.map(function (photo) {
      var photoKey = photo.Key;
      var photoUrl = bucketUrl + encodeURIComponent(photoKey);
      return getHtml([
        "<span>",
        "<div>",
        "<br/>",
        '<img style="width:128px;height:128px;" src="' + photoUrl + '"/>',
        "</div>",
        "<div>",
        "<span>",
        photoKey.replace(albumPhotosKey, ""),
        "</span>",
        "</div>",
        "</span>",
      ]);
    });
    var message = photos.length
      ? "<p>The following photos are present.</p>"
      : "<p>There are no photos in this album.</p>";
    var htmlTemplate = [
      "<div>",
      '<button onclick="listAlbums()">',
      "Back To Albums",
      "</button>",
      "</div>",
      "<h2>",
      "Album: " + albumName,
      "</h2>",
      message,
      "<div>",
      getHtml(photos),
      "</div>",
      "<h2>",
      "End of Album: " + albumName,
      "</h2>",
      "<div>",
      '<button onclick="listAlbums()">',
      "Back To Albums",
      "</button>",
      "</div>",
    ];
    document.getElementById("viewer").innerHTML = getHtml(htmlTemplate);
    document
      .getElementsByTagName("img")[0]
      .setAttribute("style", "display:none;");
  });
}
```

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

# Téléchargement de photos vers Amazon S3 depuis un navigateur
<a name="s3-example-photo-album"></a>

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

**Cet exemple de code de script de navigateur illustre :**
+ Comment créer une application de navigateur qui permet aux utilisateurs de créer des albums photos dans un compartiment Amazon S3 et de télécharger des photos dans les albums.

## Scénario
<a name="s3-example-photo-album-scenario"></a>

Dans cet exemple, une simple page HTML fournit une application basée sur un navigateur pour créer des albums photos dans un compartiment Amazon S3 dans lequel vous pouvez télécharger des photos. L'application vous permet de supprimer les photos et les albums que vous ajoutez.

![\[JavaScript dans un script de navigateur utilisant des compartiments Amazon S3 pour les albums photos.\]](http://docs.aws.amazon.com/fr_fr/sdk-for-javascript/v2/developer-guide/images/s3-photo-album-example.png)


Le script de navigateur utilise le SDK JavaScript pour interagir avec un compartiment Amazon S3. Utilisez les méthodes suivantes de la classe client Amazon S3 pour activer l'application d'album photo : 
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listObjects-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listObjects-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#headObject-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#headObject-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putObject-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putObject-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#upload-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#upload-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteObject-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteObject-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteObjects-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteObjects-property)

## Tâches prérequises
<a name="s3-example-photo-album-scenario-prerequisites"></a>

Pour configurer et exécuter cet exemple, vous devez d'abord :
+ Dans la [console Amazon S3](https://console.aws.amazon.com/s3/), créez un compartiment Amazon S3 que vous utiliserez pour stocker les photos de l'album. Pour plus d'informations sur la création d'un bucket dans la console, consultez [Creating a Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html) dans le *guide de l'utilisateur d'Amazon Simple Storage Service*. Veillez à disposer des autorisations **Read (Lecture)** et **Write (Écriture)** sur **Objets**. Pour plus d'informations sur la définition des autorisations de bucket, consultez la section [Configuration des autorisations pour l'accès au site Web](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteAccessPermissionsReqd.html).
+ Dans la [console Amazon Cognito](https://console.aws.amazon.com/cognito/), créez un pool d'identités Amazon Cognito à l'aide d'identités fédérées avec un accès activé pour les utilisateurs non authentifiés de la même région que le compartiment Amazon S3. Vous devez inclure l'ID du groupe d'identités dans le code afin d'obtenir les informations d'identification relatives au script du navigateur. *Pour plus d'informations sur les identités fédérées Amazon Cognito, consultez les [groupes d'identités Amazon Cognito (identités fédérées) dans le guide du développeur Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html).*
+ Dans la [console IAM, recherchez](https://console.aws.amazon.com/iam/) le rôle IAM créé par Amazon Cognito pour les utilisateurs non authentifiés. Ajoutez la politique suivante pour accorder des autorisations de lecture et d'écriture à un compartiment Amazon S3. 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 cette politique de rôle pour le rôle IAM créé par Amazon Cognito pour les utilisateurs non authentifiés.
**Avertissement**  
Si vous activez l'accès pour des utilisateurs non authentifiés, vous accordez un accès total en écriture sur le compartiment et tous les objets du compartiment. Dans cet exemple, cette démarche liée à la sécurité est utile pour mettre l’accent sur les principaux objectifs. Cependant, dans de nombreuses situations réelles, une sécurité plus stricte, comme l'utilisation d'utilisateurs authentifiés et la propriété d'objet, est fortement recommandée.

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

****  

  ```
  {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
        {
           "Effect": "Allow",
           "Action": [
              "s3:DeleteObject",
              "s3:GetObject",
              "s3:ListBucket",
              "s3:PutObject",
              "s3:PutObjectAcl"
           ],
           "Resource": [            
              "arn:aws:s3:::BUCKET_NAME",
              "arn:aws:s3:::BUCKET_NAME/*"
           ]
        }
     ]
  }
  ```

------

## Configuration de CORS
<a name="s3-example-photo-album-cors-configuration"></a>

Avant que le script du navigateur puisse accéder au compartiment Amazon S3, vous devez d'abord configurer sa [configuration CORS](cors.md#configuring-cors-s3-bucket) comme suit.

**Important**  
Dans la nouvelle console S3, la configuration CORS doit être de type JSON.

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

```
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "HEAD",
            "GET",
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [
            "ETag"
        ]
    }
]
```

------
#### [ XML ]

```
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
        <AllowedMethod>HEAD</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
        <ExposeHeader>ETag</ExposeHeader>
    </CORSRule>
</CORSConfiguration>
```

------

## La page web
<a name="s3-example-photo-album-html"></a>

Le code HTML pour l'application de chargement de photos se compose d'un élément <div> dans lequel le script de navigateur crée l'interface utilisateur de chargement. Le premier élément <script> ajoute le kit SDK au script de navigateur. Le deuxième <script>élément ajoute le JavaScript fichier externe qui contient le code du script du navigateur.

```
<!DOCTYPE html>
<html>
  <head>
     <!-- **DO THIS**: -->
    <!--   Replace SDK_VERSION_NUMBER with the current SDK version number -->
    <script src="https://sdk.amazonaws.com/js/aws-sdk-SDK_VERSION_NUMBER.js"></script>
    <script src="./s3_photoExample.js"></script>
    <script>
       function getHtml(template) {
          return template.join('\n');
       }
       listAlbums();
    </script>
  </head>
  <body>
    <h1>My Photo Albums App</h1>
    <div id="app"></div>
  </body>
</html>
```

## Configuration du kit SDK
<a name="s3-example-photo-album-configure-sdk"></a>

Obtenez les informations d'identification nécessaires pour configurer le SDK en appelant la `CognitoIdentityCredentials` méthode, en fournissant l'ID du pool d'identités Amazon Cognito. Ensuite, créez un objet de service `AWS.S3`.

```
var albumBucketName = "BUCKET_NAME";
var bucketRegion = "REGION";
var IdentityPoolId = "IDENTITY_POOL_ID";

AWS.config.update({
  region: bucketRegion,
  credentials: new AWS.CognitoIdentityCredentials({
    IdentityPoolId: IdentityPoolId,
  }),
});

var s3 = new AWS.S3({
  apiVersion: "2006-03-01",
  params: { Bucket: albumBucketName },
});
```

Dans cet exemple, presque tout le code restant est organisé en une série de fonctions qui rassemblent et présentent des informations sur les albums dans le compartiment, chargent et affichent les photos téléchargées dans les albums, et suppriment les photos et les albums. Ces fonctions sont :
+ `listAlbums`
+ `createAlbum`
+ `viewAlbum`
+ `addPhoto`
+ `deleteAlbum`
+ `deletePhoto`

## Liste des albums dans le compartiment
<a name="s3-example-photo-album-list-albums"></a>

L'application crée des albums dans le compartiment Amazon S3 sous forme d'objets dont les touches commencent par une barre oblique, indiquant que l'objet fonctionne comme un dossier. Pour répertorier tous les albums existants, la fonction `listAlbums` de l'application appelle la méthode `listObjects` de l'objet de service `AWS.S3` tout en utilisant `commonPrefix`, afin que l'appel retourne uniquement les objets utilisés en tant qu'albums.

Le reste de la fonction prend la liste des albums du compartiment Amazon S3 et génère le code HTML nécessaire pour afficher la liste des albums sur la page Web. Cela permet également de supprimer et d'ouvrir des albums individuels.

```
function listAlbums() {
  s3.listObjects({ Delimiter: "/" }, function (err, data) {
    if (err) {
      return alert("There was an error listing your albums: " + err.message);
    } else {
      var albums = data.CommonPrefixes.map(function (commonPrefix) {
        var prefix = commonPrefix.Prefix;
        var albumName = decodeURIComponent(prefix.replace("/", ""));
        return getHtml([
          "<li>",
          "<span onclick=\"deleteAlbum('" + albumName + "')\">X</span>",
          "<span onclick=\"viewAlbum('" + albumName + "')\">",
          albumName,
          "</span>",
          "</li>",
        ]);
      });
      var message = albums.length
        ? getHtml([
            "<p>Click on an album name to view it.</p>",
            "<p>Click on the X to delete the album.</p>",
          ])
        : "<p>You do not have any albums. Please Create album.";
      var htmlTemplate = [
        "<h2>Albums</h2>",
        message,
        "<ul>",
        getHtml(albums),
        "</ul>",
        "<button onclick=\"createAlbum(prompt('Enter Album Name:'))\">",
        "Create New Album",
        "</button>",
      ];
      document.getElementById("app").innerHTML = getHtml(htmlTemplate);
    }
  });
}
```

## Création d'un album dans le compartiment
<a name="s3-example-photo-album-create-album"></a>

Pour créer un album dans le compartiment Amazon S3, la `createAlbum` fonction de l'application valide d'abord le nom donné au nouvel album afin de s'assurer qu'il contient les caractères appropriés. La fonction forme ensuite une clé d'objet Amazon S3, qu'elle transmet à la `headObject` méthode de l'objet de service Amazon S3. Cette méthode retourne les métadonnées pour la clé spécifiée, si bien que si elle retourne des données, cela signifie qu'un objet avec cette clé existe déjà.

Si l'album n'existe pas déjà, la fonction appelle la méthode `putObject` de l'objet de service `AWS.S3` pour créer l'album. Ensuite, elle appelle la fonction `viewAlbum` pour afficher le nouvel album vide.

```
function createAlbum(albumName) {
  albumName = albumName.trim();
  if (!albumName) {
    return alert("Album names must contain at least one non-space character.");
  }
  if (albumName.indexOf("/") !== -1) {
    return alert("Album names cannot contain slashes.");
  }
  var albumKey = encodeURIComponent(albumName);
  s3.headObject({ Key: albumKey }, function (err, data) {
    if (!err) {
      return alert("Album already exists.");
    }
    if (err.code !== "NotFound") {
      return alert("There was an error creating your album: " + err.message);
    }
    s3.putObject({ Key: albumKey }, function (err, data) {
      if (err) {
        return alert("There was an error creating your album: " + err.message);
      }
      alert("Successfully created album.");
      viewAlbum(albumName);
    });
  });
}
```

## Affichage d'un album
<a name="s3-example-photo-album-viewing-album"></a>

Pour afficher le contenu d'un album dans le compartiment Amazon S3, la `viewAlbum` fonction de l'application prend un nom d'album et crée la clé Amazon S3 pour cet album. Ensuite, la fonction appelle la méthode `listObjects` de l'objet de service `AWS.S3` pour obtenir une liste de tous les objets (photos) de l'album.

Le reste de la fonction prend la liste des objets (photos) de l'album et génère le code HTML nécessaire à l'affichage des photos dans la page web. Cela permet également de supprimer des photos individuelles et de revenir à la liste de l'album.

```
function viewAlbum(albumName) {
  var albumPhotosKey = encodeURIComponent(albumName) + "/";
  s3.listObjects({ Prefix: albumPhotosKey }, function (err, data) {
    if (err) {
      return alert("There was an error viewing your album: " + err.message);
    }
    // 'this' references the AWS.Response instance that represents the response
    var href = this.request.httpRequest.endpoint.href;
    var bucketUrl = href + albumBucketName + "/";

    var photos = data.Contents.map(function (photo) {
      var photoKey = photo.Key;
      var photoUrl = bucketUrl + encodeURIComponent(photoKey);
      return getHtml([
        "<span>",
        "<div>",
        '<img style="width:128px;height:128px;" src="' + photoUrl + '"/>',
        "</div>",
        "<div>",
        "<span onclick=\"deletePhoto('" +
          albumName +
          "','" +
          photoKey +
          "')\">",
        "X",
        "</span>",
        "<span>",
        photoKey.replace(albumPhotosKey, ""),
        "</span>",
        "</div>",
        "</span>",
      ]);
    });
    var message = photos.length
      ? "<p>Click on the X to delete the photo</p>"
      : "<p>You do not have any photos in this album. Please add photos.</p>";
    var htmlTemplate = [
      "<h2>",
      "Album: " + albumName,
      "</h2>",
      message,
      "<div>",
      getHtml(photos),
      "</div>",
      '<input id="photoupload" type="file" accept="image/*">',
      '<button id="addphoto" onclick="addPhoto(\'' + albumName + "')\">",
      "Add Photo",
      "</button>",
      '<button onclick="listAlbums()">',
      "Back To Albums",
      "</button>",
    ];
    document.getElementById("app").innerHTML = getHtml(htmlTemplate);
  });
}
```

## Ajout de photos à un album
<a name="s3-example-photo-album-adding-photos"></a>

Pour télécharger une photo dans un album du compartiment Amazon S3, la `addPhoto` fonction de l'application utilise un élément de sélection de fichiers dans la page Web pour identifier le fichier à télécharger. Ensuite, elle forme une clé pour la photo à charger à partir du nom de l'album et du nom du fichier actuels.

La fonction appelle la `upload` méthode de l'objet de service Amazon S3 pour télécharger la photo. Après avoir chargé la photo, la fonction affiche de nouveau l'album afin que la photo chargée apparaisse.

```
function addPhoto(albumName) {
  var files = document.getElementById("photoupload").files;
  if (!files.length) {
    return alert("Please choose a file to upload first.");
  }
  var file = files[0];
  var fileName = file.name;
  var albumPhotosKey = encodeURIComponent(albumName) + "/";

  var photoKey = albumPhotosKey + fileName;

  // Use S3 ManagedUpload class as it supports multipart uploads
  var upload = new AWS.S3.ManagedUpload({
    params: {
      Bucket: albumBucketName,
      Key: photoKey,
      Body: file,
    },
  });

  var promise = upload.promise();

  promise.then(
    function (data) {
      alert("Successfully uploaded photo.");
      viewAlbum(albumName);
    },
    function (err) {
      return alert("There was an error uploading your photo: ", err.message);
    }
  );
}
```

## Suppression d'une photo
<a name="s3-example-photo-album-delete-photo"></a>

Pour supprimer une photo d'un album du compartiment Amazon S3, la `deletePhoto` fonction de l'application appelle la `deleteObject` méthode de l'objet de service Amazon S3. Cela supprime la photo spécifiée par la valeur `photoKey` transmise à la fonction.

```
function deletePhoto(albumName, photoKey) {
  s3.deleteObject({ Key: photoKey }, function (err, data) {
    if (err) {
      return alert("There was an error deleting your photo: ", err.message);
    }
    alert("Successfully deleted photo.");
    viewAlbum(albumName);
  });
}
```

## Suppression d'un album
<a name="s3-example-photo-album-delete-album"></a>

Pour supprimer un album dans le compartiment Amazon S3, la `deleteAlbum` fonction de l'application appelle la `deleteObjects` méthode de l'objet de service Amazon S3.

```
function deleteAlbum(albumName) {
  var albumKey = encodeURIComponent(albumName) + "/";
  s3.listObjects({ Prefix: albumKey }, function (err, data) {
    if (err) {
      return alert("There was an error deleting your album: ", err.message);
    }
    var objects = data.Contents.map(function (object) {
      return { Key: object.Key };
    });
    s3.deleteObjects(
      {
        Delete: { Objects: objects, Quiet: true },
      },
      function (err, data) {
        if (err) {
          return alert("There was an error deleting your album: ", err.message);
        }
        alert("Successfully deleted album.");
        listAlbums();
      }
    );
  });
}
```

# Téléchargement de photos sur Amazon S3 : code complet
<a name="s3-example-photo-album-full"></a>

Cette section contient le code HTML complet et le JavaScript code de l'exemple dans lequel les photos sont chargées dans un album photo Amazon S3. Consultez la [section parente](s3-example-photo-album.md) pour plus de détails et les conditions préalables.

Code HTML pour l'exemple :

```
<!DOCTYPE html>
<html>
  <head>
     <!-- **DO THIS**: -->
    <!--   Replace SDK_VERSION_NUMBER with the current SDK version number -->
    <script src="https://sdk.amazonaws.com/js/aws-sdk-SDK_VERSION_NUMBER.js"></script>
    <script src="./s3_photoExample.js"></script>
    <script>
       function getHtml(template) {
          return template.join('\n');
       }
       listAlbums();
    </script>
  </head>
  <body>
    <h1>My Photo Albums App</h1>
    <div id="app"></div>
  </body>
</html>
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_photoExample.html).

Code de script de navigateur pour l'exemple :

```
var albumBucketName = "BUCKET_NAME";
var bucketRegion = "REGION";
var IdentityPoolId = "IDENTITY_POOL_ID";

AWS.config.update({
  region: bucketRegion,
  credentials: new AWS.CognitoIdentityCredentials({
    IdentityPoolId: IdentityPoolId,
  }),
});

var s3 = new AWS.S3({
  apiVersion: "2006-03-01",
  params: { Bucket: albumBucketName },
});

function listAlbums() {
  s3.listObjects({ Delimiter: "/" }, function (err, data) {
    if (err) {
      return alert("There was an error listing your albums: " + err.message);
    } else {
      var albums = data.CommonPrefixes.map(function (commonPrefix) {
        var prefix = commonPrefix.Prefix;
        var albumName = decodeURIComponent(prefix.replace("/", ""));
        return getHtml([
          "<li>",
          "<span onclick=\"deleteAlbum('" + albumName + "')\">X</span>",
          "<span onclick=\"viewAlbum('" + albumName + "')\">",
          albumName,
          "</span>",
          "</li>",
        ]);
      });
      var message = albums.length
        ? getHtml([
            "<p>Click on an album name to view it.</p>",
            "<p>Click on the X to delete the album.</p>",
          ])
        : "<p>You do not have any albums. Please Create album.";
      var htmlTemplate = [
        "<h2>Albums</h2>",
        message,
        "<ul>",
        getHtml(albums),
        "</ul>",
        "<button onclick=\"createAlbum(prompt('Enter Album Name:'))\">",
        "Create New Album",
        "</button>",
      ];
      document.getElementById("app").innerHTML = getHtml(htmlTemplate);
    }
  });
}

function createAlbum(albumName) {
  albumName = albumName.trim();
  if (!albumName) {
    return alert("Album names must contain at least one non-space character.");
  }
  if (albumName.indexOf("/") !== -1) {
    return alert("Album names cannot contain slashes.");
  }
  var albumKey = encodeURIComponent(albumName);
  s3.headObject({ Key: albumKey }, function (err, data) {
    if (!err) {
      return alert("Album already exists.");
    }
    if (err.code !== "NotFound") {
      return alert("There was an error creating your album: " + err.message);
    }
    s3.putObject({ Key: albumKey }, function (err, data) {
      if (err) {
        return alert("There was an error creating your album: " + err.message);
      }
      alert("Successfully created album.");
      viewAlbum(albumName);
    });
  });
}

function viewAlbum(albumName) {
  var albumPhotosKey = encodeURIComponent(albumName) + "/";
  s3.listObjects({ Prefix: albumPhotosKey }, function (err, data) {
    if (err) {
      return alert("There was an error viewing your album: " + err.message);
    }
    // 'this' references the AWS.Response instance that represents the response
    var href = this.request.httpRequest.endpoint.href;
    var bucketUrl = href + albumBucketName + "/";

    var photos = data.Contents.map(function (photo) {
      var photoKey = photo.Key;
      var photoUrl = bucketUrl + encodeURIComponent(photoKey);
      return getHtml([
        "<span>",
        "<div>",
        '<img style="width:128px;height:128px;" src="' + photoUrl + '"/>',
        "</div>",
        "<div>",
        "<span onclick=\"deletePhoto('" +
          albumName +
          "','" +
          photoKey +
          "')\">",
        "X",
        "</span>",
        "<span>",
        photoKey.replace(albumPhotosKey, ""),
        "</span>",
        "</div>",
        "</span>",
      ]);
    });
    var message = photos.length
      ? "<p>Click on the X to delete the photo</p>"
      : "<p>You do not have any photos in this album. Please add photos.</p>";
    var htmlTemplate = [
      "<h2>",
      "Album: " + albumName,
      "</h2>",
      message,
      "<div>",
      getHtml(photos),
      "</div>",
      '<input id="photoupload" type="file" accept="image/*">',
      '<button id="addphoto" onclick="addPhoto(\'' + albumName + "')\">",
      "Add Photo",
      "</button>",
      '<button onclick="listAlbums()">',
      "Back To Albums",
      "</button>",
    ];
    document.getElementById("app").innerHTML = getHtml(htmlTemplate);
  });
}

function addPhoto(albumName) {
  var files = document.getElementById("photoupload").files;
  if (!files.length) {
    return alert("Please choose a file to upload first.");
  }
  var file = files[0];
  var fileName = file.name;
  var albumPhotosKey = encodeURIComponent(albumName) + "/";

  var photoKey = albumPhotosKey + fileName;

  // Use S3 ManagedUpload class as it supports multipart uploads
  var upload = new AWS.S3.ManagedUpload({
    params: {
      Bucket: albumBucketName,
      Key: photoKey,
      Body: file,
    },
  });

  var promise = upload.promise();

  promise.then(
    function (data) {
      alert("Successfully uploaded photo.");
      viewAlbum(albumName);
    },
    function (err) {
      return alert("There was an error uploading your photo: ", err.message);
    }
  );
}

function deletePhoto(albumName, photoKey) {
  s3.deleteObject({ Key: photoKey }, function (err, data) {
    if (err) {
      return alert("There was an error deleting your photo: ", err.message);
    }
    alert("Successfully deleted photo.");
    viewAlbum(albumName);
  });
}

function deleteAlbum(albumName) {
  var albumKey = encodeURIComponent(albumName) + "/";
  s3.listObjects({ Prefix: albumKey }, function (err, data) {
    if (err) {
      return alert("There was an error deleting your album: ", err.message);
    }
    var objects = data.Contents.map(function (object) {
      return { Key: object.Key };
    });
    s3.deleteObjects(
      {
        Delete: { Objects: objects, Quiet: true },
      },
      function (err, data) {
        if (err) {
          return alert("There was an error deleting your album: ", err.message);
        }
        alert("Successfully deleted album.");
        listAlbums();
      }
    );
  });
}
```

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

# Exemples Node.js d'Amazon S3
<a name="s3-node-examples"></a>

Les rubriques suivantes présentent des exemples de la manière dont ils AWS SDK pour JavaScript peuvent être utilisés pour interagir avec les compartiments Amazon S3 à l'aide de Node.js.

**Topics**
+ [Création et utilisation de compartiments Amazon S3](s3-example-creating-buckets.md)
+ [Configuration de compartiments Amazon S3](s3-example-configuring-buckets.md)
+ [Gestion des autorisations d’accès aux compartiments Amazon S3](s3-example-access-permissions.md)
+ [Utilisation de stratégies de compartiment Amazon S3](s3-example-bucket-policies.md)
+ [Utilisation d’un compartiment Amazon S3 en tant qu’hôte Web statique](s3-example-static-web-host.md)

# Création et utilisation de compartiments Amazon S3
<a name="s3-example-creating-buckets"></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 :**
+ Comment obtenir et afficher une liste des compartiments Amazon S3 dans votre compte.
+ Comment créer un compartiment Amazon S3.
+ Comment charger un objet dans un compartiment spécifié.

## Scénario
<a name="s3-example-creating-buckets-scenario"></a>

Dans cet exemple, une série de modules Node.js sont utilisés pour obtenir une liste des compartiments Amazon S3 existants, créer un compartiment et charger un fichier dans un compartiment spécifié. Ces modules Node.js utilisent le SDK pour JavaScript obtenir des informations et télécharger des fichiers dans un compartiment Amazon S3 en utilisant les méthodes suivantes de la classe client Amazon S3 :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listBuckets-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listBuckets-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#createBucket-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#createBucket-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listObjects-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listObjects-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#upload-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#upload-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteBucket-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteBucket-property)

## Tâches prérequises
<a name="s3-example-creating-buckets-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).

## Configuration du kit SDK
<a name="s3-example-creating-buckets-configure-sdk"></a>

Configurez le SDK pour JavaScript en créant un objet de configuration global, puis en définissant la région pour votre code. Dans cet exemple, la région est `us-west-2`.

```
// Load the SDK for JavaScript
var AWS = require('aws-sdk');
// Set the Region 
AWS.config.update({region: 'us-west-2'});
```

## Afficher la liste des compartiments Amazon S3
<a name="s3-example-creating-buckets-list-buckets"></a>

Créez un module Node.js nommé `s3_listbuckets.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon Simple Storage Service, créez un objet `AWS.S3` de service. Appelez la `listBuckets` méthode de l'objet de service Amazon S3 pour récupérer la liste de vos buckets. Le paramètre `data` de la fonction de rappel dispose d'une propriété `Buckets` contenant un tableau de cartes pour représenter les compartiments. Affichez la liste des compartiments en la connectant à la console.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create S3 service object
s3 = new AWS.S3({ apiVersion: "2006-03-01" });

// Call S3 to list the buckets
s3.listBuckets(function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.Buckets);
  }
});
```

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

```
node s3_listbuckets.js
```

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

## Création d’un compartiment Amazon S3
<a name="s3-example-creating-buckets-new-bucket"></a>

Créez un module Node.js nommé `s3_createbucket.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Créez un objet de service `AWS.S3`. Le module prend un seul argument de ligne de commande pour spécifier un nom pour le nouveau compartiment.

Ajoutez une variable contenant les paramètres utilisés pour appeler la `createBucket` méthode de l'objet de service Amazon S3, y compris le nom du compartiment nouvellement créé. La fonction de rappel enregistre l'emplacement du nouveau compartiment sur la console une fois qu'Amazon S3 l'a créé avec succès.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create S3 service object
s3 = new AWS.S3({ apiVersion: "2006-03-01" });

// Create the parameters for calling createBucket
var bucketParams = {
  Bucket: process.argv[2],
};

// call S3 to create the bucket
s3.createBucket(bucketParams, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.Location);
  }
});
```

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

```
node s3_createbucket.js BUCKET_NAME
```

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

## Chargement d'un fichier dans un compartiment Amazon S3
<a name="s3-example-creating-buckets-upload-file"></a>

Créez un module Node.js nommé `s3_upload.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Créez un objet de service `AWS.S3`. Le module prend deux arguments de ligne de commande : le premier pour spécifier le compartiment de destination et le deuxième pour spécifier le fichier à charger.

Créez une variable avec les paramètres nécessaires pour appeler la `upload` méthode de l'objet de service Amazon S3. Indiquez le nom du compartiment cible dans le paramètre `Bucket`. Le paramètre `Key` est défini sur le nom du fichier sélectionné que vous pouvez obtenir à l'aide du module `path` Node.js. Le paramètre `Body` est défini sur les contenus du fichier que vous pouvez obtenir à l'aide de `createReadStream` à partir du module `fs` Node.js.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create S3 service object
var s3 = new AWS.S3({ apiVersion: "2006-03-01" });

// call S3 to retrieve upload file to specified bucket
var uploadParams = { Bucket: process.argv[2], Key: "", Body: "" };
var file = process.argv[3];

// Configure the file stream and obtain the upload parameters
var fs = require("fs");
var fileStream = fs.createReadStream(file);
fileStream.on("error", function (err) {
  console.log("File Error", err);
});
uploadParams.Body = fileStream;
var path = require("path");
uploadParams.Key = path.basename(file);

// call S3 to retrieve upload file to specified bucket
s3.upload(uploadParams, function (err, data) {
  if (err) {
    console.log("Error", err);
  }
  if (data) {
    console.log("Upload Success", data.Location);
  }
});
```

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

```
node s3_upload.js BUCKET_NAME FILE_NAME
```

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

## Répertorier des objets dans un compartiment Amazon S3
<a name="s3-example-listing-objects"></a>

Créez un module Node.js nommé `s3_listobjects.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Créez un objet de service `AWS.S3`. 

Ajoutez une variable contenant les paramètres utilisés pour appeler la `listObjects` méthode de l'objet de service Amazon S3, y compris le nom du compartiment à lire. La fonction de rappel journalise une liste d'objets (fichiers) ou un message d'erreur.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create S3 service object
s3 = new AWS.S3({ apiVersion: "2006-03-01" });

// Create the parameters for calling listObjects
var bucketParams = {
  Bucket: "BUCKET_NAME",
};

// Call S3 to obtain a list of the objects in the bucket
s3.listObjects(bucketParams, 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 s3_listobjects.js
```

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

## Supprimer un compartiment Amazon S3
<a name="s3-example-deleting-buckets"></a>

Créez un module Node.js nommé `s3_deletebucket.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Créez un objet de service `AWS.S3`. 

Ajoutez une variable contenant les paramètres utilisés pour appeler la `createBucket` méthode de l'objet de service Amazon S3, y compris le nom du compartiment à supprimer. Pour être supprimé, le compartiment doit être vide. La fonction de rappel journalise un message de réussite ou d'échec.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create S3 service object
s3 = new AWS.S3({ apiVersion: "2006-03-01" });

// Create params for S3.deleteBucket
var bucketParams = {
  Bucket: "BUCKET_NAME",
};

// Call S3 to delete the bucket
s3.deleteBucket(bucketParams, 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 s3_deletebucket.js
```

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

# Configuration de compartiments Amazon S3
<a name="s3-example-configuring-buckets"></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 :**
+ Comment configurer les autorisations de partage des ressources cross-origine (CORS) d'un compartiment.

## Scénario
<a name="s3-example-configuring-buckets-scenario"></a>

Dans cet exemple, une série de modules Node.js est utilisée pour répertorier vos compartiments Amazon S3 et configurer le partage CORS ainsi que la journalisation des compartiments. Les modules Node.js utilisent le SDK pour configurer un compartiment Amazon S3 sélectionné JavaScript à l'aide des méthodes suivantes de la classe client Amazon S3 :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getBucketCors-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getBucketCors-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putBucketCors-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putBucketCors-property)

Pour plus d'informations sur l'utilisation de la configuration CORS avec un compartiment Amazon S3, consultez [Cross-Origin Resource Sharing (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) dans le guide de l'utilisateur d'*Amazon Simple Storage Service*.

## Tâches prérequises
<a name="s3-example-configuring-buckets-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).

## Configuration du kit SDK
<a name="s3-example-configuring-buckets-configure-sdk"></a>

Configurez le SDK pour JavaScript en créant un objet de configuration global, puis en définissant la région pour votre code. Dans cet exemple, la région est `us-west-2`.

```
// Load the SDK for JavaScript
var AWS = require('aws-sdk');
// Set the Region 
AWS.config.update({region: 'us-west-2'});
```

## Extraction de la configuration CORS d'un compartiment
<a name="s3-example-configuring-buckets-get-cors"></a>

Créez un module Node.js nommé `s3_getcors.js`. Le module prend un seul argument de ligne de commande pour spécifier le compartiment de la configuration CORS que vous souhaitez. Veillez à configurer le kit SDK comme indiqué précédemment. Créez un objet de service `AWS.S3`. 

Le seul paramètre à passer est le nom du compartiment sélectionné lorsque vous appelez la méthode `getBucketCors`. Si le compartiment possède actuellement une configuration CORS, cette configuration est renvoyée par Amazon S3 en tant que `CORSRules` propriété du `data` paramètre transmis à la fonction de rappel.

Si le compartiment sélectionné ne dispose pas de configuration CORS, ces informations sont retournées à la fonction de rappel dans le paramètre `error`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create S3 service object
s3 = new AWS.S3({ apiVersion: "2006-03-01" });

// Set the parameters for S3.getBucketCors
var bucketParams = { Bucket: process.argv[2] };

// call S3 to retrieve CORS configuration for selected bucket
s3.getBucketCors(bucketParams, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else if (data) {
    console.log("Success", JSON.stringify(data.CORSRules));
  }
});
```

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

```
node s3_getcors.js BUCKET_NAME
```

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

## Définition d'une configuration CORS de compartiment
<a name="s3-example-configuring-buckets-put-cors"></a>

Créez un module Node.js nommé `s3_setcors.js`. Le module prend plusieurs arguments de ligne de commande: le premier spécifie le compartiment de la configuration CORS que vous souhaitez définir. D'autres arguments énumèrent les méthodes HTTP (POST, GET, PUT, PATCH, DELETE, POST) que vous souhaitez autoriser pour le compartiment. Configurez le kit SDK comme illustré précédemment.

 Créez un objet de service `AWS.S3`. Ensuite, créez un objet JSON pour contenir les valeur de la configuration CORS selon les besoins de la méthode `putBucketCors` de l'objet de service `AWS.S3`. Spécifiez `"Authorization"` pour la valeur `AllowedHeaders` et `"*"` pour la valeur `AllowedOrigins`. Tout d'abord, définissez la valeur `AllowedMethods` comme un tableau vide.

Spécifiez les méthodes autorisées comme paramètres de ligne de commande pour le module Node.js, en ajoutant chacune des méthodes correspondant à l'un des paramètres. Ajoutez la configuration CORS obtenue au tableau des configurations du paramètre `CORSRules`. Spécifiez le compartiment que vous souhaitez configurer pour CORS dans le paramètre `Bucket`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create S3 service object
s3 = new AWS.S3({ apiVersion: "2006-03-01" });

// Create initial parameters JSON for putBucketCors
var thisConfig = {
  AllowedHeaders: ["Authorization"],
  AllowedMethods: [],
  AllowedOrigins: ["*"],
  ExposeHeaders: [],
  MaxAgeSeconds: 3000,
};

// Assemble the list of allowed methods based on command line parameters
var allowedMethods = [];
process.argv.forEach(function (val, index, array) {
  if (val.toUpperCase() === "POST") {
    allowedMethods.push("POST");
  }
  if (val.toUpperCase() === "GET") {
    allowedMethods.push("GET");
  }
  if (val.toUpperCase() === "PUT") {
    allowedMethods.push("PUT");
  }
  if (val.toUpperCase() === "PATCH") {
    allowedMethods.push("PATCH");
  }
  if (val.toUpperCase() === "DELETE") {
    allowedMethods.push("DELETE");
  }
  if (val.toUpperCase() === "HEAD") {
    allowedMethods.push("HEAD");
  }
});

// Copy the array of allowed methods into the config object
thisConfig.AllowedMethods = allowedMethods;
// Create array of configs then add the config object to it
var corsRules = new Array(thisConfig);

// Create CORS params
var corsParams = {
  Bucket: process.argv[2],
  CORSConfiguration: { CORSRules: corsRules },
};

// set the new CORS configuration on the selected bucket
s3.putBucketCors(corsParams, function (err, data) {
  if (err) {
    // display error message
    console.log("Error", err);
  } else {
    // update the displayed CORS config for the selected bucket
    console.log("Success", data);
  }
});
```

Pour exécuter l'exemple, saisissez la ligne de commande suivante, y compris une ou plusieurs méthodes HTTP comme illustré.

```
node s3_setcors.js BUCKET_NAME get put
```

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

# Gestion des autorisations d’accès aux compartiments Amazon S3
<a name="s3-example-access-permissions"></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 :**
+ Comment extraire ou définir la liste de contrôle d'accès pour un compartiment Amazon S3.

## Scénario
<a name="w2aac20c25c27c13b9"></a>

Dans cet exemple, un module Node.js est utilisé pour afficher la liste de contrôle d'accès (ACL) de compartiment d'un compartiment sélectionné et appliquer les modifications à la liste de contrôle d'accès (ACL) pour un compartiment sélectionné. Le module Node.js utilise le SDK pour gérer les autorisations JavaScript d'accès aux compartiments Amazon S3 à l'aide des méthodes suivantes de la classe client Amazon S3 :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getBucketAcl-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getBucketAcl-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putBucketAcl-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putBucketAcl-property)

Pour plus d'informations sur les listes de contrôle d'accès pour les compartiments Amazon S3, consultez [Managing Access with ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3_ACLs_UsingACLs.html) dans le *guide de l'utilisateur d'Amazon Simple Storage Service*.

## Tâches prérequises
<a name="w2aac20c25c27c13c11"></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).

## Configuration du kit SDK
<a name="s3-example-access-permissions-configure-sdk"></a>

Configurez le SDK pour JavaScript en créant un objet de configuration global, puis en définissant la région pour votre code. Dans cet exemple, la région est `us-west-2`.

```
// Load the SDK for JavaScript
var AWS = require('aws-sdk');
// Set the Region 
AWS.config.update({region: 'us-west-2'});
```

## Extraction de la liste de contrôle d'accès du compartiment actuel
<a name="s3-example-access-permissions-get-acl"></a>

Créez un module Node.js nommé `s3_getbucketacl.js`. Le module prend un seul argument de ligne de commande pour spécifier le compartiment de la configuration ACL que vous souhaitez. Veillez à configurer le kit SDK comme indiqué précédemment. 

Créez un objet de service `AWS.S3`. Le seul paramètre à passer est le nom du compartiment sélectionné lorsque vous appelez la méthode `getBucketAcl`. La configuration actuelle de la liste de contrôle d'accès est renvoyée par Amazon S3 dans le `data` paramètre transmis à la fonction de rappel.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create S3 service object
s3 = new AWS.S3({ apiVersion: "2006-03-01" });

var bucketParams = { Bucket: process.argv[2] };
// call S3 to retrieve policy for selected bucket
s3.getBucketAcl(bucketParams, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else if (data) {
    console.log("Success", data.Grants);
  }
});
```

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

```
node s3_getbucketacl.js BUCKET_NAME
```

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

# Utilisation de stratégies de compartiment Amazon S3
<a name="s3-example-bucket-policies"></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 :**
+ Comment récupérer la politique de compartiment d'un compartiment Amazon S3.
+ Comment ajouter ou mettre à jour la politique de compartiment d'un compartiment Amazon S3.
+ Comment supprimer la politique de compartiment d'un compartiment Amazon S3.

## Scénario
<a name="w2aac20c25c27c15b9"></a>

Dans cet exemple, une série de modules Node.js sont utilisés pour récupérer, définir ou supprimer une politique de compartiment sur un compartiment Amazon S3. Les modules Node.js utilisent le SDK JavaScript pour configurer la politique d'un compartiment Amazon S3 sélectionné à l'aide des méthodes suivantes de la classe client Amazon S3 :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getBucketPolicy-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getBucketPolicy-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putBucketPolicy-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putBucketPolicy-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteBucketPolicy-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteBucketPolicy-property)

Pour plus d'informations sur les politiques de compartiment pour les compartiments Amazon S3, consultez la section [Utilisation des politiques de compartiment et des politiques utilisateur](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-iam-policies.html) dans le *guide de l'utilisateur d'Amazon Simple Storage Service*.

## Tâches prérequises
<a name="w2aac20c25c27c15c11"></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).

## Configuration du kit SDK
<a name="s3-example-bucket-policies-configure-sdk"></a>

Configurez le SDK pour JavaScript en créant un objet de configuration global, puis en définissant la région pour votre code. Dans cet exemple, la région est `us-west-2`.

```
// Load the SDK for JavaScript
var AWS = require('aws-sdk');
// Set the Region 
AWS.config.update({region: 'us-west-2'});
```

## Extraction de la stratégie de compartiment actuelle
<a name="s3-example-bucket-policies-get-policy"></a>

Créez un module Node.js nommé `s3_getbucketpolicy.js`. Le module prend un seul argument de ligne de commande pour spécifier le compartiment de la stratégie que vous souhaitez. Veillez à configurer le kit SDK comme indiqué précédemment. 

Créez un objet de service `AWS.S3`. Le seul paramètre à passer est le nom du compartiment sélectionné lorsque vous appelez la méthode `getBucketPolicy`. Si le compartiment possède actuellement une politique, cette politique est renvoyée par Amazon S3 dans le `data` paramètre transmis à la fonction de rappel.

Si le compartiment sélectionné ne dispose pas de stratégie, ces informations sont retournées à la fonction de rappel dans le paramètre `error`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create S3 service object
s3 = new AWS.S3({ apiVersion: "2006-03-01" });

var bucketParams = { Bucket: process.argv[2] };
// call S3 to retrieve policy for selected bucket
s3.getBucketPolicy(bucketParams, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else if (data) {
    console.log("Success", data.Policy);
  }
});
```

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

```
node s3_getbucketpolicy.js BUCKET_NAME
```

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

## Définition d'une stratégie de compartiment simple
<a name="s3-example-bucket-policies-set-policy"></a>

Créez un module Node.js nommé `s3_setbucketpolicy.js`. Le module prend un seul argument de ligne de commande pour spécifier le compartiment de la stratégie que vous souhaitez appliquer. Configurez le kit SDK comme illustré précédemment. 

Créez un objet de service `AWS.S3`. Les stratégies de compartiment sont spécifiées au format JSON. Tout d'abord, créez un objet JSON contenant toutes les valeurs pour spécifier la stratégie à l'exception de la valeur `Resource` qui identifie le compartiment.

Formatez la chaîne `Resource` requise par la stratégie, en intégrant le nom du compartiment sélectionné. Insérez cette chaîne dans l'objet JSON. Préparez les paramètres pour la méthode `putBucketPolicy`, y compris le nom du compartiment et la stratégie JSON convertie en une valeur de chaîne.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create S3 service object
s3 = new AWS.S3({ apiVersion: "2006-03-01" });

var readOnlyAnonUserPolicy = {
  Version: "2012-10-17",
  Statement: [
    {
      Sid: "AddPerm",
      Effect: "Allow",
      Principal: "*",
      Action: ["s3:GetObject"],
      Resource: [""],
    },
  ],
};

// create selected bucket resource string for bucket policy
var bucketResource = "arn:aws:s3:::" + process.argv[2] + "/*";
readOnlyAnonUserPolicy.Statement[0].Resource[0] = bucketResource;

// convert policy JSON into string and assign into params
var bucketPolicyParams = {
  Bucket: process.argv[2],
  Policy: JSON.stringify(readOnlyAnonUserPolicy),
};

// set the new policy on the selected bucket
s3.putBucketPolicy(bucketPolicyParams, function (err, data) {
  if (err) {
    // display error message
    console.log("Error", err);
  } else {
    console.log("Success", data);
  }
});
```

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

```
node s3_setbucketpolicy.js BUCKET_NAME
```

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

## Suppression d'une stratégie de compartiment
<a name="s3-example-bucket-policies-delete-policy"></a>

Créez un module Node.js nommé `s3_deletebucketpolicy.js`. Le module prend un seul argument de ligne de commande pour spécifier le compartiment de la stratégie que vous souhaitez supprimer. Configurez le kit SDK comme illustré précédemment.

 Créez un objet de service `AWS.S3`. Le seul paramètre à passer lorsque vous appelez la méthode `deleteBucketPolicy` est le nom du compartiment sélectionné.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create S3 service object
s3 = new AWS.S3({ apiVersion: "2006-03-01" });

var bucketParams = { Bucket: process.argv[2] };
// call S3 to delete policy for selected bucket
s3.deleteBucketPolicy(bucketParams, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else if (data) {
    console.log("Success", data);
  }
});
```

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

```
node s3_deletebucketpolicy.js BUCKET_NAME
```

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

# Utilisation d’un compartiment Amazon S3 en tant qu’hôte Web statique
<a name="s3-example-static-web-host"></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 :**
+ Comment configurer un compartiment Amazon S3 en tant qu'hôte Web statique.

## Scénario
<a name="s3-example-static-web-host-scenario"></a>

Dans cet exemple, une série de modules Node.js est utilisée pour configurer tous vos compartiments comme hôte web statique. Les modules Node.js utilisent le SDK pour configurer un compartiment Amazon S3 sélectionné JavaScript à l'aide des méthodes suivantes de la classe client Amazon S3 :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getBucketWebsite-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getBucketWebsite-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putBucketWebsite-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putBucketWebsite-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteBucketWebsite-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteBucketWebsite-property)

Pour plus d'informations sur l'utilisation d'un compartiment Amazon S3 en tant qu'hôte Web statique, consultez la section [Hébergement d'un site Web statique sur Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html) dans le *guide de l'utilisateur d'Amazon Simple Storage Service*.

## Tâches prérequises
<a name="s3-example-static-web-host-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).

## Configuration du kit SDK
<a name="s3-example-static-web-host-configure-sdk"></a>

Configurez le SDK pour JavaScript en créant un objet de configuration global, puis en définissant la région pour votre code. Dans cet exemple, la région est `us-west-2`.

```
// Load the SDK for JavaScript
var AWS = require('aws-sdk');
// Set the Region 
AWS.config.update({region: 'us-west-2'});
```

## Extraction de la configuration actuelle du site web d'un compartiment
<a name="s3-example-static-web-host-get-website"></a>

Créez un module Node.js nommé `s3_getbucketwebsite.js`. Le module prend un seul argument de ligne de commande pour spécifier le compartiment de la configuration de site web que vous souhaitez. Configurez le kit SDK comme illustré précédemment.

Créez un objet de service `AWS.S3`. Créez une fonction qui extraie la configuration de site web du compartiment actuel pour le compartiment sélectionné dans la liste de compartiments. Le seul paramètre à passer est le nom du compartiment sélectionné lorsque vous appelez la méthode `getBucketWebsite`. Si le bucket possède actuellement une configuration de site Web, cette configuration est renvoyée par Amazon S3 dans le `data` paramètre transmis à la fonction de rappel.

Si le compartiment sélectionné ne dispose pas de configuration de site web, ces informations sont retournées à la fonction de rappel dans le paramètre `err`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create S3 service object
s3 = new AWS.S3({ apiVersion: "2006-03-01" });

var bucketParams = { Bucket: process.argv[2] };

// call S3 to retrieve the website configuration for selected bucket
s3.getBucketWebsite(bucketParams, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else if (data) {
    console.log("Success", data);
  }
});
```

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

```
node s3_getbucketwebsite.js BUCKET_NAME
```

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

## Définition de la configuration de site web d'un compartiment
<a name="s3-example-static-web-host-set-website"></a>

Créez un module Node.js nommé `s3_setbucketwebsite.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Créez un objet de service `AWS.S3`. 

Créez une fonction qui applique une configuration de site web d'un compartiment. La configuration permet au compartiment sélectionné d'être utilisé comme hôte web statique. Les configurations de site web sont spécifiées au format JSON. Tout d'abord, créez un objet JSON contenant toutes les valeurs pour spécifier la configuration de site web, à l'exception de la valeur `Key` qui identifie le document d'erreur et la valeur `Suffix` qui identifie le document d'index.

Insérez les valeurs des éléments d'entrée de texte dans l'objet JSON. Préparez les paramètres pour la méthode `putBucketWebsite`, y compris le nom du compartiment et la configuration de site web JSON.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create S3 service object
s3 = new AWS.S3({ apiVersion: "2006-03-01" });

// Create JSON for putBucketWebsite parameters
var staticHostParams = {
  Bucket: "",
  WebsiteConfiguration: {
    ErrorDocument: {
      Key: "",
    },
    IndexDocument: {
      Suffix: "",
    },
  },
};

// Insert specified bucket name and index and error documents into params JSON
// from command line arguments
staticHostParams.Bucket = process.argv[2];
staticHostParams.WebsiteConfiguration.IndexDocument.Suffix = process.argv[3];
staticHostParams.WebsiteConfiguration.ErrorDocument.Key = process.argv[4];

// set the new website configuration on the selected bucket
s3.putBucketWebsite(staticHostParams, function (err, data) {
  if (err) {
    // display error message
    console.log("Error", err);
  } else {
    // update the displayed website configuration for the selected bucket
    console.log("Success", data);
  }
});
```

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

```
node s3_setbucketwebsite.js BUCKET_NAME INDEX_PAGE ERROR_PAGE
```

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

## Suppression de la configuration de site web d'un compartiment
<a name="s3-example-static-web-host-delete-website"></a>

Créez un module Node.js nommé `s3_deletebucketwebsite.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Créez un objet de service `AWS.S3`. 

Créez une fonction qui supprime la configuration de site web du compartiment sélectionné. Le seul paramètre à passer lorsque vous appelez la méthode `deleteBucketWebsite` est le nom du compartiment sélectionné.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create S3 service object
s3 = new AWS.S3({ apiVersion: "2006-03-01" });

var bucketParams = { Bucket: process.argv[2] };

// call S3 to delete website configuration for selected bucket
s3.deleteBucketWebsite(bucketParams, function (error, data) {
  if (error) {
    console.log("Error", err);
  } else if (data) {
    console.log("Success", data);
  }
});
```

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

```
node s3_deletebucketwebsite.js BUCKET_NAME
```

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

# Exemples de services de messagerie Amazon Simple
<a name="ses-examples"></a>

Amazon Simple Email Service (Amazon SES) est un service d'envoi d'e-mails basé sur le cloud conçu pour aider les spécialistes du marketing numérique et les développeurs d'applications à envoyer des e-mails marketing, de notification et transactionnels. C'est un service fiable et rentable pour les entreprises de toutes tailles utilisant les e-mails pour rester en contact avec leurs clients.

![\[Relation entre JavaScript les environnements, le SDK et Amazon SES\]](http://docs.aws.amazon.com/fr_fr/sdk-for-javascript/v2/developer-guide/images/code-samples-ses.png)


L' JavaScript API d'Amazon SES est exposée par le biais de la classe `AWS.SES` client. Pour plus d'informations sur l'utilisation de la classe client Amazon SES, consultez [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html)la référence de l'API.

**Topics**
+ [Gestion des identités Amazon SES](ses-examples-managing-identities.md)
+ [Utilisation de modèles d'e-mails dans Amazon SES](ses-examples-creating-template.md)
+ [Envoyer un e-mail à l'aide d'Amazon SES](ses-examples-sending-email.md)
+ [Utilisation de filtres d'adresses IP pour la réception d'e-mails dans Amazon SES](ses-examples-ip-filters.md)
+ [Utilisation des règles de réception dans Amazon SES](ses-examples-receipt-rules.md)

# Gestion des identités Amazon SES
<a name="ses-examples-managing-identities"></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 :**
+ Comment vérifier les adresses e-mail et les domaines utilisés avec Amazon SES.
+ Comment attribuer une politique IAM à vos identités Amazon SES.
+ Comment répertorier toutes les identités Amazon SES associées à votre AWS compte.
+ Comment supprimer les identités utilisées avec Amazon SES.

Une *identité* Amazon SES est une adresse e-mail ou un domaine qu'Amazon SES utilise pour envoyer des e-mails. Amazon SES vous demande de vérifier votre identité e-mail, de confirmer que vous en êtes le propriétaire et d'empêcher les autres de les utiliser.

Pour en savoir plus sur la façon de vérifier les adresses e-mail et les domaines dans Amazon SES, consultez la section [Vérification des adresses e-mail et des domaines dans Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html) dans le manuel Amazon Simple Email Service Developer Guide. Pour plus d'informations sur l'envoi d'autorisations dans Amazon SES, consultez [Présentation de l'autorisation d'envoi Amazon SES](Amazon Simple Email Service Developer Guidesending-authorization-overview.html).

## Scénario
<a name="ses-examples-verifying-identities-scenario"></a>

Dans cet exemple, vous utilisez une série de modules Node.js pour vérifier et gérer les identités Amazon SES. Les modules Node.js utilisent le SDK JavaScript pour vérifier les adresses e-mail et les domaines, en utilisant les méthodes suivantes de la classe `AWS.SES` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#listIdentities-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#listIdentities-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#deleteIdentity-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#deleteIdentity-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#verifyEmailIdentity-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#verifyEmailIdentity-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#verifyDomainIdentity-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#verifyDomainIdentity-property)

## Tâches prérequises
<a name="ses-examples-verifying-identities-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 JSON d'informations d'identification, consultez [Chargement des informations d'identification dans Node.js à partir du fichier d'informations d'identification partagé](loading-node-credentials-shared.md).

## Configuration du kit SDK
<a name="ses-examples-verifying-identities-configure-sdk"></a>

Configurez le SDK pour JavaScript en créant un objet de configuration global, puis en définissant la région pour votre code. Dans cet exemple, la région est `us-west-2`.

```
// Load the SDK for JavaScript
var AWS = require('aws-sdk');

// Set the Region 
AWS.config.update({region: 'us-west-2'});
```

## Liste de vos identités
<a name="ses-examples-listing-identities"></a>

Dans cet exemple, utilisez un module Node.js pour répertorier les adresses e-mail et les domaines à utiliser avec Amazon SES. Créez un module Node.js nommé `ses_listidentities.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet pour transmettre le paramètre `IdentityType` ainsi que les autres paramètres de la méthode `listIdentities` de la classe client `AWS.SES`. Pour appeler la `listIdentities` méthode, créez une promesse pour appeler un objet de service Amazon SES, en transmettant l'objet de paramètres. 

Traitez ensuite l'élément `response` dans le rappel de promesse. Les `data` retournées par la promesse contiennent un tableau des identités de domaine comme spécifié par le paramètre `IdentityType`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create listIdentities params
var params = {
  IdentityType: "Domain",
  MaxItems: 10,
};

// Create the promise and SES service object
var listIDsPromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .listIdentities(params)
  .promise();

// Handle promise's fulfilled/rejected states
listIDsPromise
  .then(function (data) {
    console.log(data.Identities);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node ses_listidentities.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_listidentities.js).

## Vérification d'une identité d'adresse e-mail
<a name="ses-examples-verifying-email"></a>

Dans cet exemple, utilisez un module Node.js pour vérifier les expéditeurs d'e-mails à utiliser avec Amazon SES. Créez un module Node.js nommé `ses_verifyemailidentity.js`. Configurez le kit SDK comme illustré précédemment. Pour accéder à Amazon SES, créez un objet `AWS.SES` de service.

Créez un objet pour transmettre le paramètre `EmailAddress` ainsi que les autres paramètres de la méthode `verifyEmailIdentity` de la classe client `AWS.SES`. Pour appeler la méthode `verifyEmailIdentity`, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create promise and SES service object
var verifyEmailPromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .verifyEmailIdentity({ EmailAddress: "ADDRESS@DOMAIN.EXT" })
  .promise();

// Handle promise's fulfilled/rejected states
verifyEmailPromise
  .then(function (data) {
    console.log("Email verification initiated");
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. Le domaine est ajouté à Amazon SES pour être vérifié.

```
node ses_verifyemailidentity.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_verifyemailidentity.js).

## Vérification d'une identité de domaine
<a name="ses-examples-verifying-domains"></a>

Dans cet exemple, utilisez un module Node.js pour vérifier les domaines de messagerie à utiliser avec Amazon SES. Créez un module Node.js nommé `ses_verifydomainidentity.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet pour transmettre le paramètre `Domain` ainsi que les autres paramètres de la méthode `verifyDomainIdentity` de la classe client `AWS.SES`. Pour appeler la `verifyDomainIdentity` méthode, créez une promesse pour appeler un objet de service Amazon SES, en transmettant l'objet de paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create the promise and SES service object
var verifyDomainPromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .verifyDomainIdentity({ Domain: "DOMAIN_NAME" })
  .promise();

// Handle promise's fulfilled/rejected states
verifyDomainPromise
  .then(function (data) {
    console.log("Verification Token: " + data.VerificationToken);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. Le domaine est ajouté à Amazon SES pour être vérifié.

```
node ses_verifydomainidentity.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_verifydomainidentity.js).

## Suppression des identités
<a name="ses-examples-deleting-identities"></a>

Dans cet exemple, utilisez un module Node.js pour supprimer les adresses e-mail ou les domaines utilisés avec Amazon SES. Créez un module Node.js nommé `ses_deleteidentity.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet pour transmettre le paramètre `Identity` ainsi que les autres paramètres de la méthode `deleteIdentity` de la classe client `AWS.SES`. Pour appeler la `deleteIdentity` méthode, créez un `request` pour appeler un objet de service Amazon SES en transmettant les paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create the promise and SES service object
var deletePromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .deleteIdentity({ Identity: "DOMAIN_NAME" })
  .promise();

// Handle promise's fulfilled/rejected states
deletePromise
  .then(function (data) {
    console.log("Identity Deleted");
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node ses_deleteidentity.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_deleteidentity.js).

# Utilisation de modèles d'e-mails dans Amazon SES
<a name="ses-examples-creating-template"></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 :**
+ La récupération d'une liste de toutes vos modèles d'e-mail.
+ La récupération et la mise à jour des modèles d'e-mail.
+ La création et la suppression des modèles d'e-mail.

Amazon SES vous permet d'envoyer des e-mails personnalisés à l'aide de modèles d'e-mail. Pour en savoir plus sur la création et l'utilisation de modèles d'e-mail dans Amazon Simple Email Service, consultez la section [Envoi d'e-mails personnalisés à l'aide de l'API Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html) dans le manuel Amazon Simple Email Service Developer Guide.

## Scénario
<a name="ses-examples-creating-template-scenario"></a>

Dans cet exemple, vous utilisez une série de modules Node.js à utiliser avec des modèles d'e-mail. Les modules Node.js utilisent le SDK pour JavaScript créer et utiliser des modèles de courrier électronique en utilisant les méthodes suivantes de la classe `AWS.SES` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#listTemplates-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#listTemplates-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#createTemplate-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#createTemplate-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#getTemplate-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#getTemplate-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#deleteTemplate-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#deleteTemplate-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#updateTemplate-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#updateTemplate-property)

## Tâches prérequises
<a name="ses-examples-creating-template-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 la création d'un fichier d'informations d'identification, consultez [Chargement des informations d'identification dans Node.js à partir du fichier d'informations d'identification partagé](loading-node-credentials-shared.md).

## Liste de vos modèles d'e-mail
<a name="ses-examples-listing-templates"></a>

Dans cet exemple, utilisez un module Node.js pour créer un modèle d'e-mail à utiliser avec Amazon SES. Créez un module Node.js nommé `ses_listtemplates.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet pour transmettre les paramètres de la méthode `listTemplates` de la classe client `AWS.SES`. Pour appeler la méthode `listTemplates`, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the promise and SES service object
var templatePromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .listTemplates({ MaxItems: ITEMS_COUNT })
  .promise();

// Handle promise's fulfilled/rejected states
templatePromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. Amazon SES renvoie la liste des modèles.

```
node ses_listtemplates.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_listtemplates.js).

## Récupération d'un modèle d'e-mail
<a name="ses-examples-get-template"></a>

Dans cet exemple, utilisez un module Node.js pour obtenir un modèle d'e-mail à utiliser avec Amazon SES. Créez un module Node.js nommé `ses_gettemplate.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet pour transmettre le paramètre `TemplateName` ainsi que les autres paramètres de la méthode `getTemplate` de la classe client `AWS.SES`. Pour appeler la méthode `getTemplate`, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js.
var AWS = require("aws-sdk");
// Set the AWS Region.
AWS.config.update({ region: "REGION" });

// Create the promise and Amazon Simple Email Service (Amazon SES) service object.
var templatePromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .getTemplate({ TemplateName: "TEMPLATE_NAME" })
  .promise();

// Handle promise's fulfilled/rejected states
templatePromise
  .then(function (data) {
    console.log(data.Template.SubjectPart);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. Amazon SES renvoie les détails du modèle.

```
node ses_gettemplate.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_gettemplate.js).

## Création d'un modèle d'e-mail
<a name="ses-examples-create-template"></a>

Dans cet exemple, utilisez un module Node.js pour créer un modèle d'e-mail à utiliser avec Amazon SES. Créez un module Node.js nommé `ses_createtemplate.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet pour transmettre les paramètres de la méthode `createTemplate` de la classe client `AWS.SES`, y compris `TemplateName`, `HtmlPart`, `SubjectPart` et `TextPart`. Pour appeler la méthode `createTemplate`, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create createTemplate params
var params = {
  Template: {
    TemplateName: "TEMPLATE_NAME" /* required */,
    HtmlPart: "HTML_CONTENT",
    SubjectPart: "SUBJECT_LINE",
    TextPart: "TEXT_CONTENT",
  },
};

// Create the promise and SES service object
var templatePromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .createTemplate(params)
  .promise();

// Handle promise's fulfilled/rejected states
templatePromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. Le modèle est ajouté à Amazon SES.

```
node ses_createtemplate.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_createtemplate.js).

## Mise à jour d'un modèle d'e-mail
<a name="ses-examples-update-template"></a>

Dans cet exemple, utilisez un module Node.js pour créer un modèle d'e-mail à utiliser avec Amazon SES. Créez un module Node.js nommé `ses_updatetemplate.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet pour transmettre les valeurs de paramètre `Template` que vous souhaitez mettre à jour dans le modèle, avec le paramètre `TemplateName` obligatoire transmis à la méthode `updateTemplate` de la classe client `AWS.SES`. Pour appeler la méthode `updateTemplate`, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create updateTemplate parameters
var params = {
  Template: {
    TemplateName: "TEMPLATE_NAME" /* required */,
    HtmlPart: "HTML_CONTENT",
    SubjectPart: "SUBJECT_LINE",
    TextPart: "TEXT_CONTENT",
  },
};

// Create the promise and SES service object
var templatePromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .updateTemplate(params)
  .promise();

// Handle promise's fulfilled/rejected states
templatePromise
  .then(function (data) {
    console.log("Template Updated");
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. Amazon SES renvoie les détails du modèle.

```
node ses_updatetemplate.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_updatetemplate.js).

## Suppression d'un modèle d'e-mail
<a name="ses-examples-delete-template"></a>

Dans cet exemple, utilisez un module Node.js pour créer un modèle d'e-mail à utiliser avec Amazon SES. Créez un module Node.js nommé `ses_deletetemplate.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet pour transmettre le paramètre`TemplateName` obligatoire à la méthode `deleteTemplate` de la classe client `AWS.SES`. Pour appeler la méthode `deleteTemplate`, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the promise and SES service object
var templatePromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .deleteTemplate({ TemplateName: "TEMPLATE_NAME" })
  .promise();

// Handle promise's fulfilled/rejected states
templatePromise
  .then(function (data) {
    console.log("Template Deleted");
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. Amazon SES renvoie les détails du modèle.

```
node ses_deletetemplate.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_deletetemplate.js).

# Envoyer un e-mail à l'aide d'Amazon SES
<a name="ses-examples-sending-email"></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 :**
+ L'envoi d'un texte ou d'un e-mail au format HTML.
+ L'envoi d'e-mails basés sur un modèle d'e-mail.
+ L'envoi d'e-mails en bloc basés sur un modèle d'e-mail.

L'API Amazon SES vous permet d'envoyer un e-mail de deux manières différentes, en fonction du niveau de contrôle que vous souhaitez obtenir sur la composition de l'e-mail : formaté et brut. Pour plus de détails, consultez les [sections Envoi d'e-mails formatés à l'aide de l'API Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-formatted.html) et [Envoi d'e-mails bruts à l'aide de l'API Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-raw.html).

## Scénario
<a name="ses-examples-sending-email-scenario"></a>

Dans cet exemple, vous utilisez une série de modules Node.js pour envoyer un e-mail de plusieurs façons. Les modules Node.js utilisent le SDK pour JavaScript créer et utiliser des modèles de courrier électronique en utilisant les méthodes suivantes de la classe `AWS.SES` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#sendEmail-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#sendEmail-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#sendTemplatedEmail-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#sendTemplatedEmail-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#sendBulkTemplatedEmail-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#sendBulkTemplatedEmail-property)

## Tâches prérequises
<a name="ses-examples-sending-emails-prerequisites"></a>
+ 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 JSON d'informations d'identification, consultez [Chargement des informations d'identification dans Node.js à partir du fichier d'informations d'identification partagé](loading-node-credentials-shared.md).

## Exigences d'envoi d'un e-mail
<a name="ses-examples-sending-msail-reqs"></a>

Amazon SES rédige un e-mail et le met immédiatement en file d'attente pour envoi. Pour envoyer un e-mail à l'aide de la méthode `SES.sendEmail`, votre message doit répondre aux exigences suivantes :
+ Vous devez envoyer le message à partir d'une adresse e-mail ou d'un domaine vérifié(e). Si vous essayez d'envoyer un e-mail à l'aide d'une adresse ou d'un domaine non vérifié(e), cela engendre une erreur `"Email address not verified"`.
+ Si votre compte est encore dans l'environnement de test (sandbox) Amazon SES, vous pouvez uniquement envoyer un e-mail à des adresses ou des domaines vérifiés, ou à des adresses e-mail associées au simulateur de boîte de réception Amazon SES. Pour plus d'informations, consultez la section [Vérification des adresses e-mail et des domaines](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html) dans le manuel Amazon Simple Email Service Developer Guide.
+ La taille totale du message, pièces jointes comprises, doit être inférieure à 10 Mo.
+ Le message doit inclure au moins un destinataire. L'adresse e-mail du destinataire peut se trouver dans le champ À :, Cc : ou Cci :. Si l'adresse e-mail du destinataire n'est pas valide (c'est-à-dire, pas au format `UserName@[SubDomain.]Domain.TopLevelDomain`), le message est rejeté, même si ce dernier contient d'autres destinataires valides.
+ Le message ne peut pas comporter plus de 50 destinataires répartis dans les champs À :, Cc : et Cci :. Si vous avez besoin d'envoyer un e-mail à davantage de personnes, vous pouvez diviser votre liste de destinataires en groupes de 50 ou moins, puis appeler la méthode `sendEmail` plusieurs fois pour envoyer le message à chaque groupe.

## Envoi d'un e-mail
<a name="ses-examples-sendmail"></a>

Dans cet exemple, utilisez un module Node.js pour envoyer un e-mail avec Amazon SES. Créez un module Node.js nommé `ses_sendemail.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet pour transmettre les valeurs de paramètre qui définissent l'e-mail à envoyer, y compris l'expéditeur et le destinataire, l'objet, le corps du message en texte brut ou au format HTML, à la méthode `sendEmail` de la classe client `AWS.SES`. Pour appeler la méthode `sendEmail`, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse. 

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create sendEmail params
var params = {
  Destination: {
    /* required */
    CcAddresses: [
      "EMAIL_ADDRESS",
      /* more items */
    ],
    ToAddresses: [
      "EMAIL_ADDRESS",
      /* more items */
    ],
  },
  Message: {
    /* required */
    Body: {
      /* required */
      Html: {
        Charset: "UTF-8",
        Data: "HTML_FORMAT_BODY",
      },
      Text: {
        Charset: "UTF-8",
        Data: "TEXT_FORMAT_BODY",
      },
    },
    Subject: {
      Charset: "UTF-8",
      Data: "Test email",
    },
  },
  Source: "SENDER_EMAIL_ADDRESS" /* required */,
  ReplyToAddresses: [
    "EMAIL_ADDRESS",
    /* more items */
  ],
};

// Create the promise and SES service object
var sendPromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .sendEmail(params)
  .promise();

// Handle promise's fulfilled/rejected states
sendPromise
  .then(function (data) {
    console.log(data.MessageId);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. L'e-mail est mis en file d'attente pour être envoyé par Amazon SES.

```
node ses_sendemail.js
```

Cet exemple de code se [trouve ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_sendemail.js). 

## Envoi d'un e-mail à l'aide d'un modèle
<a name="ses-examples-sendtemplatedemail"></a>

Dans cet exemple, utilisez un module Node.js pour envoyer un e-mail avec Amazon SES. Créez un module Node.js nommé `ses_sendtemplatedemail.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet pour transmettre les valeurs de paramètre qui définissent l'e-mail à envoyer, y compris l'expéditeur et le destinataire, l'objet, le corps du message en texte brut ou au format HTML, à la méthode `sendTemplatedEmail` de la classe client `AWS.SES`. Pour appeler la méthode `sendTemplatedEmail`, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse. 

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create sendTemplatedEmail params
var params = {
  Destination: {
    /* required */
    CcAddresses: [
      "EMAIL_ADDRESS",
      /* more CC email addresses */
    ],
    ToAddresses: [
      "EMAIL_ADDRESS",
      /* more To email addresses */
    ],
  },
  Source: "EMAIL_ADDRESS" /* required */,
  Template: "TEMPLATE_NAME" /* required */,
  TemplateData: '{ "REPLACEMENT_TAG_NAME":"REPLACEMENT_VALUE" }' /* required */,
  ReplyToAddresses: ["EMAIL_ADDRESS"],
};

// Create the promise and SES service object
var sendPromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .sendTemplatedEmail(params)
  .promise();

// Handle promise's fulfilled/rejected states
sendPromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. L'e-mail est mis en file d'attente pour être envoyé par Amazon SES.

```
node ses_sendtemplatedemail.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_sendtemplatedemail.js).

## Envoi d'un e-mail en bloc à l'aide d'un modèle
<a name="ses-examples-sendbulktemplatedemail"></a>

Dans cet exemple, utilisez un module Node.js pour envoyer un e-mail avec Amazon SES. Créez un module Node.js nommé `ses_sendbulktemplatedemail.js`. Configurez le kit SDK comme illustré précédemment. 

Créez un objet pour transmettre les valeurs de paramètre qui définissent l'e-mail à envoyer, y compris l'expéditeur et le destinataire, l'objet, le corps du message en texte brut ou au format HTML, à la méthode `sendBulkTemplatedEmail` de la classe client `AWS.SES`. Pour appeler la méthode `sendBulkTemplatedEmail`, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse. 

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create sendBulkTemplatedEmail params
var params = {
  Destinations: [
    /* required */
    {
      Destination: {
        /* required */
        CcAddresses: [
          "EMAIL_ADDRESS",
          /* more items */
        ],
        ToAddresses: [
          "EMAIL_ADDRESS",
          "EMAIL_ADDRESS",
          /* more items */
        ],
      },
      ReplacementTemplateData: '{ "REPLACEMENT_TAG_NAME":"REPLACEMENT_VALUE" }',
    },
  ],
  Source: "EMAIL_ADDRESS" /* required */,
  Template: "TEMPLATE_NAME" /* required */,
  DefaultTemplateData: '{ "REPLACEMENT_TAG_NAME":"REPLACEMENT_VALUE" }',
  ReplyToAddresses: ["EMAIL_ADDRESS"],
};

// Create the promise and SES service object
var sendPromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .sendBulkTemplatedEmail(params)
  .promise();

// Handle promise's fulfilled/rejected states
sendPromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.log(err, err.stack);
  });
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. L'e-mail est mis en file d'attente pour être envoyé par Amazon SES.

```
node ses_sendbulktemplatedemail.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_sendbulktemplatedemail.js). 

# Utilisation de filtres d'adresses IP pour la réception d'e-mails dans Amazon SES
<a name="ses-examples-ip-filters"></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 :**
+ La création de filtres d'adresses IP pour accepter ou rejeter les messages provenant d'une adresse IP ou d'une plage d'adresses IP.
+ La liste de vos filtres d'adresses IP actuels.
+ La suppression d'un filtre d'adresses IP

Dans Amazon SES, un *filtre* est une structure de données composée d'un nom, d'une plage d'adresses IP et indiquant s'il faut autoriser ou bloquer le courrier provenant de ce filtre. Les adresses IP que vous souhaitez bloquer ou autoriser sont spécifiées comme adresse IP unique ou plage d'adresses IP en notation CIDR (Classless Inter-Domain Routing). Pour en savoir plus sur la manière dont Amazon SES reçoit les e-mails, consultez les [concepts de réception d'e-mails d'Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html) dans le manuel Amazon Simple Email Service Developer Guide.

## Scénario
<a name="ses-examples-receiving-email-scenario"></a>

Dans cet exemple, vous utilisez une série de modules Node.js pour envoyer un e-mail de plusieurs façons. Les modules Node.js utilisent le SDK pour JavaScript créer et utiliser des modèles de courrier électronique en utilisant les méthodes suivantes de la classe `AWS.SES` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#createReceiptFilter-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#createReceiptFilter-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#listReceiptFilters-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#listReceiptFilters-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#deleteReceiptFilter-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#deleteReceiptFilter-property)

## Tâches prérequises
<a name="ses-examples-ip-filters-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).

## Configuration du kit SDK
<a name="ses-examples-ip-filters-configure-sdk"></a>

Configurez le SDK pour JavaScript en créant un objet de configuration global, puis en définissant la région pour votre code. Dans cet exemple, la région est `us-west-2`.

```
// Load the SDK for JavaScript
var AWS = require('aws-sdk');
// Set the Region 
AWS.config.update({region: 'us-west-2'});
```

## Création d'un filtre d'adresses IP
<a name="ses-examples-ip-filters-creating"></a>

Dans cet exemple, utilisez un module Node.js pour envoyer un e-mail avec Amazon SES. Créez un module Node.js nommé `ses_createreceiptfilter.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet pour transmettre les valeurs de paramètre qui définissent le filtre IP, y compris le nom du filtre, une adresse IP ou une plage d'adresses IP à filtrer et l'autorisation ou le blocage du trafic d'e-mails à partir des adresses filtrées. Pour appeler la méthode `createReceiptFilter`, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create createReceiptFilter params
var params = {
  Filter: {
    IpFilter: {
      Cidr: "IP_ADDRESS_OR_RANGE",
      Policy: "Allow" | "Block",
    },
    Name: "NAME",
  },
};

// Create the promise and SES service object
var sendPromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .createReceiptFilter(params)
  .promise();

// Handle promise's fulfilled/rejected states
sendPromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. Le filtre est créé dans Amazon SES.

```
node ses_createreceiptfilter.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_createreceiptfilter.js).

## Liste de vos filtres d'adresses IP.
<a name="ses-examples-ip-filters-listing"></a>

Dans cet exemple, utilisez un module Node.js pour envoyer un e-mail avec Amazon SES. Créez un module Node.js nommé `ses_listreceiptfilters.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet de paramètre vide. Pour appeler la méthode `listReceiptFilters`, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the promise and SES service object
var sendPromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .listReceiptFilters({})
  .promise();

// Handle promise's fulfilled/rejected states
sendPromise
  .then(function (data) {
    console.log(data.Filters);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. Amazon SES renvoie la liste des filtres.

```
node ses_listreceiptfilters.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_listreceiptfilters.js).

## Suppression d'un filtre d'adresses IP
<a name="ses-examples-ip-filters-deleting"></a>

Dans cet exemple, utilisez un module Node.js pour envoyer un e-mail avec Amazon SES. Créez un module Node.js nommé `ses_deletereceiptfilter.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet pour transmettre le nom du filtre IP à supprimer. Pour appeler la méthode `deleteReceiptFilter`, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the promise and SES service object
var sendPromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .deleteReceiptFilter({ FilterName: "NAME" })
  .promise();

// Handle promise's fulfilled/rejected states
sendPromise
  .then(function (data) {
    console.log("IP Filter deleted");
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. Le filtre est supprimé d'Amazon SES.

```
node ses_deletereceiptfilter.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_deletereceiptfilter.js).

# Utilisation des règles de réception dans Amazon SES
<a name="ses-examples-receipt-rules"></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 :**
+ La création et la suppression des règles de réception.
+ L'organisation des règles de réception en ensembles de règles de réception.

Les règles de réception d'Amazon SES spécifient ce qu'il faut faire des e-mails reçus pour les adresses e-mail ou les domaines que vous possédez. Une *règle de réception* contient une condition et une liste ordonnée d'actions. Si le destinataire d'un e-mail entrant correspond à un destinataire spécifié dans les conditions de la règle de réception, Amazon SES exécute les actions spécifiées par la règle de réception. 

Pour utiliser Amazon SES comme destinataire d'e-mails, vous devez avoir *défini au moins une règle de réception* active. Un ensemble de règles de réception est un ensemble ordonné de règles de réception qui spécifient ce qu'Amazon SES doit faire avec le courrier qu'il reçoit sur vos domaines vérifiés. Pour plus d'informations, consultez les sections [Création de règles de réception pour la réception d'e-mails d'Amazon SES](Amazon Simple Email Service Developer Guidereceiving-email-receipt-rules.html) et [Création d'un ensemble de règles de réception pour la réception d'e-mails d'Amazon SES](Amazon Simple Email Service Developer Guidereceiving-email-receipt-rule-set.html) dans le guide du développeur d'Amazon Simple Email Service.

## Scénario
<a name="ses-examples-receipt-rules-scenario"></a>

Dans cet exemple, vous utilisez une série de modules Node.js pour envoyer un e-mail de plusieurs façons. Les modules Node.js utilisent le SDK pour JavaScript créer et utiliser des modèles de courrier électronique en utilisant les méthodes suivantes de la classe `AWS.SES` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#createReceiptRule-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#createReceiptRule-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#deleteReceiptRule-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#deleteReceiptRule-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#createReceiptRuleSet-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#createReceiptRuleSet-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#deleteReceiptRuleSet-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#deleteReceiptRuleSet-property)

## Tâches prérequises
<a name="ses-examples-receipt-rules-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 JSON d'informations d'identification, consultez [Chargement des informations d'identification dans Node.js à partir du fichier d'informations d'identification partagé](loading-node-credentials-shared.md).

## Création d'une règle de réception Amazon S3
<a name="ses-examples-creatingreceipt-rules"></a>

Chaque règle de réception pour Amazon SES contient une liste ordonnée d'actions. Cet exemple crée une règle de réception avec une action Amazon S3, qui envoie le message électronique à un compartiment Amazon S3. Pour plus de détails sur les actions relatives aux règles de réception, consultez la section [Options d'action](Amazon Simple Email Service Developer Guidereceiving-email-action.html) du manuel Amazon Simple Email Service Developer Guide.

Pour qu'Amazon SES puisse écrire des e-mails dans un compartiment Amazon S3, créez une politique de compartiment qui `PutObject` autorise Amazon SES. Pour plus d'informations sur la création de cette politique de compartiment, consultez la section [Autoriser Amazon SES à écrire dans votre compartiment Amazon S3](Amazon Simple Email Service Developer Guidereceiving-email-permissions.html#receiving-email-permissions-s3.html) dans le manuel Amazon Simple Email Service Developer Guide.

Dans cet exemple, utilisez un module Node.js pour créer une règle de réception dans Amazon SES afin d'enregistrer les messages reçus dans un compartiment Amazon S3. Créez un module Node.js nommé `ses_createreceiptrule.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet de paramètre pour transmettre les valeurs nécessaires à la création de l'ensemble de règles de réception. Pour appeler la méthode `createReceiptRuleSet`, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create createReceiptRule params
var params = {
  Rule: {
    Actions: [
      {
        S3Action: {
          BucketName: "S3_BUCKET_NAME",
          ObjectKeyPrefix: "email",
        },
      },
    ],
    Recipients: [
      "DOMAIN | EMAIL_ADDRESS",
      /* more items */
    ],
    Enabled: true | false,
    Name: "RULE_NAME",
    ScanEnabled: true | false,
    TlsPolicy: "Optional",
  },
  RuleSetName: "RULE_SET_NAME",
};

// Create the promise and SES service object
var newRulePromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .createReceiptRule(params)
  .promise();

// Handle promise's fulfilled/rejected states
newRulePromise
  .then(function (data) {
    console.log("Rule created");
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. Amazon SES crée la règle de réception.

```
node ses_createreceiptrule.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_createreceiptrule.js).

## Suppression d'une règle de réception
<a name="ses-examples-deletingreceipt-rules"></a>

Dans cet exemple, utilisez un module Node.js pour envoyer un e-mail avec Amazon SES. Créez un module Node.js nommé `ses_deletereceiptrule.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet de paramètre pour transmettre le nom de la règle de réception à supprimer. Pour appeler la méthode `deleteReceiptRule`, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create deleteReceiptRule params
var params = {
  RuleName: "RULE_NAME" /* required */,
  RuleSetName: "RULE_SET_NAME" /* required */,
};

// Create the promise and SES service object
var newRulePromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .deleteReceiptRule(params)
  .promise();

// Handle promise's fulfilled/rejected states
newRulePromise
  .then(function (data) {
    console.log("Receipt Rule Deleted");
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. Amazon SES crée la liste des règles de réception définies.

```
node ses_deletereceiptrule.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_deletereceiptrule.js).

## Création d'un ensemble de règles de réception
<a name="ses-examples-creatingreceiptrulesets"></a>

Dans cet exemple, utilisez un module Node.js pour envoyer un e-mail avec Amazon SES. Créez un module Node.js nommé `ses_createreceiptruleset.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet de paramètre pour transmettre le nom du nouvel ensemble de règles de réception. Pour appeler la méthode `createReceiptRuleSet`, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the promise and SES service object
var newRulePromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .createReceiptRuleSet({ RuleSetName: "NAME" })
  .promise();

// Handle promise's fulfilled/rejected states
newRulePromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. Amazon SES crée la liste des règles de réception définies.

```
node ses_createreceiptruleset.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_createreceiptruleset.js).

## Suppression d'un ensemble de règles de réception
<a name="ses-examples-deletingreceiptrulesets"></a>

Dans cet exemple, utilisez un module Node.js pour envoyer un e-mail avec Amazon SES. Créez un module Node.js nommé `ses_deletereceiptruleset.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet de paramètre pour transmettre le nom de l'ensemble de règles de réception à supprimer. Pour appeler la méthode `deleeReceiptRuleSet`, créez une promesse pour appeler un objet de service Amazon SES, en transmettant les paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the promise and SES service object
var newRulePromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .deleteReceiptRuleSet({ RuleSetName: "NAME" })
  .promise();

// Handle promise's fulfilled/rejected states
newRulePromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande. Amazon SES crée la liste des règles de réception définies.

```
node ses_deletereceiptruleset.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_deletereceiptruleset.js).

# Exemples du service de notification Amazon Simple
<a name="sns-examples"></a>

Amazon Simple Notification Service (Amazon SNS) est un service Web qui coordonne et gère la livraison ou l'envoi de messages aux points de terminaison ou aux clients abonnés. 

Sur Amazon SNS, il existe deux types de clients, les éditeurs et les abonnés, également appelés producteurs et consommateurs. 

![\[Relation entre JavaScript les environnements, le SDK et Amazon SNS\]](http://docs.aws.amazon.com/fr_fr/sdk-for-javascript/v2/developer-guide/images/code-samples-sns.png)


Les éditeurs communiquent de façon asynchrone avec les abonnés en produisant et en envoyant un message à une rubrique, qui est un point d'accès logique et un canal de communication. Les abonnés (serveurs Web, adresses e-mail, files d'attente Amazon SQS, fonctions Lambda) consomment ou reçoivent le message ou la notification via l'un des protocoles pris en charge (Amazon SQS, HTTP/S, e-mail, SMS AWS Lambda) lorsqu'ils sont abonnés au sujet. 

L' JavaScript API pour Amazon SNS est exposée via le. [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html) 

**Topics**
+ [Gestion des rubriques dans Amazon SNS](sns-examples-managing-topics.md)
+ [Publication de messages sur Amazon SNS](sns-examples-publishing-messages.md)
+ [Gestion des abonnements sur Amazon SNS](sns-examples-subscribing-unubscribing-topics.md)
+ [Envoi de SMS avec Amazon SNS](sns-examples-sending-sms.md)

# Gestion des rubriques dans Amazon SNS
<a name="sns-examples-managing-topics"></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 :**
+ Comment créer des rubriques dans Amazon SNS sur lesquelles vous pouvez publier des notifications.
+ Comment supprimer des sujets créés dans Amazon SNS.
+ Comment obtenir une liste des rubriques disponibles.
+ Comment obtenir et définir des attributs de rubrique.

## Scénario
<a name="sns-examples-managing-topics-scenario"></a>

Dans cet exemple, vous utilisez une série de modules Node.js pour créer, répertorier et supprimer des rubriques Amazon SNS, ainsi que pour gérer les attributs des rubriques. Les modules Node.js utilisent le SDK pour gérer les sujets JavaScript à l'aide des méthodes suivantes de la classe `AWS.SNS` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#createTopic-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#createTopic-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#listTopics-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#listTopics-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#deleteTopic-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#deleteTopic-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#getTopicAttributes-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#getTopicAttributes-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#setTopicAttributes-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#setTopicAttributes-property)

## Tâches prérequises
<a name="sns-examples-managing-topics-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](http://nodejs.org).
+ Créez un fichier de configurations partagé avec vos informations d'identification utilisateur. Pour plus d'informations sur le fichier JSON d'informations d'identification, consultez [Chargement des informations d'identification dans Node.js à partir du fichier d'informations d'identification partagé](loading-node-credentials-shared.md).

## Création d'une rubrique
<a name="sns-examples-managing-topics-createtopic"></a>

Dans cet exemple, utilisez un module Node.js pour créer une rubrique Amazon SNS. Créez un module Node.js nommé `sns_createtopic.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet pour transmettre le paramètre`Name` de la nouvelle rubrique à la méthode `createTopic` de la classe client `AWS.SNS`. Pour appeler la `createTopic` méthode, créez une promesse pour appeler un objet de service Amazon SNS, en transmettant l'objet de paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse. Les `data` renvoyées par la promesse contiennent l'ARN de la rubrique.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create promise and SNS service object
var createTopicPromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .createTopic({ Name: "TOPIC_NAME" })
  .promise();

// Handle promise's fulfilled/rejected states
createTopicPromise
  .then(function (data) {
    console.log("Topic ARN is " + data.TopicArn);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node sns_createtopic.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_createtopic.js).

## Liste de vos rubriques
<a name="sns-examples-managing-topics-listtopics"></a>

Dans cet exemple, utilisez un module Node.js pour répertorier toutes les rubriques Amazon SNS. Créez un module Node.js nommé `sns_listtopics.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet vide à transmettre à la méthode `listTopics` de la classe client `AWS.SNS`. Pour appeler la `listTopics` méthode, créez une promesse pour appeler un objet de service Amazon SNS, en transmettant l'objet de paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse. Le `data` contenu renvoyé par la promesse contient un tableau de votre sujet ARNs.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create promise and SNS service object
var listTopicsPromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .listTopics({})
  .promise();

// Handle promise's fulfilled/rejected states
listTopicsPromise
  .then(function (data) {
    console.log(data.Topics);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node sns_listtopics.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_listtopics.js).

## Suppression d'une rubrique
<a name="sns-examples-managing-topics-deletetopic"></a>

Dans cet exemple, utilisez un module Node.js pour supprimer une rubrique Amazon SNS. Créez un module Node.js nommé `sns_deletetopic.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet contenant le paramètre `TopicArn` de la rubrique à supprimer pour le transmettre à la méthode `deleteTopic` de la classe client `AWS.SNS`. Pour appeler la `deleteTopic` méthode, créez une promesse pour appeler un objet de service Amazon SNS, en transmettant l'objet de paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create promise and SNS service object
var deleteTopicPromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .deleteTopic({ TopicArn: "TOPIC_ARN" })
  .promise();

// Handle promise's fulfilled/rejected states
deleteTopicPromise
  .then(function (data) {
    console.log("Topic Deleted");
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node sns_deletetopic.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_deletetopic.js).

## Récupération d'attributs de rubrique
<a name="sns-examples-managing-topicsgetttopicattributes"></a>

Dans cet exemple, utilisez un module Node.js pour récupérer les attributs d'une rubrique Amazon SNS. Créez un module Node.js nommé `sns_gettopicattributes.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet contenant le paramètre `TopicArn` d'une rubrique à supprimer pour le transmettre à la méthode `getTopicAttributes` de la classe client `AWS.SNS`. Pour appeler la `getTopicAttributes` méthode, créez une promesse pour appeler un objet de service Amazon SNS, en transmettant l'objet de paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create promise and SNS service object
var getTopicAttribsPromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .getTopicAttributes({ TopicArn: "TOPIC_ARN" })
  .promise();

// Handle promise's fulfilled/rejected states
getTopicAttribsPromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node sns_gettopicattributes.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_gettopicattributes.js).

## Définition d'attributs de rubrique
<a name="sns-examples-managing-topicsstttopicattributes"></a>

Dans cet exemple, utilisez un module Node.js pour définir les attributs modifiables d'une rubrique Amazon SNS. Créez un module Node.js nommé `sns_settopicattributes.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet contenant les paramètres pour la mise à jour de l'attribut, y compris le paramètre `TopicArn` de la rubrique dont vous souhaitez définir les attributs, le nom de l'attribut à définir et la nouvelle valeur pour cet attribut. Vous ne pouvez définir que les attributs `Policy`, `DisplayName` et `DeliveryPolicy`. Transmettez les paramètres à la méthode `setTopicAttributes` de la classe client `AWS.SNS`. Pour appeler la `setTopicAttributes` méthode, créez une promesse pour appeler un objet de service Amazon SNS, en transmettant l'objet de paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create setTopicAttributes parameters
var params = {
  AttributeName: "ATTRIBUTE_NAME" /* required */,
  TopicArn: "TOPIC_ARN" /* required */,
  AttributeValue: "NEW_ATTRIBUTE_VALUE",
};

// Create promise and SNS service object
var setTopicAttribsPromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .setTopicAttributes(params)
  .promise();

// Handle promise's fulfilled/rejected states
setTopicAttribsPromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node sns_settopicattributes.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_settopicattributes.js).

# Publication de messages sur Amazon SNS
<a name="sns-examples-publishing-messages"></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 :**
+ Comment publier des messages sur une rubrique Amazon SNS.

## Scénario
<a name="sns-examples-publishing-messages-scenario"></a>

Dans cet exemple, vous utilisez une série de modules Node.js pour publier des messages depuis Amazon SNS vers des points de terminaison, des e-mails ou des numéros de téléphone thématiques. Les modules Node.js utilisent le SDK pour JavaScript envoyer des messages en utilisant cette méthode de la classe `AWS.SNS` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#publish-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#publish-property)

## Tâches prérequises
<a name="sns-examples-publishing-messages-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](http://nodejs.org).
+ Créez un fichier de configurations partagé avec vos informations d'identification utilisateur. Pour plus d'informations sur le fichier JSON d'informations d'identification, consultez [Chargement des informations d'identification dans Node.js à partir du fichier d'informations d'identification partagé](loading-node-credentials-shared.md).

## Publication d'un message sur une rubrique Amazon SNS
<a name="sns-examples-publishing-text-messages"></a>

Dans cet exemple, utilisez un module Node.js pour publier un message sur une rubrique Amazon SNS. Créez un module Node.js nommé `sns_publishtotopic.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet contenant les paramètres de publication d'un message, notamment le texte du message et l'ARN de la rubrique Amazon SNS. Pour plus de détails sur les attributs SMS disponibles, voir [Définir SMSAttributes](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#setSMSAttributes-property).

Transmettez les paramètres à la méthode `publish` de la classe client `AWS.SNS`. Créez une promesse pour appeler un objet de service Amazon SNS, en transmettant l'objet de paramètres. Traitez ensuite l'élément response dans le rappel de promesse. 

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create publish parameters
var params = {
  Message: "MESSAGE_TEXT" /* required */,
  TopicArn: "TOPIC_ARN",
};

// Create promise and SNS service object
var publishTextPromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .publish(params)
  .promise();

// Handle promise's fulfilled/rejected states
publishTextPromise
  .then(function (data) {
    console.log(
      `Message ${params.Message} sent to the topic ${params.TopicArn}`
    );
    console.log("MessageID is " + data.MessageId);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node sns_publishtotopic.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_publishtotopic.js).

# Gestion des abonnements sur Amazon SNS
<a name="sns-examples-subscribing-unubscribing-topics"></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 :**
+ Comment répertorier tous les abonnements à une rubrique Amazon SNS.
+ Comment abonner une adresse e-mail, un point de terminaison d'application ou une AWS Lambda fonction à une rubrique Amazon SNS.
+ Comment se désabonner des rubriques Amazon SNS.

## Scénario
<a name="sns-examples-subscribing-unubscribing-yopics-scenario"></a>

Dans cet exemple, vous utilisez une série de modules Node.js pour publier des messages de notification dans les rubriques Amazon SNS. Les modules Node.js utilisent le SDK pour gérer les sujets JavaScript à l'aide des méthodes suivantes de la classe `AWS.SNS` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#subscribe-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#subscribe-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#confirmSubscription-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#confirmSubscription-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#listSubscriptionsByTopic-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#listSubscriptionsByTopic-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#unsubscribe-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#unsubscribe-property)

## Tâches prérequises
<a name="sns-examples-subscribing-unubscribing-topics-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](http://nodejs.org).
+ Créez un fichier de configurations partagé avec vos informations d'identification utilisateur. Pour plus d'informations sur le fichier JSON d'informations d'identification, consultez [Chargement des informations d'identification dans Node.js à partir du fichier d'informations d'identification partagé](loading-node-credentials-shared.md).

## Liste des abonnements à une rubrique
<a name="sns-examples-list-subscriptions-email"></a>

Dans cet exemple, utilisez un module Node.js pour répertorier tous les abonnements à une rubrique Amazon SNS. Créez un module Node.js nommé `sns_listsubscriptions.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet contenant le paramètre `TopicArn` pour la rubrique dont vous souhaitez répertorier les abonnements. Transmettez les paramètres à la méthode `listSubscriptionsByTopic` de la classe client `AWS.SNS`. Pour appeler la `listSubscriptionsByTopic` méthode, créez une promesse pour appeler un objet de service Amazon SNS, en transmettant l'objet de paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

const params = {
  TopicArn: "TOPIC_ARN",
};

// Create promise and SNS service object
var subslistPromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .listSubscriptionsByTopic(params)
  .promise();

// Handle promise's fulfilled/rejected states
subslistPromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node sns_listsubscriptions.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_listsubscriptions.js).

## Abonnement d'une adresse e-mail à une rubrique
<a name="sns-examples-subscribing-email"></a>

Dans cet exemple, utilisez un module Node.js pour abonner une adresse e-mail afin qu'elle reçoive des e-mails SMTP provenant d'une rubrique Amazon SNS. Créez un module Node.js nommé `sns_subscribeemail.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet contenant le paramètre `Protocol` pour spécifier le protocole `email`, l'élément `TopicArn` pour la rubrique à laquelle s'abonner ainsi qu'une adresse e-mail comme message `Endpoint`. Transmettez les paramètres à la méthode `subscribe` de la classe client `AWS.SNS`. Vous pouvez utiliser `subscribe` cette méthode pour abonner plusieurs points de terminaison différents à une rubrique Amazon SNS, en fonction des valeurs utilisées pour les paramètres transmis, comme le montreront d'autres exemples présentés dans cette rubrique.

Pour appeler la `subscribe` méthode, créez une promesse pour appeler un objet de service Amazon SNS, en transmettant l'objet de paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create subscribe/email parameters
var params = {
  Protocol: "EMAIL" /* required */,
  TopicArn: "TOPIC_ARN" /* required */,
  Endpoint: "EMAIL_ADDRESS",
};

// Create promise and SNS service object
var subscribePromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .subscribe(params)
  .promise();

// Handle promise's fulfilled/rejected states
subscribePromise
  .then(function (data) {
    console.log("Subscription ARN is " + data.SubscriptionArn);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node sns_subscribeemail.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_subscribeemail.js).

## Abonnement d'un point de terminaison d'application à une rubrique
<a name="sns-examples-subscribing-apps"></a>

Dans cet exemple, utilisez un module Node.js pour abonner un point de terminaison d'application mobile afin qu'il reçoive des notifications provenant d'une rubrique Amazon SNS. Créez un module Node.js nommé `sns_subscribeapp.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet contenant le paramètre `Protocol` pour spécifier le protocole `application`, l'élément `TopicArn` pour la rubrique à laquelle s'abonner ainsi que l'ARN d'un point de terminaison d'application mobile pour le paramètre `Endpoint`. Transmettez les paramètres à la méthode `subscribe` de la classe client `AWS.SNS`.

Pour appeler la `subscribe` méthode, créez une promesse pour appeler un objet de service Amazon SNS, en transmettant l'objet de paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create subscribe/email parameters
var params = {
  Protocol: "application" /* required */,
  TopicArn: "TOPIC_ARN" /* required */,
  Endpoint: "MOBILE_ENDPOINT_ARN",
};

// Create promise and SNS service object
var subscribePromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .subscribe(params)
  .promise();

// Handle promise's fulfilled/rejected states
subscribePromise
  .then(function (data) {
    console.log("Subscription ARN is " + data.SubscriptionArn);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node sns_subscribeapp.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_subscribeapp.js).

## Abonnement d'une fonction Lambda à une rubrique
<a name="sns-examples-subscribing-lambda"></a>

Dans cet exemple, utilisez un module Node.js pour abonner une AWS Lambda fonction afin qu'elle reçoive des notifications d'une rubrique Amazon SNS. Créez un module Node.js nommé `sns_subscribelambda.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet contenant le `Protocol` paramètre, en spécifiant le `lambda` protocole, le `TopicArn` sujet auquel vous souhaitez vous abonner et l'ARN d'une AWS Lambda fonction en tant que `Endpoint` paramètre. Transmettez les paramètres à la méthode `subscribe` de la classe client `AWS.SNS`.

Pour appeler la `subscribe` méthode, créez une promesse pour appeler un objet de service Amazon SNS, en transmettant l'objet de paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create subscribe/email parameters
var params = {
  Protocol: "lambda" /* required */,
  TopicArn: "TOPIC_ARN" /* required */,
  Endpoint: "LAMBDA_FUNCTION_ARN",
};

// Create promise and SNS service object
var subscribePromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .subscribe(params)
  .promise();

// Handle promise's fulfilled/rejected states
subscribePromise
  .then(function (data) {
    console.log("Subscription ARN is " + data.SubscriptionArn);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node sns_subscribelambda.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_subscribelambda.js).

## Désabonnement d'une rubrique
<a name="sns-examples-unsubscribing"></a>

Dans cet exemple, utilisez un module Node.js pour vous désabonner d'un abonnement à une rubrique Amazon SNS. Créez un module Node.js nommé `sns_unsubscribe.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet contenant le paramètre `SubscriptionArn`, en spécifiant l'ARN de l'abonnement à désabonner. Transmettez les paramètres à la méthode `unsubscribe` de la classe client `AWS.SNS`.

Pour appeler la `unsubscribe` méthode, créez une promesse pour appeler un objet de service Amazon SNS, en transmettant l'objet de paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create promise and SNS service object
var subscribePromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .unsubscribe({ SubscriptionArn: TOPIC_SUBSCRIPTION_ARN })
  .promise();

// Handle promise's fulfilled/rejected states
subscribePromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node sns_unsubscribe.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_unsubscribe.js).

# Envoi de SMS avec Amazon SNS
<a name="sns-examples-sending-sms"></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 :**
+ Comment obtenir et définir les préférences de messagerie SMS pour Amazon SNS.
+ Comment vérifier qu'un numéro de téléphone a désactivé la réception de SMS.
+ Comment récupérer une liste de numéros de téléphone ayant désactivé la réception de SMS.
+ Comment envoyer un SMS.

## Scénario
<a name="sns-examples-sending-sms-scenario"></a>

Vous pouvez utiliser pour envoyer des messages texte, ou des messages SMS, à des appareils compatibles SMS. Vous pouvez envoyer un message directement à un numéro de téléphone, ou vous pouvez envoyer un message à plusieurs numéros de téléphone simultanément en abonnant ces numéros de téléphone à une rubrique et en envoyant votre message à la rubrique.

Dans cet exemple, vous utilisez une série de modules Node.js pour publier des SMS depuis Amazon SNS vers des appareils compatibles SMS. Les modules Node.js utilisent le SDK JavaScript pour publier des messages SMS en utilisant les méthodes suivantes de la classe `AWS.SNS` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#getSMSAttributes-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#getSMSAttributes-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#setSMSAttributes-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#setSMSAttributes-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#checkIfPhoneNumberIsOptedOut-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#checkIfPhoneNumberIsOptedOut-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#listPhoneNumbersOptedOut-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#listPhoneNumbersOptedOut-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#publish-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#publish-property)

## Tâches prérequises
<a name="sns-examples-sending-sms-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](http://nodejs.org).
+ Créez un fichier de configurations partagé avec vos informations d'identification utilisateur. Pour plus d'informations sur le fichier JSON d'informations d'identification, consultez [Chargement des informations d'identification dans Node.js à partir du fichier d'informations d'identification partagé](loading-node-credentials-shared.md).

## Récupération d'attributs SMS
<a name="sending-sms-getattributes"></a>

Utilisez Amazon SNS pour définir vos préférences en matière de messagerie SMS, telles que la manière dont vos envois sont optimisés (en termes de coût ou de fiabilité), votre limite de dépenses mensuelles, la manière dont les envois de messages sont enregistrés et si vous souhaitez vous abonner aux rapports quotidiens d'utilisation des SMS. Ces préférences sont récupérées et définies sous forme d'attributs SMS pour Amazon SNS.

Dans cet exemple, utilisez un module Node.js pour obtenir les attributs SMS actuels dans Amazon SNS. Créez un module Node.js nommé `sns_getsmstype.js`. Configurez le kit SDK comme illustré précédemment. Créez un objet contenant les paramètres pour récupérer les attributs SMS, y compris les noms des attributs individuels. Pour en savoir plus sur les attributs SMS disponibles, consultez la section [Définir SMSAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html) dans le manuel Amazon Simple Notification Service API Reference.

Cet exemple récupère l'attribut `DefaultSMSType`, qui contrôle si les messages SMS sont envoyés en tant que `Promotional`, ce qui optimise la transmission des messages au plus bas coût ou en tant que `Transactional`, ce qui optimise la transmission des messages à une fiabilité optimale. Transmettez les paramètres à la méthode `setTopicAttributes` de la classe client `AWS.SNS`. Pour appeler la `getSMSAttributes` méthode, créez une promesse pour appeler un objet de service Amazon SNS, en transmettant l'objet de paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create SMS Attribute parameter you want to get
var params = {
  attributes: [
    "DefaultSMSType",
    "ATTRIBUTE_NAME",
    /* more items */
  ],
};

// Create promise and SNS service object
var getSMSTypePromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .getSMSAttributes(params)
  .promise();

// Handle promise's fulfilled/rejected states
getSMSTypePromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node sns_getsmstype.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_getsmstype.js).

## Définition d'attributs SMS
<a name="sending-sms-setattributes"></a>

Dans cet exemple, utilisez un module Node.js pour obtenir les attributs SMS actuels dans Amazon SNS. Créez un module Node.js nommé `sns_setsmstype.js`. Configurez le kit SDK comme illustré précédemment. Créez un objet contenant les paramètres pour définir les attributs SMS, y compris les noms des attributs individuels et les valeurs de chacun d'entre eux. Pour en savoir plus sur les attributs SMS disponibles, consultez la section [Définir SMSAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html) dans le manuel Amazon Simple Notification Service API Reference.

Cet exemple définit l’attribut `DefaultSMSType` sur `Transactional`, ce qui optimise la transmission de message à une fiabilité optimale. Transmettez les paramètres à la méthode `setTopicAttributes` de la classe client `AWS.SNS`. Pour appeler la `getSMSAttributes` méthode, créez une promesse pour appeler un objet de service Amazon SNS, en transmettant l'objet de paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create SMS Attribute parameters
var params = {
  attributes: {
    /* required */
    DefaultSMSType: "Transactional" /* highest reliability */,
    //'DefaultSMSType': 'Promotional' /* lowest cost */
  },
};

// Create promise and SNS service object
var setSMSTypePromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .setSMSAttributes(params)
  .promise();

// Handle promise's fulfilled/rejected states
setSMSTypePromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node sns_setsmstype.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_setsmstype.js).

## Vérification d'un numéro de téléphone désactivé
<a name="sending-sms-checkifphonenumberisoptedout"></a>

Dans cet exemple, utilisez un module Node.js pour vérifier qu'un numéro de téléphone a désactivé la réception de SMS. Créez un module Node.js nommé `sns_checkphoneoptout.js`. Configurez le kit SDK comme illustré précédemment. Créez un objet contenant le numéro de téléphone à vérifier en tant que paramètre.

Cet exemple définit le paramètre `PhoneNumber` pour spécifier le numéro de téléphone à vérifier. Transmettez l'objet à la méthode `checkIfPhoneNumberIsOptedOut` de la classe client `AWS.SNS`. Pour appeler la `checkIfPhoneNumberIsOptedOut` méthode, créez une promesse pour appeler un objet de service Amazon SNS, en transmettant l'objet de paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create promise and SNS service object
var phonenumPromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .checkIfPhoneNumberIsOptedOut({ phoneNumber: "PHONE_NUMBER" })
  .promise();

// Handle promise's fulfilled/rejected states
phonenumPromise
  .then(function (data) {
    console.log("Phone Opt Out is " + data.isOptedOut);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node sns_checkphoneoptout.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_checkphoneoptout.js).

## Liste des numéros de téléphone désactivés
<a name="sending-sms-listphonenumbersoptedout"></a>

Dans cet exemple, utilisez un module Node.js pour récupérer une liste des numéros de téléphone ayant désactivé la réception de SMS. Créez un module Node.js nommé `sns_listnumbersoptedout.js`. Configurez le kit SDK comme illustré précédemment. Créez un objet vide comme paramètre.

Transmettez l'objet à la méthode `listPhoneNumbersOptedOut` de la classe client `AWS.SNS`. Pour appeler la `listPhoneNumbersOptedOut` méthode, créez une promesse pour appeler un objet de service Amazon SNS, en transmettant l'objet de paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create promise and SNS service object
var phonelistPromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .listPhoneNumbersOptedOut({})
  .promise();

// Handle promise's fulfilled/rejected states
phonelistPromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node sns_listnumbersoptedout.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_listnumbersoptedout.js).

## Publication d'un SMS
<a name="sending-sms-publishsms"></a>

Dans cet exemple, utilisez un module Node.js pour envoyer un SMS à un numéro de téléphone. Créez un module Node.js nommé `sns_publishsms.js`. Configurez le kit SDK comme illustré précédemment. Créez un objet contenant les paramètres `Message` et `PhoneNumber`.

Lorsque vous envoyez un SMS, spécifiez le numéro de téléphone au format E.164. E.164 est une norme pour la structure des numéros de téléphone, qui est utilisée pour les télécommunications internationales. Les numéros qui respectent ce format peuvent comporter 15 chiffres au maximum et commencent par le caractère plus (\$1) et le code pays. Par exemple, un numéro de téléphone américain au format E.164 s'affichera sous la forme XXX5550100 \$11001. 

Cet exemple définit le paramètre `PhoneNumber` pour spécifier le numéro de téléphone qui envoie le message. Transmettez l'objet à la méthode `publish` de la classe client `AWS.SNS`. Pour appeler la `publish` méthode, créez une promesse pour appeler un objet de service Amazon SNS, en transmettant l'objet de paramètres. Traitez ensuite l'élément `response` dans le rappel de promesse.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set region
AWS.config.update({ region: "REGION" });

// Create publish parameters
var params = {
  Message: "TEXT_MESSAGE" /* required */,
  PhoneNumber: "E.164_PHONE_NUMBER",
};

// Create promise and SNS service object
var publishTextPromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .publish(params)
  .promise();

// Handle promise's fulfilled/rejected states
publishTextPromise
  .then(function (data) {
    console.log("MessageID is " + data.MessageId);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

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

```
node sns_publishsms.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_publishsms.js).

# Exemples Amazon SQS
<a name="sqs-examples"></a>

Amazon Simple Queue Service (Amazon SQS) est un service de file d'attente de messages rapide, fiable, évolutif et entièrement géré. Amazon SQS vous permet de dissocier les composants d'une application cloud. Amazon SQS inclut des files d'attente standard avec un débit et un at-least-once traitement élevés, ainsi que des files d'attente FIFO qui fournissent une livraison FIFO (premier entré, premier sorti) et un traitement en une seule fois.

![\[Relation entre JavaScript les environnements, le SDK et Amazon SQS\]](http://docs.aws.amazon.com/fr_fr/sdk-for-javascript/v2/developer-guide/images/code-samples-sqs.png)


L' JavaScript API d'Amazon SQS est exposée par le biais de la classe `AWS.SQS` client. Pour plus d'informations sur l'utilisation de la classe client Amazon SQS, consultez la référence [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html)de l'API.

**Topics**
+ [Utilisation des files d'attente dans Amazon SQS](sqs-examples-using-queues.md)
+ [Envoi et réception de messages dans Amazon SQS](sqs-examples-send-receive-messages.md)
+ [Gestion du délai de visibilité dans Amazon SQS](sqs-examples-managing-visibility-timeout.md)
+ [Activation de l'attente active de longue durée dans Amazon SQS](sqs-examples-enable-long-polling.md)
+ [Utilisation des files d'attente de lettres mortes dans Amazon SQS](sqs-examples-dead-letter-queues.md)

# Utilisation des files d'attente dans Amazon SQS
<a name="sqs-examples-using-queues"></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 :**
+ Comment récupérer la liste de toutes vos files d'attentes de messages
+ Comment récupérer l'URL d'une file d'attente en particulier
+ Comment créer et supprimer des files d'attente

## À propos de l'exemple
<a name="sqs-examples-using-queues-scenario"></a>

Dans cet exemple, une série de modules Node.js est utilisée pour utiliser des files d'attentes. Les modules Node.js utilisent le SDK pour permettre JavaScript aux files d'attente d'appeler les méthodes suivantes de la classe `AWS.SQS` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#listQueues-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#listQueues-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#createQueue-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#createQueue-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#getQueueUrl-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#getQueueUrl-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#deleteQueue-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#deleteQueue-property)

Pour plus d'informations sur les messages Amazon SQS, consultez la section [Comment fonctionnent les files d'attente dans le manuel](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-how-it-works.html) *Amazon Simple Queue Service* Developer Guide.

## Tâches prérequises
<a name="sqs-examples-using-queues-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).

## Liste de vos files d'attente
<a name="sqs-examples-using-queues-listing-queues"></a>

Créez un module Node.js nommé `sqs_listqueues.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon SQS, créez un objet de `AWS.SQS` service. Créez un objet JSON contenant les paramètres nécessaires pour répertorier vos files d'attentes, qui est par défaut un objet vide. Appelez la méthode `listQueues` pour extraire la liste des files d'attente. Le rappel renvoie toutes les files URLs d'attente.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create an SQS service object
var sqs = new AWS.SQS({ apiVersion: "2012-11-05" });

var params = {};

sqs.listQueues(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.QueueUrls);
  }
});
```

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

```
node sqs_listqueues.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sqs/sqs_listqueues.js).

## Création d'une file d'attente
<a name="sqs-examples-using-queues-create-queue"></a>

Créez un module Node.js nommé `sqs_createqueue.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon SQS, créez un objet de `AWS.SQS` service. Créez un objet JSON contenant les paramètres obligatoires pour répertorier vos files d'attente, qui doit inclure le nom de la file d'attente créée. Les paramètres peuvent également contenir des attributs pour la file d'attente, comme le nombre de secondes de retard dans la remise d'un message ou le nombre de secondes pour conserver un message reçu. Appelez la méthode `createQueue`. Le rappel retourne l'URL de la file d'attente créée.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create an SQS service object
var sqs = new AWS.SQS({ apiVersion: "2012-11-05" });

var params = {
  QueueName: "SQS_QUEUE_NAME",
  Attributes: {
    DelaySeconds: "60",
    MessageRetentionPeriod: "86400",
  },
};

sqs.createQueue(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.QueueUrl);
  }
});
```

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

```
node sqs_createqueue.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sqs/sqs_createqueue.js).

## Récupération de l'URL d'une file d'attente
<a name="sqs-examples-using-queues-get-queue-url"></a>

Créez un module Node.js nommé `sqs_getqueueurl.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon SQS, créez un objet de `AWS.SQS` service. Créez un objet JSON contenant les paramètres obligatoires pour répertorier vos files d'attente, qui doit inclure le nom de la file d'attente dont vous souhaitez obtenir l'URL. Appelez la méthode `getQueueUrl`. Le rappel retourne l'URL de la file d'attente spécifiée.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create an SQS service object
var sqs = new AWS.SQS({ apiVersion: "2012-11-05" });

var params = {
  QueueName: "SQS_QUEUE_NAME",
};

sqs.getQueueUrl(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.QueueUrl);
  }
});
```

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

```
node sqs_getqueueurl.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sqs/sqs_getqueueurl.js).

## Suppression d'une file d'attente
<a name="sqs-examples-using-queues-delete-queue"></a>

Créez un module Node.js nommé `sqs_deletequeue.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon SQS, créez un objet de `AWS.SQS` service. Créez un objet JSON contenant les paramètres nécessaires pour supprimer une file d'attente, qui inclut l'URL de la file d'attente à supprimer. Appelez la méthode `deleteQueue`. 

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create an SQS service object
var sqs = new AWS.SQS({ apiVersion: "2012-11-05" });

var params = {
  QueueUrl: "SQS_QUEUE_URL",
};

sqs.deleteQueue(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 sqs_deletequeue.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sqs/sqs_deletequeue.js).

# Envoi et réception de messages dans Amazon SQS
<a name="sqs-examples-send-receive-messages"></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 :**
+ Comment envoyer des messages dans une file d'attente.
+ Comment recevoir des messages dans une file d'attente.
+ Comment supprimer des messages dans une file d'attente.

## Scénario
<a name="sqs-examples-send-receive-messages-scenario"></a>

Dans cet exemple, une série de modules Node.js est utilisée pour envoyer et recevoir des messages. Les modules Node.js utilisent le SDK pour JavaScript envoyer et recevoir des messages en utilisant les méthodes suivantes de la classe `AWS.SQS` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#sendMessage-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#sendMessage-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#receiveMessage-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#receiveMessage-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#deleteMessage-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#deleteMessage-property)

Pour plus d'informations sur les messages Amazon SQS, consultez [Envoyer un message à une file d'attente Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-send-message.html) [et Recevoir et supprimer un message d'une file d'attente Amazon SQS dans le guide du développeur Amazon](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-receive-delete-message.html) *Simple Queue Service*.

## Tâches prérequises
<a name="sqs-examples-send-receive-messages-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 file d’attente Amazon SQS. Pour obtenir un exemple de création de file d'attente, consultez [Utilisation des files d'attente dans Amazon SQS](sqs-examples-using-queues.md).

## Envoi d'un message à une file d'attente
<a name="sqs-examples-send-receive-messages-sending"></a>

Créez un module Node.js nommé `sqs_sendmessage.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon SQS, créez un objet de `AWS.SQS` service. Créez un objet JSON contenant les paramètres obligatoires pour votre message, y compris l'URL de la file d'attente à laquelle vous souhaitez envoyer ce message. Dans cet exemple, le message fournit des détails au sujet d'un livre se trouvant sur une liste des meilleurs ouvrages de fiction, y compris le titre, l'auteur, et le nombre de semaines sur la liste.

Appelez la méthode `sendMessage`. Le rappel retourne l'ID unique du message.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create an SQS service object
var sqs = new AWS.SQS({ apiVersion: "2012-11-05" });

var params = {
  // Remove DelaySeconds parameter and value for FIFO queues
  DelaySeconds: 10,
  MessageAttributes: {
    Title: {
      DataType: "String",
      StringValue: "The Whistler",
    },
    Author: {
      DataType: "String",
      StringValue: "John Grisham",
    },
    WeeksOn: {
      DataType: "Number",
      StringValue: "6",
    },
  },
  MessageBody:
    "Information about current NY Times fiction bestseller for week of 12/11/2016.",
  // MessageDeduplicationId: "TheWhistler",  // Required for FIFO queues
  // MessageGroupId: "Group1",  // Required for FIFO queues
  QueueUrl: "SQS_QUEUE_URL",
};

sqs.sendMessage(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.MessageId);
  }
});
```

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

```
node sqs_sendmessage.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sqs/sqs_sendmessage.js).

## Réception et suppression des messages provenant d'une file d'attente
<a name="sqs-examples-send-receive-messages-receiving"></a>

Créez un module Node.js nommé `sqs_receivemessage.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon SQS, créez un objet de `AWS.SQS` service. Créez un objet JSON contenant les paramètres obligatoires pour votre message, y compris l'URL de la file d'attente à partir de laquelle vous souhaitez recevoir ce message. Dans cet exemple, les paramètres spécifient la réception de tous les attributs de message, ainsi que la réception de 10 messages maximum.

Appelez la méthode `receiveMessage`. Le rappel retourne un tableau d'objets `Message` à partir duquel vous pouvez récupérer la valeur `ReceiptHandle` pour chaque message que vous utilisez, afin de supprimer ultérieurement le message. Créez un autre objet JSON contenant les paramètres obligatoires pour supprimer le message, qui sont l'URL de la file d'attente et la valeur `ReceiptHandle`. Appelez la méthode `deleteMessage` pour supprimer le message reçu.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create an SQS service object
var sqs = new AWS.SQS({ apiVersion: "2012-11-05" });

var queueURL = "SQS_QUEUE_URL";

var params = {
  AttributeNames: ["SentTimestamp"],
  MaxNumberOfMessages: 10,
  MessageAttributeNames: ["All"],
  QueueUrl: queueURL,
  VisibilityTimeout: 20,
  WaitTimeSeconds: 0,
};

sqs.receiveMessage(params, function (err, data) {
  if (err) {
    console.log("Receive Error", err);
  } else if (data.Messages) {
    var deleteParams = {
      QueueUrl: queueURL,
      ReceiptHandle: data.Messages[0].ReceiptHandle,
    };
    sqs.deleteMessage(deleteParams, function (err, data) {
      if (err) {
        console.log("Delete Error", err);
      } else {
        console.log("Message Deleted", data);
      }
    });
  }
});
```

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

```
node sqs_receivemessage.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sqs/sqs_receivemessage.js).

# Gestion du délai de visibilité dans Amazon SQS
<a name="sqs-examples-managing-visibility-timeout"></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 :**
+ Comment spécifier l'intervalle de temps pendant lequel les messages reçus par une file d'attente ne sont pas visibles.

## Scénario
<a name="sqs-examples-managing-visibility-timeout-scenario"></a>

Dans cet exemple, le module Node.js est utilisé pour gérer le délai de visibilité. Le module Node.js utilise le SDK pour gérer le délai JavaScript d'expiration de visibilité en utilisant cette méthode de la classe `AWS.SQS` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#changeMessageVisibility-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#changeMessageVisibility-property)

Pour plus d'informations sur le délai de visibilité d'Amazon SQS, consultez [Visibility Timeout dans le manuel](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) *Amazon Simple Queue* Service Developer Guide.

## Tâches prérequises
<a name="sqs-examples-managing-visibility-timeout-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 file d’attente Amazon SQS. Pour obtenir un exemple de création de file d'attente, consultez [Utilisation des files d'attente dans Amazon SQS](sqs-examples-using-queues.md).
+ Envoyez un message à la file d'attente. Pour obtenir un exemple d'envoi de message à une file d'attente, consultez [Envoi et réception de messages dans Amazon SQS](sqs-examples-send-receive-messages.md).

## Modification du délai de visibilité
<a name="sqs-examples-managing-visibility-timeout-setting"></a>

Créez un module Node.js nommé `sqs_changingvisibility.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon Simple Queue Service, créez un objet `AWS.SQS` de service. Recevoir le message de la file d'attente.

À la réception du message de la file d'attente, créez un objet JSON contenant les paramètres obligatoires pour définir le délai d'expiration, y compris l'URL de la file d'attente contenant le message, la valeur `ReceiptHandle` retournée lorsque le message a été reçu, et le nouveau délai d'expiration en secondes. Appelez la méthode `changeMessageVisibility`. 

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region to us-west-2
AWS.config.update({ region: "us-west-2" });

// Create the SQS service object
var sqs = new AWS.SQS({ apiVersion: "2012-11-05" });

var queueURL = "https://sqs.REGION.amazonaws.com/ACCOUNT-ID/QUEUE-NAME";

var params = {
  AttributeNames: ["SentTimestamp"],
  MaxNumberOfMessages: 1,
  MessageAttributeNames: ["All"],
  QueueUrl: queueURL,
};

sqs.receiveMessage(params, function (err, data) {
  if (err) {
    console.log("Receive Error", err);
  } else {
    // Make sure we have a message
    if (data.Messages != null) {
      var visibilityParams = {
        QueueUrl: queueURL,
        ReceiptHandle: data.Messages[0].ReceiptHandle,
        VisibilityTimeout: 20, // 20 second timeout
      };
      sqs.changeMessageVisibility(visibilityParams, function (err, data) {
        if (err) {
          console.log("Delete Error", err);
        } else {
          console.log("Timeout Changed", data);
        }
      });
    } else {
      console.log("No messages to change");
    }
  }
});
```

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

```
node sqs_changingvisibility.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sqs/sqs_changingvisibility.js).

# Activation de l'attente active de longue durée dans Amazon SQS
<a name="sqs-examples-enable-long-polling"></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 :**
+ Comment activer l'attente active de longue durée pour une nouvelle file d'attente
+ Comment activer l'attente active de longue durée pour une file d'attente existante
+ Comment activer l'attente active de longue durée lors de la réception d'un message

## Scénario
<a name="sqs-examples-enable-long-polling-scenario"></a>

Les longues interrogations réduisent le nombre de réponses vides en permettant à Amazon SQS d'attendre pendant un certain temps qu'un message soit disponible dans la file d'attente avant d'envoyer une réponse. L'attente active de longue durée élimine également les fausses réponses vides en interrogeant tous les serveurs, à la place d'un simple échantillon. Pour activer l'attente active de longue durée, vous devez spécifier un temps d'attente différent de zéro pour les messages reçus. Pour ce faire, vous devez définir le paramètre `ReceiveMessageWaitTimeSeconds` d'une file d'attente ou le paramètre `WaitTimeSeconds` à la réception d'un message.

Dans cet exemple, une série de modules Node.js est utilisée pour activer l'attente active de longue durée. Les modules Node.js utilisent le SDK pour activer les longues JavaScript interrogations à l'aide des méthodes suivantes de la classe `AWS.SQS` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#setQueueAttributes-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#setQueueAttributes-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#receiveMessage-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#receiveMessage-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#createQueue-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#createQueue-property)

Pour plus d'informations sur les longs sondages Amazon SQS, consultez la section [Long Polling du manuel](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-long-polling.html) *Amazon Simple Queue Service Developer Guide*.

## Tâches prérequises
<a name="sqs-examples-enable-long-polling-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).

## Activation de l'attente active de longue durée lors de la création d'une file d'attente
<a name="sqs-examples-enable-long-polling-on-queue-creation"></a>

Créez un module Node.js nommé `sqs_longpolling_createqueue.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon SQS, créez un objet de `AWS.SQS` service. Créez un objet JSON contenant les paramètres obligatoires pour créer une file d'attente, y compris une valeur différente de zéro pour le paramètre `ReceiveMessageWaitTimeSeconds`. Appelez la méthode `createQueue`. L'attente active de longue durée est activée pour la file d'attente.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the SQS service object
var sqs = new AWS.SQS({ apiVersion: "2012-11-05" });

var params = {
  QueueName: "SQS_QUEUE_NAME",
  Attributes: {
    ReceiveMessageWaitTimeSeconds: "20",
  },
};

sqs.createQueue(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.QueueUrl);
  }
});
```

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

```
node sqs_longpolling_createqueue.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sqs/sqs_longpolling_createqueue.js).

## Activation de l'attente active de longue durée pour une file d'attente existante
<a name="sqs-examples-enable-long-polling-existing-queue"></a>

Créez un module Node.js nommé `sqs_longpolling_existingqueue.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon Simple Queue Service, créez un objet `AWS.SQS` de service. Créez un objet JSON contenant les paramètres obligatoires pour définir les attributs de la file d'attente, y compris une valeur différente de zéro pour le paramètre `ReceiveMessageWaitTimeSeconds` et l'URL de la file d'attente. Appelez la méthode `setQueueAttributes`. L'attente active de longue durée est activée pour la file d'attente.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the SQS service object
var sqs = new AWS.SQS({ apiVersion: "2012-11-05" });

var params = {
  Attributes: {
    ReceiveMessageWaitTimeSeconds: "20",
  },
  QueueUrl: "SQS_QUEUE_URL",
};

sqs.setQueueAttributes(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 sqs_longpolling_existingqueue.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sqs/sqs_longpolling_existingqueue.js).

## Activation de l'attente active de longue durée pour la réception des messages
<a name="sqs-examples-enable-long-polling-on-receive-message"></a>

Créez un module Node.js nommé `sqs_longpolling_receivemessage.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon Simple Queue Service, créez un objet `AWS.SQS` de service. Créez un objet JSON contenant les paramètres obligatoires pour recevoir des messages, y compris une valeur différente de zéro pour le paramètre `WaitTimeSeconds` et l'URL de la file d'attente. Appelez la méthode `receiveMessage`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the SQS service object
var sqs = new AWS.SQS({ apiVersion: "2012-11-05" });

var queueURL = "SQS_QUEUE_URL";

var params = {
  AttributeNames: ["SentTimestamp"],
  MaxNumberOfMessages: 1,
  MessageAttributeNames: ["All"],
  QueueUrl: queueURL,
  WaitTimeSeconds: 20,
};

sqs.receiveMessage(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 sqs_longpolling_receivemessage.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sqs/sqs_longpolling_receivemessage.js).

# Utilisation des files d'attente de lettres mortes dans Amazon SQS
<a name="sqs-examples-dead-letter-queues"></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 :**
+ Comment utiliser une file d'attente pour recevoir et mettre en attente des messages en provenance d'autres files d'attente que celles-ci ne peuvent pas traiter.

## Scénario
<a name="sqs-examples-dead-letter-queues-scenario"></a>

Une file d'attente de lettres mortes peut être ciblée par d'autres files d'attente (source) pour les messages ne pouvant pas être traités avec succès. Vous pouvez mettre de côté et isoler ces messages dans la file d'attente de lettres mortes pour déterminer pourquoi leur traitement a échoué. Vous devez configurer individuellement chaque file d'attente source qui envoie des messages à une file d'attente de lettres mortes. Plusieurs files d'attente peuvent cibler une seule file d'attente de lettre morte.

Dans cet exemple, un module Node.js est utilisé pour acheminer des messages vers une file d'attente de lettres mortes. Le module Node.js utilise le SDK pour utiliser les files JavaScript d'attente en lettres mortes en utilisant cette méthode de la classe `AWS.SQS` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#setQueueAttributes-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#setQueueAttributes-property)

Pour plus d'informations sur les files d'attente d'Amazon SQS, consultez la section Utilisation des files d'attente d'[Amazon SQS Dead Letter dans le guide du développeur *Amazon* Simple Queue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) Service.

## Tâches prérequises
<a name="sqs-examples-dead-letter-queues-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 file d'attente Amazon SQS qui servira de file d'attente lettre morte. Pour obtenir un exemple de création de file d'attente, consultez [Utilisation des files d'attente dans Amazon SQS](sqs-examples-using-queues.md).

## Configuration de files d'attente source
<a name="sqs-examples-dead-letter-queues-configuring-source-queues"></a>

Après avoir créé une file d'attente comme file d'attente de lettres mortes, vous devez configurer les autres files d'attente qui acheminent des messages non traités vers la file d'attente de lettres mortes. Pour ce faire, spécifiez une stratégie de redirection identifiant la file d'attente à utiliser comme file d'attente de lettres mortes, et le nombre maximum de réceptions pour les messages individuels avant que ces derniers soient acheminés vers la file d'attente de lettres mortes.

Créez un module Node.js nommé `sqs_deadletterqueue.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon SQS, créez un objet de `AWS.SQS` service. Créez un objet JSON contenant les paramètres obligatoires pour mettre à jour les attributs de file d'attente, en incluant le paramètre `RedrivePolicy` qui spécifie à la fois l'ARN de la file d'attente de lettres mortes et la valeur `maxReceiveCount`. Spécifiez également l'URL de file d'attente source que vous souhaitez configurer. Appelez la méthode `setQueueAttributes`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the SQS service object
var sqs = new AWS.SQS({ apiVersion: "2012-11-05" });

var params = {
  Attributes: {
    RedrivePolicy:
      '{"deadLetterTargetArn":"DEAD_LETTER_QUEUE_ARN","maxReceiveCount":"10"}',
  },
  QueueUrl: "SOURCE_QUEUE_URL",
};

sqs.setQueueAttributes(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 sqs_deadletterqueue.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sqs/sqs_deadletterqueue.js).