[英]Parsing SQS POST message in node.js
我有一个Web服务器和一个工作人员通过SQS进行通信-您通过服务器将图片上传到S3存储桶中,并将消息排队到SQS,以便工作人员从存储桶中获取图片,调整大小并上传调整大小的图像到同一桶。 我已将工作程序配置为在收到新消息(POST)时从SQS接收通知,但我似乎无法成功解析它并获取图像名称(这是一个巨大的JSON)。 如果我通过以下方式向SQS发送消息,如何从文件中提取文件名:
var params = {
MessageBody: JSON.stringify({data: msg.file}),
QueueUrl: queueUrl
};
SQS.sendMessage(params, function(err, data)...
非常感谢您的帮助!
您是否尝试过aws-sdk库? 这是那里的文档: https : //milesplit.wordpress.com/2013/11/07/using-sqs-with-node/
这是摘要:首先连接到sqs:
var AWS = require('aws-sdk'),
awsCredentialsPath = './aws.credentials.json',
sqsQueueUrl = 'https://sqs.us-east-1.amazonaws.com/123455678/test-queue',
sqs;
// Load credentials from local json file
AWS.config.loadFromPath(awsCredentialsPath);
// Instantiate SQS client
sqs = new AWS.SQS().client;
或者,如果您不想使用外部文件:
var AWS = require('aws-sdk'),
sqsQueueUrl = 'https://sqs.us-east-1.amazonaws.com/123455678/test-queue',
sqs;
// Load credentials from local json file
AWS.config.update({
"accessKeyId": "YOUR AWS PUBLIC KEY",
"secretAccessKey": "YOUR AWS SECRET KEY",
"region": "us-east-1"
});
// Instantiate SQS client
sqs = new AWS.SQS().client;
然后-阅读消息:
sqs.receiveMessage({
QueueUrl: sqsQueueUrl,
MaxNumberOfMessages: 1, // how many messages do we wanna retrieve?
VisibilityTimeout: 60, // seconds - how long we want a lock on this job
WaitTimeSeconds: 3 // seconds - how long should we wait for a message?
}, function(err, data) {
// If there are any messages to get
if (data.Messages) {
// Get the first message (should be the only one since we said to only get one above)
var message = data.Messages[0],
body = JSON.parse(message.Body);
// Now this is where you'd do something with this message
doSomethingCool(body, message); // whatever you wanna do
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.