У меня есть сценарий оболочки на моем сервере EC2, и я хочу активировать его с помощью функции лямбда AWS. Может ли кто-нибудь предложить, как я могу получить доступ к файлу в своей лямбда-функции. Нет проблем с подключением между лямбдой и EC2.Подключиться к серверу EC2 через AWS lambda
Я сгенерировал закрытый ключ с геном Putty и сохранил его в ведро s3 и использовал тот же ключ для подключения (с помощью этого закрытого ключа, способного подключаться через шпатлевку). У меня есть такой код.
var driver, ssh;
driver = require('node-ssh');
ssh = new driver();
exports.handle = function(error, ctx, cb) {
ssh = new driver({
host: 'EC2 public ip',
username: 'uname',
privateKey : 'url of s3/privatekey.ppk'
});
ssh.connect().then(function() {
console.log('connected')
},function(error) {
console.log(error);
});
}
Сначала я пытаюсь увидеть, если я могу подключиться к EC2 серверу, а затем я могу запустить скрипт через SSH клиента. Но соединение не происходит. Получение ниже ошибки.
{
"errorMessage": "config.host must be a valid string",
"errorType": "Error",
"stackTrace": [
"Object.<anonymous> (/var/task/node_modules/node-ssh/lib/helpers.js:15:13)",
"next (native)",
"step (/var/task/node_modules/node-ssh/lib/helpers.js:69:191)",
"/var/task/node_modules/node-ssh/lib/helpers.js:69:437",
"Object.<anonymous> (/var/task/node_modules/node-ssh/lib/helpers.js:69:99)",
"Object.normalizeConfig (/var/task/node_modules/node- ssh/lib/helpers.js:42:17)",
"/var/task/node_modules/node-ssh/lib/index.js:53:25",
"SSH.connect (/var/task/node_modules/node-ssh/lib/index.js:52:14)",
"exports.handle (/var/task/index.js:13:7)"
]
}
Не было бы проще, если у вас файл в S3 и получить доступ к нему есть с EC2 и лямбда? –
Спасибо за ответ Том. Но у меня есть ситуация. У меня есть файл jar на моем EC2, и этот скрипт оболочки выполняет эту банку. Теперь я хочу запустить этот скрипт с помощью моей лямбда-функции. Это часть моего приложения, которое полностью основано на шаговой функции AWS. Поэтому я не вижу возможности сохранить сценарий оболочки в s3, поскольку он должен запускать файл jar на EC2. – user3541321
Почему вы не можете запустить все это в Лямбде? Вы можете включить jar-файлы с вашим кодом Lambda. –