2
私はElasticSearchへのPOST HTTPリクエストだけを行うAWS Lambda内で次のコードを実行しようとしています。NodeJS httpポストリクエストの読み取りタイムアウト
私が直面している問題は、nodejs要求に読み取りタイムアウトがあり、応答がほとんど常に切断され、エラーがスローされているようです。私は問題がAWS Lambdaタイムアウトに関連していないことを確認しました。これは10秒に設定されており、コードは1秒未満でエラーをスローします。
ご覧のとおり、タイムアウトを5秒に設定しようとしましたが、これは接続タイムアウトであり、読み取りタイムアウトではないと思います。
私は間違っていますか?
var http = require('http');
exports.handler = (event, context, callback) => {
var options = {
hostname: '172.31.40.10',
port: 9200,
path: '/articles/es/_search?_source=reference',
method: 'POST',
headers: {
'Content-Type': 'application/json',
}
};
var req = http.request(options, function(res) {
res.setEncoding('utf8');
res.on('data', function (body) {
var parsed = JSON.parse(body);
var b = [];
for (var i = 0; i < parsed.hits.hits.length; i++) {
b.push(parsed.hits.hits[i]._source.reference);
}
var response = {
statusCode: '200',
body: JSON.stringify(b),
headers: {
'Content-Type': 'application/json',
}
};
callback(null, response);
});
});
req.on('error', function(e) {
callback(new Error('fallo'));
});
req.setTimeout(5000, function() {req.abort;})
req.on('socket', function (socket) {
socket.setTimeout(5000);
socket.on('timeout', function() {
req.abort();
});
});
req.write(MY_QUERY_HERE);
req.end();
};
あなたが取得しているエラーメッセージやエラーコードは何ですか? –