parse-server-sqs-mq-adapterdeprecated

Spread work queue across cluster of parse servers using SQS

Usage no npm install needed!

<script type="module">
  import parseServerSqsMqAdapter from 'https://cdn.skypack.dev/parse-server-sqs-mq-adapter';
</script>

README

parse-server-sqs-mq-adapter

Build Status codecov Greenkeeper badge

AWS SQS backed message queue. This adapter allows a work queue to be spread across a cluster of machines.

Installation

npm install --save parse-server-sqs-mq-adapter

Usage

const ParseServer = require('parse-server').ParseServer;
const SQSEventEmitterMQ = require('parse-server-sqs-mq-adapter').SQSEventEmitterMQ;

config = {
  ....
  queueOptions: {
    messageQueueAdapter: SQSEventEmitterMQ,
    queueUrl: 'https://sqs.us-east-1.amazonaws.com/XXX/Parse-Queue', // required
    region: 'us-east-1',
  },
};

const parseServer = new ParseServer(config);

See: sqs-consumer for complete list of configuration options.

Credentials

By default the consumer will look for AWS credentials in the places specified by the AWS SDK. The simplest option is to export your credentials as environment variables:

export AWS_SECRET_ACCESS_KEY=...
export AWS_ACCESS_KEY_ID=...

If you need to specify your credentials manually, you can use a pre-configured instance of the AWS SQS client:

const ParseServer = require('parse-server').ParseServer;
const SQSEventEmitterMQ = require('SQSEventEmitterMQ');
const AWS = require('aws-sdk');

AWS.config.update({
  region: 'eu-west-1',
  accessKeyId: '...',
  secretAccessKey: '...'
});

config = {
  ....
  messageQueueAdapter: SQSEventEmitterMQ,
  SQSEventEmitterMQOptions: {
    queueUrl: 'https://sqs.us-east-1.amazonaws.com/XXX/Parse-Queue',
    sqs: new AWS.SQS(),
  },
};

const parseServer = new ParseServer(config);