【发布时间】:2020-01-14 11:54:54
【问题描述】:
我目前正在处理一个在 AWS 环境中进行的项目。我已经配置了一个 S3 存储桶来接收邮件(邮件来自 SES,但这不相关)。
我想做的是创建一个能够访问 EC2 实例并启动 python 脚本的 Lambda 函数。到目前为止,我有下面的代码。问题是当我创建我的 ec2 实例时,我没有创建任何用户名或密码来通过 SSH 连接。我只有一个 .pem 文件(证书文件)来对实例进行身份验证。
我做了一些研究,但找不到任何有用的东西。
var SSH = require('simple-ssh');
var ssh = new SSH({
host: 'localhost',
user: 'username',
pass: 'password'
});
ssh.exec('python3.6 path/to/my/python/script.py', {
out: function(stdout) {
console.log(stdout);
}
}).start();
我一直在考虑多种解决方案,但我完全不确定:
- 在 Javascript 中查找处理 .pem 文件的 SSH 库
- 将 .pem 转换为字符串(我认为根本不安全)。
- 也许在 EC2 中创建一个新的 ssh 用户?
感谢您的宝贵时间。
【问题讨论】:
-
这似乎有点奇怪 - 它是否必须通过 SSH?你可以使用例如http请求吗?
-
您是否考虑过让实例轮询 Amazon SQS 队列以获取工作,而不是触发 EC2 实例中的某些内容?这是一种更简单可靠的方法。
-
@danimal 我不确定哪个协议可以在 SSH 旁边远程运行命令。
-
要触发脚本通过对 EC2 实例的 HTTP 请求运行,您需要在 EC2 实例上运行 24x7 的 Web 应用程序,监听请求。你当然可以这样做,但它需要一些应用程序开发人员。
-
@jarmod 既然有人说,这听起来很明显,感谢您的建议
标签: javascript amazon-web-services aws-lambda pem