Ich hoffe, Lambda zu verwenden, um eine Master-Liste zu erhalten und es zu s3 in einem regelmäßigen Intervall zu speichern. Ich arbeite mit schnell laufenden GET-Anfragen, aber für die eigentliche Datendatei, die ich bekommen muss, ist das ultimative Ergebnis ein vorzeitiger Exit, weil es eine Weile dauert, bis der Inhalt vollständig ist.Long running http GET in Lambdazeiten out
'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}`);
});
};
Dies führt zu {"errorMessage":"Process exited before completing request"}
bin ich nicht sicher, ob dies auch ein legit Timeout oder etwas ist. Was könnte es sein?
Welche Version von Knoten? 6.x + durch Zufall? – Joe
@Joe sagt Knoten 4.3 – Kristian