What is @aws-sdk/middleware-sdk-sqs?
@aws-sdk/middleware-sdk-sqs is a middleware package for the AWS SDK for JavaScript (v3) that provides specialized middleware for Amazon Simple Queue Service (SQS). It helps in handling SQS-specific tasks such as message deduplication, message attribute handling, and more.
What are @aws-sdk/middleware-sdk-sqs's main functionalities?
Message Deduplication
This feature allows you to send messages with deduplication enabled, which is useful for FIFO (First-In-First-Out) queues. The middleware automatically handles deduplication logic.
const { SQSClient, SendMessageCommand } = require('@aws-sdk/client-sqs');
const { applyMiddleware } = require('@aws-sdk/middleware-sdk-sqs');
const client = new SQSClient({ region: 'us-east-1' });
applyMiddleware(client);
const params = {
QueueUrl: 'https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue',
MessageBody: 'Hello, world!',
MessageDeduplicationId: 'unique-id-123',
MessageGroupId: 'group-id-1'
};
const command = new SendMessageCommand(params);
client.send(command).then((data) => {
console.log('Message sent:', data);
}).catch((error) => {
console.error('Error sending message:', error);
});
Message Attribute Handling
This feature allows you to send messages with custom attributes. The middleware helps in managing and sending these attributes along with the message.
const { SQSClient, SendMessageCommand } = require('@aws-sdk/client-sqs');
const { applyMiddleware } = require('@aws-sdk/middleware-sdk-sqs');
const client = new SQSClient({ region: 'us-east-1' });
applyMiddleware(client);
const params = {
QueueUrl: 'https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue',
MessageBody: 'Hello, world!',
MessageAttributes: {
'AttributeOne': {
DataType: 'String',
StringValue: 'ValueOne'
},
'AttributeTwo': {
DataType: 'Number',
StringValue: '123'
}
}
};
const command = new SendMessageCommand(params);
client.send(command).then((data) => {
console.log('Message sent with attributes:', data);
}).catch((error) => {
console.error('Error sending message:', error);
});
Other packages similar to @aws-sdk/middleware-sdk-sqs
@aws-sdk/client-sqs
@aws-sdk/client-sqs is the main client package for interacting with Amazon SQS. It provides a comprehensive set of methods for sending, receiving, and managing SQS messages and queues. While @aws-sdk/middleware-sdk-sqs focuses on middleware functionalities, @aws-sdk/client-sqs provides the core functionalities for SQS operations.
sqs-consumer
sqs-consumer is a lightweight library for building SQS-based applications. It simplifies the process of consuming messages from SQS queues and provides features like automatic polling and error handling. Unlike @aws-sdk/middleware-sdk-sqs, which is middleware for the AWS SDK, sqs-consumer is a standalone library focused on message consumption.
sqs-producer
sqs-producer is a library for sending messages to SQS queues. It provides a simple API for creating and sending messages. While @aws-sdk/middleware-sdk-sqs offers middleware functionalities for the AWS SDK, sqs-producer is a standalone library focused on message production.