Программно перемещать файлы из корзины S3 в Windows EC2 и наоборот - PullRequest
1 голос
/ 29 апреля 2020

Я хочу записать sh файлы в Windows EC2, а также получить папки из моего EC2 и сохранить их в S3. Поскольку у меня много EC2, я хотел автоматизировать это - у меня в настоящее время есть сервер Node.js в ECS, который использует библиотеку ssh2-sftp-client . С помощью следующего фрагмента кода я могу вставить туда sh файлы (аналогично, я могу извлечь из него файлы и загрузить его на S3):

            var Client = require('ssh2-sftp-client');          
            var sftp = new Client(newClientID);
            sftp.connect({
                host: host,
                username: 'username',
                password: 'password',
                port: '22',
                tryKeyboard: true
            }).then(async () => {
                try {
                    if (file.filename && file.file) {
                        await sftp.put(file.file, `C:/Users/user/Desktop/${file.filename}`);
                        console.log(`Successfully pushed ${file.filename}`);
                    }

                    sftp.on('error', error => {
                        console.log(error);
                        sftp.end();
                    });

                    resolve();
                } catch (ex) {
                    console.log("SFTP EXCEPTION PUSHING FILES TO INSTANCE", ex);
                } finally {
                    sftp.end();
                }
            }

Но это не так надежное решение - даже когда у меня 5 или 6 пользователей, которые пытаются одновременно выполнить sh, сервер выдает ошибки, потому что у него слишком много активных S SH соединений.

Есть ли лучший способ сделать это? Все, что я хочу сделать, это загрузить / загрузить указанные каталоги c, используя Node.js (для Windows EC2).

1 Ответ

1 голос
/ 03 мая 2020

Хороший способ автоматизировать запуск сценариев в EC2 - это использовать SSM Run Command . Если вы правильно настроите каждый экземпляр EC2, то он станет управляемым экземпляром , и вы сможете запустить выполнение сценариев во множестве экземпляров EC2, выбранных, например, по тегам.

...