Я не понял, почему моя Лямбда не работает с моей загрузкой csv.My Lambda - это таймаут с моей загрузкой S3
var AWS = require('aws-sdk');
var mysql = require('mysql');
var json2csv = require('json2csv');
exports.handler = function (event, context) {
AWS.config = {
region: 'us-east-1',
apiVersions : {
s3: '2006-03-01'
}
};
var s3 = new AWS.S3({signatureVersion: 'v4'});
var bucket = 'search-dev';
if(event.debug == true)
{
var connection = mysql.createConnection({
host : event.database.host,
user : event.database.user,
password : event.database.pwd,
database : event.database.name
});
}
connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack);
context.fail(err);
}
});
mysqlData();
connection.end();
function mysqlData() {
connection.query('SELECT id, keywords, result_count FROM keyword WHERE result_count != ""', function (err, results, fields) {
if (err) {
console.error('error connecting: ' + err.stack);
context.fail(err);
}
console.log(results.length + " trouvés");
var csvFields = [];
for (var i in fields) {
csvFields.push(fields[i].name);
}
var csv = json2csv({ data: results, fields: csvFields });
writeInFile(csv);
});
}
function writeInFile(dataCsv)
{
filename = generateFilename();
var params = {
ACL: 'public-read',
Bucket: bucket,
Key: filename+'.csv',
Body: dataCsv
};
s3.upload(params, function (err, data) {
if (err) {
console.error(err, err.stack); // an error occurred
context.fail(err);
}
context.succeed({url: data.Location});
});
}
function generateFilename()
{
var date = new Date();
var filename = date.getDate()+'-'+date.getMonth()+'-'+date.getFullYear()+'_'+date.getHours()+':'+date.getMinutes()+':'+date.getSeconds();
return filename;
}
};
С другой лямбда-функции, то это не проблема, но здесь, все это время тайм-аута с s3.upload мой Lambda имеют S3FullAccess в IAM.
Этот код отлично работает на местном уровне.
И еще проблема в том, что я создал новое ведро, но невозможно загрузить его на локальном [NoSuchBucket: The specified bucket does not exist]
Я не понимаю, потому что я создал другое ведро, и они не являются проблемой для загрузки на него.
Благодаря