Я надеюсь использовать Lambda, чтобы получить главный список и сохранить его на s3 на регулярном интервале. У меня есть работа с быстро запускаемыми запросами GET, но для фактического файла данных, который мне нужно получить, конечным результатом является преждевременный выход, потому что для получения полного содержимого требуется некоторое время.Длительный запуск http GET в Lambda раз
'use strict';
let http = require('http');
/**
* get the data and store it in S3
*/
exports.handler = (event, context, callback) => {
console.log("STARTING?");
let aws = require('aws-sdk');
aws.config.region = 'us-west-2';
let s3 = new aws.S3({ apiVersion: '2006-03-01' });
var url = "http://long.running.url";
// do the request of the company list
http.get(url, (res) => {
var body = "";
console.log(`Got response: ${res.statusCode}`);
// consume response body
res.setEncoding('utf8');
res.on('data', (chunk) => {
body += chunk;
//console.log(`BODY: ${chunk}`);
});
res.on('end',() => {
console.log('No more data in response.')
// S3
var param = {
Bucket: 'my/s3/bucket',
Key: 'big.masterlist.txt',
Body: body
};
s3.putObject(param, function(err, data) {
if (err) {
console.log("error", err);
}
console.log(data);
context.done(null, data);
});
});
}).on('error', (e) => {
console.log(`Got error: ${e.message}`);
});
};
Это приводит к {"errorMessage":"Process exited before completing request"}
Я не уверен, если это является законным таймаут или что-то другое. Что бы это могло быть?
Какая версия узла? 6.x + случайно? – Joe
@Joe это говорит узел 4.3 – Kristian