1 Respuesta
- Más nuevo
- Más votos
- Más comentarios
2
コマンドが作成され Success となっているとのことですので、EC2 インスタンス上で Run Command の実行はされているものと考えております。 そのため、Run Command が実行されているものの、bat ファイルが実行できないため、bat ファイルの実行方法について確認したい、との内容として回答いたします。
AWS-RunPowerShellScript は PowerShell を実行するドキュメントです。 PowerShell にて bat ファイルを実行する場合には、以下のように bat ファイルのフルパスを指定する、あるいは Start-Process を利用する必要があります。
C:\Users\administrator\temp\test_win.bat
Start-Process test_win.bat
また、Lambda のコードでは、workingDirectory のパスに含まれる \ がエスケープされていないように見受けられました。 そのため、Lambda のコードとしてはパスに含まれる \ のエスケープも必要と考えられます。
上記の 2 点の対応を行う場合には、下記の 2 行の修正を行う必要があるものと考えられます。
commands: ['test_win.bat'], // EC2コマンド
workingDirectory:['C:\Users\administrator\temp'], // コマンド実行場所
前述の内容を踏まえて、以下のどちらかにて対応いただけるかと思いますのでお試しください。
commands: ['C:\\Users\\administrator\\temp\\test_win.bat'],
workingDirectory:['C:\\Users\\administrator\\temp'],
commands: ['Start-Process test_win.bat'],
workingDirectory:['C:\\Users\\administrator\\temp'],
なお、補足とはなりますが、上記の内容にて bat ファイルを実行する場合、bat ファイルの exit code は Run Command の exit code にはなりません。 bat ファイルの exit code を Run Command の exit code にしたい場合は、下記のように bat ファイルを実行した際の exit code を利用して明示的に exit を実行する形に修正ください。
C:\Users\administrator\temp\test_win.bat
exit $LastExitCode
$process = Start-Process test_win.bat -PassThru -Wait
exit $process.Exitcode
respondido hace 2 años
Contenido relevante
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace un año
ご回答いただいた修正で、無事batの実行が成功しました。 補足いただいた箇所についても修正したく思うのですが、どちらに記述が必要かお教えいただけませんでしょうか。
ご都合のよいタイミング大丈夫です。 本日は適切なご回答、誠にありがとうございました。