

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.

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