Research
Security News
Malicious npm Package Typosquats react-login-page to Deploy Keylogger
Socket researchers unpack a typosquatting package with malicious code that logs keystrokes and exfiltrates sensitive data to a remote server.
sqs-consumer
Advanced tools
Readme
Build SQS-based applications without the boilerplate. Just define an async function that handles the SQS message processing.
To install this package, simply enter the following command into your terminal (or the variant of whatever package manager you are using):
npm install sqs-consumer
Note This library assumes you are using AWS SDK v3. If you are using v2, please install v5.8.0:
npm install sqs-consumer@5.8.0
From v7 and above, this library will only support Node v16 or above. If you are still using Node 14, please use a previous version of the library.
This decision was made due to the removal of security support from the Node.JS team from April 30th, 2023.
import { Consumer } from 'sqs-consumer';
const app = Consumer.create({
queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name',
handleMessage: async (message) => {
// do some work with `message`
}
});
app.on('error', (err) => {
console.error(err.message);
});
app.on('processing_error', (err) => {
console.error(err.message);
});
app.start();
batchSize
option detailed below.handleMessage
and handleMessageBatch
functions will be considered as processed if they return without an error. To acknowledge individual messages, please return the message that you want to acknowledge if you are using handleMessage
or the messages for handleMessageBatch
. It's also important to await any processing that you are doing to ensure that messages are processed one at a time.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 SQS Client client.
import { Consumer } from 'sqs-consumer';
import { SQSClient } from '@aws-sdk/client-sqs';
const app = Consumer.create({
queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name',
handleMessage: async (message) => {
// ...
},
sqs: new SQSClient({
region: 'my-region',
credentials: {
accessKeyId: 'yourAccessKey',
secretAccessKey: 'yourSecret'
}
})
});
app.on('error', (err) => {
console.error(err.message);
});
app.on('processing_error', (err) => {
console.error(err.message);
});
app.on('timeout_error', (err) => {
console.error(err.message);
});
app.start();
Consumer will receive and delete messages from the SQS queue. Ensure sqs:ReceiveMessage
, sqs:DeleteMessage
, sqs:DeleteMessageBatch
, sqs:ChangeMessageVisibility
and sqs:ChangeMessageVisibilityBatch
access is granted on the queue being consumed.
Consumer.create(options)
Creates a new SQS consumer using the defined options.
consumer.start()
Start polling the queue for messages.
consumer.stop(options)
Stop polling the queue for messages. You can find the options definition here.
By default, the value of abort
is set to false
which means pre existing requests to AWS SQS will still be made until they have concluded. If you would like to abort these requests instead, pass the abort value as true
, like so:
consumer.stop({ abort: true })
consumer.isRunning
Returns the current polling state of the consumer: true
if it is actively polling, false
if it is not.
consumer.updateOption(option, value)
Updates the provided option with the provided value.
You can find out more about this here.
Each consumer is an EventEmitter
and emits these events.
We welcome and appreciate contributions for anyone who would like to take the time to fix a bug or implement a new feature.
But before you get started, please read the contributing guidelines and code of conduct.
SQS Consumer is distributed under the Apache License, Version 2.0, see LICENSE for more information.
FAQs
Unknown package
The npm package sqs-consumer receives a total of 346,236 weekly downloads. As such, sqs-consumer popularity was classified as popular.
We found that sqs-consumer demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers unpack a typosquatting package with malicious code that logs keystrokes and exfiltrates sensitive data to a remote server.
Security News
The JavaScript community has launched the e18e initiative to improve ecosystem performance by cleaning up dependency trees, speeding up critical parts of the ecosystem, and documenting lighter alternatives to established tools.
Product
Socket now supports four distinct alert actions instead of the previous two, and alert triaging allows users to override the actions taken for all individual alerts.