【发布时间】:2019-09-26 07:14:56
【问题描述】:
我有一个 NodeJS Elastic Beanstalk 工作层环境,它从 SQS 队列获取消息并将它们发布到外部 url。下面的代码按预期工作,但消息在 SQS 中仍处于“飞行状态”。我看不到任何有关如何通知 SQS 消息已成功处理的文档?
var http = require('http'),
request = require("request"),
fs = require('fs');
http.createServer(function (req, res) {
req.on('data', function (data) {
var jsonObj = JSON.parse(data);
var jsonString = JSON.stringify(jsonObj);
log("Processing " + jsonString);
request.post('http://example.com', {
json: true,
body: jsonString,
headers: {
"content-type": "application/json",
}
}, (error, res, body) => {
if (error) {
log(`Error ${error}`);
return;
}
returnResponse(res, JSON.stringify(body));
})
});
}).listen(process.env.PORT || 3000);
function returnResponse(httpResponse, message) {
log(`Response status code ${httpResponse.statusCode} - ${message}`);
httpResponse.writeHead(httpResponse.statusCode);
httpResponse.write(message);
httpResponse.end();
}
var log = function (entry) {
fs.appendFileSync('/tmp/output.log', new Date().toISOString() + ' - ' + entry + '\n');
};
【问题讨论】:
-
不,这是正确的代码。该代码在 Elastic Beanstalk 中配置为工作层环境。 docs.aws.amazon.com/elasticbeanstalk/latest/dg/…
标签: node.js amazon-web-services amazon-sqs amazon-elastic-beanstalk