iCo*_*unk 6 ftp sftp node.js aws-lambda serverless-framework
我写了一些基本的js来列出FTP的文件,但我得到:
"在完成请求之前退出流程"
那是因为Lambda无法与FTP交互吗?
我正在使用jsftp btw.
这是我的设置:
我的代码:
// 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);
});
};
Run Code Online (Sandbox Code Playgroud)
我的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);
})
});
};
Run Code Online (Sandbox Code Playgroud)
我在整个地方添加了一些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
Run Code Online (Sandbox Code Playgroud)
所以看起来它只是在某处窒息......
简而言之,ftp 不能与 lambda 一起使用,因为它们使用临时端口。
sftp 可以很好地与 lambda 配合使用。我通过 jsch 使用 java 代码进行了测试,没有任何问题;我看不出它是如何与任何 js sftp 库一起使用的。
| 归档时间: |
|
| 查看次数: |
8702 次 |
| 最近记录: |