我写了一些基本的js来列出FTP的文件,但我得到:
"在完成请求之前退出流程"
那是因为Lambda无法与FTP交互吗?
我正在使用jsftp btw.
这是我的设置:
我使用Serverless来创建项目
对于我的lambda,我使用了nodejs,我使用JSFTP来处理ftp的东西.
我的代码:
// 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); }); };
我的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); }) }); };
我在整个地方添加了一些console.log(),一旦尝试ftp.auth,它似乎就会被阻塞.
我在云观察中看到的输出:
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
所以看起来它只是在某处窒息......