Ich habe ein Shell-Skript auf meinem EC2-Server und ich möchte das gleiche aus AWS Lambda-Funktion auslösen. Kann jemand vorschlagen, wie ich auf die Datei in meiner Lambda-Funktion zugreifen kann. Es besteht kein Verbindungsproblem zwischen Lambda und EC2.Verbinden mit EC2-Server über AWS Lambda
Ich generierte den privaten Schlüssel mit Putty gen und hielt es in s3 Eimer und mit dem gleichen Schlüssel zu verbinden (Mit diesem privaten Schlüssel in der Lage, durch Kitt verbinden) .Ich habe Stück Code wie folgt.
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);
});
}
Zuerst versuche ich zu sehen, ob ich zu meinem EC2-Server verbinden kann und dann kann ich den Shell-Skript durch SSH-Client ausgeführt werden. Aber die Verbindung wird nicht hergestellt. Fehler unten angezeigt.
{
"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)"
]
}
Wäre es nicht einfacher, wenn Sie die Datei in S3 haben und dort Zugang von EC2 und Lambda? –
Danke für die Antwort Tom. Aber ich habe eine Situation. Ich habe eine Jar-Datei auf meinem EC2 und dieses Shell-Skript führt dieses Jar aus. Jetzt möchte ich dieses Shell-Skript mit meiner Lambda-Funktion ausführen. Es ist ein Teil meiner Anwendung, der vollständig auf der AWS-Schrittfunktion basiert. Daher sehe ich keine Option, um das Shell-Skript in S3 zu behalten, da es die JAR-Datei auf EC2 ausführen muss. – user3541321
Warum können Sie nicht alles in Lambda laufen? Sie können JAR-Dateien mit Ihrem Lambda-Code einschließen. –