Menu
Open source

receiveMessages

SQSClient.receiveMessages(queueUrl, [options]) receives messages from the specified Amazon Simple Queue Service (SQS) queue.

Parameters

NameTypeDescription
queueUrlstringThe URL of the Amazon SQS queue from which messages are received. Queue URLs and names are case-sensitive.
optionsReceiveMessageOptions (optional)Options for the receive operation.

ReceiveMessageOptions

NameTypeDescription
maxNumberOfMessagesnumber (optional)The maximum number of messages to return. Amazon SQS never returns more messages than this value (however, fewer messages might be returned). Valid values: 1 to 10. Default: 1.
visibilityTimeoutSecondsnumber (optional)The duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being retrieved by a receiveMessages request. Valid values: 0 to 43200 (12 hours). Default: the queue’s default visibility timeout.
waitTimeSecondsnumber (optional)The duration (in seconds) for which the call waits for a message to arrive in the queue before returning. Valid values: 0 to 20. Default: 0.

Returns

TypeDescription
Promise<SQSMessage[]>A Promise that fulfills with an array of received messages.

SQSMessage

NameTypeDescription
messageIdstringA unique identifier for the message.
bodystringThe message’s contents (not URL-encoded).
receiptHandlestringAn identifier associated with the act of receiving the message. A new receipt handle is returned every time you receive a message. When deleting a message, you provide the last received receipt handle to delete the message.
md5OfBodystringAn MD5 digest of the non-URL-encoded message body string.

Example

JavaScript
import exec from 'k6/execution';

import {
  AWSConfig,
  SQSClient,
} from 'http://jslib.k6.io/aws/0.14.0/sqs.js';

const awsConfig = new AWSConfig({
  region: __ENV.AWS_REGION,
  accessKeyId: __ENV.AWS_ACCESS_KEY_ID,
  secretAccessKey: __ENV.AWS_SECRET_ACCESS_KEY,
  sessionToken: __ENV.AWS_SESSION_TOKEN,
});

const sqs = new SQSClient(awsConfig);
const testQueue = 'http://sqs.us-east-1.amazonaws.com/000000000/test-queue';

export default async function () {
  // If our test queue does not exist, abort the execution.
  const queuesResponse = await sqs.listQueues();
  if (queuesResponse.urls.filter((q) => q === testQueue).length == 0) {
    exec.test.abort();
  }

  // Receive messages from the queue
  const messages = await sqs.receiveMessages(testQueue, {
    maxNumberOfMessages: 10,
    waitTimeSeconds: 2,
  });

  // Process received messages
  for (const message of messages) {
    console.log('Received message:', message.body);
    console.log('Message ID:', message.messageId);
    console.log('Receipt handle:', message.receiptHandle);
  }
}