我有一个lambda函数,可在S3存储桶上生成一个文本文件。它能够做到。现在,我面临的问题是将同一文件发送到FTP服务器的部分。 FTP服务器位于同一VPC上,我正在使用“ promise-ftp”模块将文件发送到FTP。当此应用程序自行运行时(没有lambda函数),它会发送文件,但是当我将代码用作lambda函数时,FTP上传失败。这是在FTP服务器上上传文件的代码:
function CreatefileOnFTP(fileData, fileName, event, context, callback) {
console.log('Sending file to FTP...');
var buf = Buffer.from(fileData, 'utf-8');
var ftp = new PromiseFtp();
ftp.connect(config.ftpDetails)
.then(function (serverMessage) {
ftp.put(buf, fileName);
console.log('File sent successfully to FTP...');
}).then(function () {
ftp.end();
callback(null, 'File sent successfully to FTP...');
});
}
由于这是正常工作的代码,我相信AWS控制台中的配置必须有所帮助。是否有人知道完成任务的设置(为VPC创建Endpooint以访问FTP服务器等)?而且,这个(FTP上传)甚至可以通过lambda函数实现吗?这是cloudwatch日志:
2019-04-23T07:05:53.984Z 03211d8d-e3f0-4c75-a938-386924601388 Unhandled rejection Error: Timeout while connecting to server at Timeout._onTimeout (/var/task/node_modules/@icetee/ftp/lib/connection.js:329:24) at ontimeout (timers.js:482:11) at tryOnTimeout (timers.js:317:5) at Timer.listOnTimeout (timers.js:277:5)