Awesome Open Source
Awesome Open Source


NPM downloads Build Status Code Climate Test Coverage

Enqueues messages onto a given SQS queue


npm install sqs-producer


const { Producer } = require('sqs-producer');

// create simple producer
const producer = Producer.create({
  queueUrl: '',
  region: 'eu-west-1'

// create custom producer (supporting all opts as per the API docs:
const producer = Producer.create({
  queueUrl: '',
  region: 'eu-west-1',
  accessKeyId: 'yourAccessKey',
  secretAccessKey: 'yourSecret'

// send messages to the queue
await producer.send(['msg1', 'msg2']);

// get the current size of the queue
const size = await producer.queueSize();
console.log(`There are ${size} messages on the queue.`);

// send a message to the queue with a specific ID (by default the body is used as the ID)
await producer.send([{
  id: 'id1',
  body: 'Hello world'

// send a message to the queue with
// - delaySeconds (must be an number contained within 0 and 900)
// - messageAttributes
await producer.send([
    id: 'id1',
    body: 'Hello world with two string attributes: attr1 and attr2',
    messageAttributes: {
      attr1: { DataType: 'String', StringValue: 'stringValue' },
      attr2: { DataType: 'Binary', BinaryValue: new Buffer('binaryValue') }
    id: 'id2',
    body: 'Hello world delayed by 5 seconds',
    delaySeconds: 5

// send a message to a FIFO queue
// note that AWS FIFO queues require two additional params:
// - groupId (string)
// - deduplicationId (string)
// deduplicationId can be excluded if content-based deduplication is enabled
await producer.send({
  id: "testId",
  body: 'Hello world from our FIFO queue!',
  groupId: 'group1234',
  deduplicationId: 'abcdef123456' // typically a hash of the message body



npm test


For coverage report, run the command:

npm run coverage


To check for problems using ESLint

npm run lint


See contributing guildlines

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
typescript (12,096
aws (1,133
sqs (27