我目前正在开发项目,因为我在EC2中有一个bat文件,我想通过AWS-lambda运行该文件,以便该文件可以传输S3数据文件。
请帮帮我。
我使用的是python语言。
答案 0 :(得分:1)
您可以通过AWS SSM service完成此操作,它允许您远程在EC2实例上运行命令。
答案 1 :(得分:1)
您必须在EC2
上运行一个服务器,以监听(例如)http
个调用,并为每个请求运行.bat
文件。
在nodejs
中执行此操作的最简单脚本如下所示:
const PORT = process.env.PORT || 3000;
const BAT_PATH = 'c:\\path\\to\\file.bat';
let express = require('express');
let exec = require('child_process').exec;
let app = express();
app.get('/exec', (req, res) => {
exec(BAT_PATH, (err, stdout, stderr) => {
if (err) {
console.error(err);
}
// print stdout of executing process
console.log(stdout);
// print stderr of executing process
console.log(stderr);
});
});
app.listen(PORT, () => {
console.log(`Server listening on *:${PORT}`);
});
如果您是python
家伙,我相信您会知道如何翻译此代码。
对于您的lambda
,唯一的补充是将http GET
请求发送给ec2-ip:3000/exec
。
不要忘记打开您的EC2
绑定的安全组中的相关端口。
希望能回答你的问题。