使用AWS lambda从EC2运行.bat文件

时间:2016-08-29 09:31:26

标签: python amazon-web-services amazon-s3 amazon-ec2 aws-lambda

我目前正在开发项目,因为我在EC2中有一个bat文件,我想通过AWS-lambda运行该文件,以便该文件可以传输S3数据文件。 请帮帮我。
我使用的是python语言。

2 个答案:

答案 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绑定的安全组中的相关端口。

希望能回答你的问题。