2016-08-29 68 views
-1

現在、私はEC2でbatファイルを持っており、そのファイルをAWS-lambda経由で実行して、S3ファイルを転送できるようにしています。 私に助けてください。
私はPython言語を使用しています。AWSラムダを使用してEC2から.batファイルを実行

+0

「バットファイル」とはあなたはWindowsの '.bat'(バッチ)ファイルについて話していますか? –

+0

はい私はそれについて話しています。 不完全な質問のため申し訳ありませんが、私はこれに新しいです –

+0

さて、 '.bat'ファイルはWindowsで動作しますが、LambdaはWindowsでは動作しませんので、スクリプトを書く必要があります。 .batファイルではなく、あなたが言及した[Python](http://docs.aws.amazon.com/lambda/latest/dg/python-programming-model.html)のようなLambdaでサポートされている言語で書かれています。うまくいけば、あなたはその点を超えていますが、あなたが何を求めているのかははっきりしていません。私がここで答えることができる十分な具体的な質問ではありません。発生している特定のプログラミング関連の問題について質問を編集することを検討してください。 –

答えて

1

AWS SSM serviceでこれを実行できます。これにより、EC2インスタンスでリモートでコマンドを実行できます。

1

たとえば、httpコールをリッスンし、要求ごとに.batファイルを実行するサーバーをEC2で実行する必要があります。 nodejsで次のようになりますことを行うための

最も簡単なスクリプト:あなたはpython男なら

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}`); 
}); 

、私はあなたがこのコードを変換する方法を知っていると確信しています。

あなたのlambdaは、唯一の追加は、ec2-ip:3000/exechttp GETリクエストを送信することです。

EC2がバインドされているセキュリティグループ内の関連ポートを開くことを忘れないでください。

あなたの質問にはうまくいきます。

+0

返信ありがとう それに行こう... –

+0

問題を解決した場合は、この回答を受け入れることを忘れないでください。 – johni

関連する問題