AWS Lambda:无法将文件发送到FTP

时间:2019-04-23 08:16:55

标签: node.js amazon-web-services ftp aws-lambda

我有一个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) 

0 个答案:

没有答案