У меня есть лямбда-функция, которая генерирует текстовый файл в корзине S3.Это может сделать это.Теперь проблема, с которой я сталкиваюсь, связана с тем, что этот же файл отправляется на FTP-сервер.FTP-сервер находится на том же VPC, и я использую модуль «обещание-ftp» для отправки файла на FTP.Когда это приложение работает само по себе (без лямбда-функции), оно отправляет файл, но как только я использую код в качестве лямбда-функции, загрузка по 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 для доступа к FTP-серверу и т. Д.), Чтобы выполнить задачу?Более того, возможно ли это (загрузка по FTP) из лямбда-функции?Вот журнал облачных часов:
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)