j'ai écrit quelques js de base pour ne citer que les fichiers d'un FTP, mais je reçois:AWS Lambda peut-il atteindre/interagir avec S/FTP?
« Processus sorti avant de remplir la demande »
Est-ce parce que Lambda ne peut pas interagir avec FTP? J'utilise jsftp btw.
Voici ma configuration:
- J'utilise Serverless pour créer le projet
- Pour ma lambda, je nodejs et j'utilise JSFTP pour traiter les trucs ftp.
Mon code:
// Require Serverless ENV vars
var ServerlessHelpers = require('serverless-helpers-js').loadEnv();
// Require Logic
var lib = require('../lib');
// Lambda Handler
module.exports.handler = function (event, context) {
lib.respond(event, function (error, response) {
return context.done(error, response);
});
};
Mon code ftp lambda:
var JSFtp = require("jsftp");
module.exports.respond = function (event, cb) {
var ftp = new JSFtp({
host: "host",
user: "user",
password: "password"
});
ftp.auth(ftp.user, ftp.password, function(err, res) {
if (err) console.log(err);
else console.log(res);
ftp.ls(".", function (err, res) {
var results = [];
res.forEach(function (file) {
results.push(file.name);
});
ftp.raw.quit();
return cb(null, results.length);
})
});
};
Je glissai console.log() dans tous les sens et il semble que cela étranglé une fois qu'il a essayé de ftp.auth.
La sortie que je vois dans la montre de nuage:
START RequestId: __ID__ Version: $LATEST
END RequestId: __ID__
REPORT RequestId: __ID__ Duration: 526.46 ms Billed Duration: 600 ms Memory Size: 1024 MB Max Memory Used: 33 MB
Process exited before completing request
Il ressemble juste étranglé quelque part ...
Le délai d'attente par défaut pour une exécution de la fonction lambda est de 3 secondes. Votre appel peut prendre plus de temps et se terminer. Vous pouvez essayer de le changer pour une valeur plus grande –
Soit votre processus plante (recherchez les erreurs dans le journal) ou vous n'appelez pas context.succeed() à la fin. –
@mbaird mise à jour op avec le code im en utilisant – iCodeLikeImDrunk