1.1.5 • Published 8 years ago

lawos v1.1.5

Weekly downloads
377
License
MIT
Repository
github
Last release
8 years ago

lawos - Lambda Worker SQS

npm license CircleCI Coveralls

Library to process messages from an Amazon SQS queue with an AWS Lambda worker function or your favorite other JavaScript environment. Works fine with Serverless

Install

$ > npm install lawos

Example

See lawos-serverless for an example of Lawos using Serverless.

Usage

Promise for every message

const AWS = require('aws-sdk');
const SQS = new AWS.SQS({apiVersion: '2012-11-05'});

const Lawos = require('lawos');
const Q = new Lawos('https://sqs.eu-west-1.amazonaws.com …', SQS);

Q.item(
  item => new Promise(done => {
    done();
  })
);

module.exports.handler = function(event, context, callback) {
  Q.work(
    () = Promise.resolve(context.getRemainingTimeInMillis() < 500)
  ).then(
    data => {
      callback(null, data);
    }
  );
};

Promise for a batch of messages

const AWS = require('aws-sdk');
const SQS = new AWS.SQS({apiVersion: '2012-11-05'});

const Lawos = require('lawos');
const Q = new Lawos('https://sqs.eu-west-1.amazonaws.com …', SQS);

Q.list(
  list => new Promise(done => {
    done();
  })
);

module.exports.handler = function(event, context, callback) {
  Q.work(
    () = Promise.resolve(context.getRemainingTimeInMillis() < 500)
  ).then(
    data => {
      callback(null, data);
    }
  );
};

Use AWS Lambda instead of Promise

const AWS = require('aws-sdk');
const Lawos = require('lawos');

const Lambda = new AWS.Lambda({apiVersion: '2015-03-31'});
const SQS = new AWS.SQS({apiVersion: '2012-11-05'});

const Q = new Lawos('https://sqs.eu-west-1.amazonaws.com …', SQS, Lambda);

Q.item('fake-function-name');
// Q.list('fake-function-name');

module.exports.handler = function(event, context, callback) {
  Q.work(
    () = Promise.resolve(context.getRemainingTimeInMillis() < 500)
  ).then(
    data => {
      callback(null, data);
    }
  );
};

License

Feel free to use the code, it's released using the MIT license.

Contributors

1.1.5

8 years ago

1.1.4

8 years ago

1.1.3

8 years ago

1.1.2

8 years ago

1.1.1

8 years ago

1.1.0

8 years ago

1.0.7

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago