

La versión 2 de AWS SDK para JavaScript ha llegado al final del soporte. Se recomienda que migre a [AWS SDK para JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Para ver detalles e información adicionales sobre cómo realizar la migración, consulte este [anuncio](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

# Administración del tiempo de espera de visibilidad en Amazon SQS
<a name="sqs-examples-managing-visibility-timeout"></a>

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

**Este ejemplo de código de Node.js muestra:**
+ Cómo especificar el intervalo de tiempo durante el cual los mensajes que una cola recibe no son visibles.

## El escenario
<a name="sqs-examples-managing-visibility-timeout-scenario"></a>

En este ejemplo, se utiliza un módulo de Node.js para administrar el tiempo de espera de visibilidad. El módulo de Node.js usa el SDK para JavaScript para administrar el tiempo de espera de visibilidad mediante este método de la clase de cliente `AWS.SQS`:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#changeMessageVisibility-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#changeMessageVisibility-property)

Para obtener más información sobre tiempos de espera de visibilidad de Amazon SQS, consulte [Tiempo de espera de visibilidad](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) en la *Guía para desarrolladores de Amazon Simple Queue Service*.

## Tareas previas necesarias
<a name="sqs-examples-managing-visibility-timeout-prerequisites"></a>

Para configurar y ejecutar este ejemplo, primero debe completar estas tareas:
+ Instale Node.js. Para obtener más información acerca de la instalación de Node.js consulte el [sitio web de Node.js](https://nodejs.org).
+ Cree un archivo de configuraciones compartidas con sus credenciales de usuario. Para obtener más información acerca de cómo crear un archivo de credenciales compartidas, consulte [Carga de credenciales en Node.js desde el archivo de credenciales compartidas](loading-node-credentials-shared.md).
+ Crear una cola de Amazon SQS. Para ver un ejemplo de cómo crear una cola, consulte [Uso de colas en Amazon SQS](sqs-examples-using-queues.md).
+ Envíe un mensaje a la cola. Para ver un ejemplo de cómo enviar un mensaje a una cola, consulte [Envío y recepción de mensajes en Amazon SQS](sqs-examples-send-receive-messages.md).

## Cambio del tiempo de espera de visibilidad
<a name="sqs-examples-managing-visibility-timeout-setting"></a>

Cree un módulo de Node.js con el nombre de archivo `sqs_changingvisibility.js`. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a Amazon Simple Queue Service, cree un objeto de servicio de `AWS.SQS`. Recibir el mensaje de la cola

Al recibir el mensaje de la cola, cree un objeto JSON que contenga los parámetros necesarios para configurar el tiempo de espera, como la dirección URL de la cola que contiene el mensaje, el `ReceiptHandle` que se devuelve cuando el mensaje se recibe y el nuevo tiempo de espera en segundos. Llame al método `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");
    }
  }
});
```

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

```
node sqs_changingvisibility.js
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sqs/sqs_changingvisibility.js).