タグ付けされた質問 AWS Tools for Windows PowerShell
コンテンツの言語: 日本語
並べ替え 最新
以下に記載されている質問と回答を閲覧したり、フィルタリングして並べ替えて結果を絞り込んだりできます。
EC2インスタンス(Windows)にあるbatファイルを、Lambdaから EC2 Run Command で、実行したいです。
下記記事を参考にコードソースを書きました。
【初心者向け】AWS LambdaからEC2 Run Commandを実行する方法
https://zenn.dev/yokota/articles/3875da641b4cc5
Lambdaのコードの下記パラメータを修正することで、Linux環境では、EC2インスタンス環境のbatを実行することが出来ています。
```
DocumentName: 'AWS-RunPowerShellScript',
InstanceIds: ['対象のインスタンスID'],
commands: ['test_win.bat'],
workingDirectory:['C:\Users\administrator\temp']
```
今度はWindows環境のInstanceIdsに変更して、TestしてみるとStatusはSucceedeとなり、エラーも出ませんでしたが、batが実行できていませんでした。
前提として、記事で紹介されているroleの作成と、EC2インスタンスへのロール割当、Lamdaへのロール割当は行っています。
どうコードを修正していけば、状況が改善されますでしょうか。
ご協力をお願いします。
以下コード全文です。
```
'use strict';
const AWS = require('aws-sdk')
const ssm = new (require('aws-sdk/clients/ssm'))();
module.exports.handler = async event => {
try {
let params = {
DocumentName: 'AWS-RunPowerShellScript',
InstanceIds: ['対象のインスタンスID'],//Windowsインスタンス
Parameters: {
commands: ['test_win.bat'], // EC2コマンド
workingDirectory:['C:\Users\administrator\temp'], // コマンド実行場所
},
// SSMの実行結果をCloudWatchにロギング
CloudWatchOutputConfig: {
CloudWatchLogGroupName: 'SSMLogs',
CloudWatchOutputEnabled: true
},
// タイムアウト設定
TimeoutSeconds: 3600 // 1 hour
}
const sendCommandResult = await ssm.sendCommand(params).promise();
} catch(e){
console.log(e);
}
};
```