

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

# Envío y recepción de mensajes en Amazon SQS
<a name="sqs-examples-send-receive-messages"></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 enviar mensajes en una cola.
+ Cómo recibir mensajes en una cola.
+ Cómo eliminar mensajes de una cola.

## El escenario
<a name="sqs-examples-send-receive-messages-scenario"></a>

En este ejemplo, se utilizan una serie de módulos de Node.js para enviar y recibir mensajes. Los módulos de Node.js utilizan el SDK para JavaScript para enviar y recibir mensajes mediante los métodos de la clase de cliente `AWS.SQS` siguientes:
+ [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)

Para obtener más información acerca de los mensajes de Amazon SQS, consulte [Envío de un mensaje a una cola de Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-send-message.html) y [Recepción y eliminación de un mensaje de una cola de Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-receive-delete-message.html) en la *Guía para desarrolladores de Amazon Simple Queue Service*.

## Tareas previas necesarias
<a name="sqs-examples-send-receive-messages-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ío de un mensaje a una cola
<a name="sqs-examples-send-receive-messages-sending"></a>

Cree un módulo de Node.js con el nombre de archivo `sqs_sendmessage.js`. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para obtener acceso a Amazon SQS, cree un objeto de servicio de `AWS.SQS`. Cree un objeto JSON que contenga los parámetros necesarios para su mensaje y que incluya la dirección URL de la cola a la que desea enviar este mensaje. En este ejemplo, el mensaje proporciona detalles (título, autor y número de semanas en la lista) sobre un libro de una lista de libros más vendidos de ficción.

Llame al método `sendMessage`. La devolución de llamada devuelve el ID único del mensaje.

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

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

```
node sqs_sendmessage.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_sendmessage.js).

## Recepción y eliminación de mensajes de una cola
<a name="sqs-examples-send-receive-messages-receiving"></a>

Cree un módulo de Node.js con el nombre de archivo `sqs_receivemessage.js`. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para obtener acceso a Amazon SQS, cree un objeto de servicio de `AWS.SQS`. Cree un objeto JSON que contenga los parámetros necesarios para su mensaje y que incluya la dirección URL de donde desee recibir mensajes. En este ejemplo, los parámetros especifican la recepción de todos los atributos de mensajes, así como la recepción de un máximo de 10 mensajes.

Llame al método `receiveMessage`. La devolución de llamada devuelve una matriz de objetos de `Message` desde la que puede recuperar el `ReceiptHandle` de cada mensaje que puede utilizar más adelante para eliminar dicho mensaje. Cree otro objeto JSON que contenga los parámetros necesarios para eliminar el mensaje, que son la dirección URL de la cola y el valor de `ReceiptHandle`. Llame al método `deleteMessage` para eliminar el mensaje que ha recibido.

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

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

```
node sqs_receivemessage.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_receivemessage.js).