- node.js library and cli command for execute SSM RunCommand.
- Run command and wait and get result easily than using aws-sdk directly.
- Support run on AWS Lambda.
$ npm install --save easy-ssm
var EasySSM = require('easy-ssm');
var easySsm = new EasySSM();
easySsm.run(instanceid, command, function(err, output) {
console.log(output.stdout);
console.log(output.stderr);
});
// Also support promise.
easySsm.runPromise(instanceId, command).then(...);
You can specify some params.
var AWS = require('aws-sdk');
var EasySSM = require('easy-ssm');
var params = {
// S3 Bucket Name
// Required to get not summarized output longer than 2500.
OutputS3BucketName: 'my-s3-bucket',
// default: ''
OutputS3KeyPrefix: 'ssm-outputs',
// Command Execution timeout. default: 1000sec
//
// Warning: This parameter is pass to SSM API
// but will not work as you might think.
timeoutSec: 1000,
// aws-sdk objects
ssm: new AWS.SSM(customParams),
s3: new AWS.S3(customParams),
// Allow SSM;ListCommandInvocationError n times. default: 3
maxRetries: 3,
// A logger object to write debug information to.
// Set to process.stdout to get logging information about service requests.
// Object should implement function write(string) or log(string);
// default null
logger: process.stdout,
};
var easySsm = new EasySSM(params);
easySsm.run(instanceid, command, function(err, output) {
console.log(output.stdout);
console.log(output.stderr);
console.log(output.exitStatus);
console.log(output.ssmRunShellScriptStatus);
});
$ npm install -g easy-ssm
$ easyssm
Usage: easyssm [options] <instance id> <command...>
Options:
-h, --help output usage information
-V, --version output the version number
-r, --ssm-region <ssmRegion> SSM endpoint region
-e, --bucket-region <bucketRegion> S3 bucket region
-b, --bucket <bucket> S3 bucket name
-k, --key-prefix <keyPrefix> S3 key prefix
-o, --output <format> specify output format (pretty|raw|json) [pretty]
--debug show debug info
$ easyssm i-xxxxxx echo output\; '>&2' echo error
SSM RunShellScript status: Success
Exit status: 0
------- stdout -------
output
------- stderr -------
error
- Using multi instances is currently not supported. You can call EasySSM.run() multiply for each instance.
- Currently only Support command 'AWS-RunShellScript'.
- PR welcome!