Skip to content

Instantly share code, notes, and snippets.

@regevbr
Last active May 18, 2019 10:39
Show Gist options
  • Save regevbr/cf6193179b05b3de6cf312ded5a7f4b1 to your computer and use it in GitHub Desktop.
Save regevbr/cf6193179b05b3de6cf312ded5a7f4b1 to your computer and use it in GitHub Desktop.
SQS "hello world"
// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
var awsConfig = {
accessKeyId: '<accessKeyId>',
secretAccessKey: '<secretAccessKey>',
region: '<region>'
};
AWS.config.update(awsConfig);
// Create an SQS service object
var sqs = new AWS.SQS({apiVersion: '2012-11-05'});
var queueURL = "SQS_QUEUE_URL";
var messageToSend = {
name: 'messageName',
message: {
a: 1,
b: 2,
},
}
var sendParams = {
DelaySeconds: 10,
MessageAttributes: {
"p1": {
DataType: "Number",
StringValue: "1"
},
"p1": {
DataType: "Number",
StringValue: "2"
}
},
MessageBody: JSON.stringify(messageToSend),
QueueUrl: queueURL
};
sqs.sendMessage(sendParams, function(err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data.MessageId);
}
var recieveParams = {
AttributeNames: [
"SentTimestamp"
],
MaxNumberOfMessages: 10,
MessageAttributeNames: [
"All"
],
QueueUrl: queueURL,
VisibilityTimeout: 20,
WaitTimeSeconds: 0
};
sqs.receiveMessage(recieveParams, function(err, data) {
if (err) {
console.log("Receive Error", err);
} else if (data.Messages) {
data.Messages.forEach((msg) => {
var parsedMessage = JSON.parse(msg.Body);
console.log('%s says: %s', parsedMessage.name, JSON.stringify(parsedMessage.message), msg.MessageAttributes.p1.StringValue);
});
var deleteParams = {
QueueUrl: queueURL,
ReceiptHandle: data.Messages[0].ReceiptHandle
};
sqs.deleteMessage(deleteParams, function(err, data) {
if (err) {
console.log("Delete Error", err);
} else {
console.log("Message Deleted", data);
}
});
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment