aws-helpers v0.0.15
#AWS Helpers for NodeJS
AWS Helpers is a node.js helper library, which eliminates lot of boilerplate around aws-sdk for NodeJS
PreReq
Note that AWS helpers won't manage AWS credentials for you, it is rely on either ~/.aws/credentials
or environment
variables. Therefore it is expected that you have defined them using following methods,
- via credentials file
[default]
aws_access_key_id = <YOUR_ACCESS_KEY_ID>
aws_secret_access_key = <YOUR_SECRET_ACCESS_KEY>
- via environment varaibles
export AWS_ACCESS_KEY_ID=<YOUR_ACCESS_KEY_ID>
export AWS_SECRET_ACCESS_KEY=<YOUR_SECRET_ACCESS_KEY>
You may defined AWS region as below,
export AWS_REGION=<YOUR_REGION>
Installation
$ npm install aws-helpers
Quick start & usage
cloudformation method describe-stacks
'use strict';
var awsHelpers = require('aws-helpers');
awsHelpers.cloudformation.describeStacks({
StackName: 'STACK-NAME'
}).then(function (item) {
console.log(item);
}).catch(function (reason) {
console.log(reason);
});
output :
{ ResponseMetadata: { RequestId: 'xxxxxxxxxxxxxxxxxx },
Stacks:
[ { StackId: 'arn:aws:cloudformation:xxxxxxxx:stack/STACK-NAME/xxxxxxxx',
StackName: 'STACK-NAME',
Description: 'Description',
Parameters: [Object],
CreationTime: Fri Nov 21 2014 14:34:38 GMT+1100 (AEDT),
LastUpdatedTime: Wed Feb 24 2016 15:19:09 GMT+1100 (AEDT),
StackStatus: 'UPDATE_COMPLETE',
DisableRollback: false,
NotificationARNs: [],
Capabilities: [Object],
Outputs: [Object],
Tags: [] } ] }
ec2 method findByTag
'use strict';
var awsHelpers = require('aws-helpers');
awsHelpers.ec2.findByTag([
{
Name: 'name',
Values: [
'NAME'
]
}
]).then(function (item) {
console.log(item);
}).catch(function (reason) {
console.log(reason);
});
output :
{ Images:
[ { ImageId: 'ami-xxxxx',
ImageLocation: 'xxxxxx/NAME',
State: 'available',
OwnerId: 'xxxxxx',
CreationDate: '2016-02-24T05:40:03.000Z',
Public: false,
ProductCodes: [],
Architecture: 'x86_64',
ImageType: 'machine',
SriovNetSupport: 'simple',
Name: 'NAME',
RootDeviceType: 'ebs',
RootDeviceName: '/dev/sda1',
BlockDeviceMappings: [Object],
VirtualizationType: 'hvm',
Tags: [Object],
Hypervisor: 'xen' } ] }
cloudformation method createWait
'use strict';
var awsHelpers = require('aws-helpers');
var params = {
StackName: 'STACK-NAME',
// Sample stack parameters - Example only
Parameters: [
{
ParameterKey: 'DeadLetterMaxReceiveCount',
ParameterValue: '1',
UsePreviousValue: false
}
],
TemplateURL: 'https://xxxx/xxxx.json',
UsePreviousTemplate: true
};
awsHelpers.cloudformation.createWait(params)
.then(function (result) {
console.log(result);
}).catch(function (reason) {
console.log(reason.message);
});
output:
STACK-NAME : is in non transitioning state
cloudformation method updateWait
'use strict';
var awsHelpers = require('aws-helpers');
var params = {
StackName: 'STACK-NAME',
// Sample stack parameters - Example only
Parameters: [
{
ParameterKey: 'DeadLetterMaxReceiveCount',
ParameterValue: '1',
UsePreviousValue: false
}
],
UsePreviousTemplate: true
};
awsHelpers.cloudformation.updateWait(params)
.then(function (result) {
console.log(result);
}).catch(function (reason) {
console.log(reason.message);
});
output:
STACK-NAME : is in non transitioning state
cloudformation method pollStackStatus
var awsHelpers = require('aws-helpers');
function stackReady(params) { console.log('Executing stackReady')
return awsHelpers.cloudformation.pollStackStatus(params)
.then(function (result) {
console.log(result);
})
.catch(function (reason) {
console.log(reason);
});
}
stackReady({ StackName: 'STACK-NAME' });
output:
Executing stackReady STACK-NAME : is in non transitioning state
autoscaling method resumeAutoscaling
'use strict';
var awsHelpers = require('aws-helpers');
var params = {
AutoScalingGroupName: 'STRING_VALUE',
ScalingProcesses: [
'STRING_VALUE'
]
};
awsHelpers.autoscaling.resumeAutoscaling(params)
.then(function (result) {
console.log(result);
}).catch(function (reason) {
console.log(reason.message);
});
output:
Executing resumeAutoscaling
autoscaling method suspendAutoscaling
'use strict';
var awsHelpers = require('aws-helpers');
var params = {
AutoScalingGroupName: 'STRING_VALUE',
ScalingProcesses: [
'STRING_VALUE'
]
};
awsHelpers.autoscaling.suspendAutoscaling(params)
.then(function (result) {
console.log(result);
}).catch(function (reason) {
console.log(reason.message);
});
output:
Executing suspendAutoscaling
autoscaling method describeAutoScaling
'use strict';
var awsHelpers = require('aws-helpers');
var params = {
AutoScalingGroupNames: [
'AUTO-SCALING-GROUP-NAME'
],
};
awsHelpers.autoscaling.describeAutoScaling(params)
.then(function (result) {
console.log(result);
}).catch(function (reason) {
console.log(reason.message);
});
output:
Executing describeAutoScaling
{ ResponseMetadata: { RequestId: 'xxxxxxxxxxx' },
AutoScalingGroups:
[ { AutoScalingGroupName: 'AUTO-SCALING-GROUP-NAME',
AutoScalingGroupARN: 'xxxxxxxxxx',
LaunchConfigurationName: 'AUTO-SCALING-GROUP-NAME-LC',
MinSize: 1,
MaxSize: 1,
DesiredCapacity: 1,
DefaultCooldown: 300,
AvailabilityZones: [Object],
LoadBalancerNames: [Object],
HealthCheckType: 'ELB',
HealthCheckGracePeriod: 300,
Instances: [Object],
CreatedTime: Thu Oct 29 2015 05:39:51 GMT+1100 (AEDT),
SuspendedProcesses: [],
VPCZoneIdentifier: 'xxxxxxxx',
EnabledMetrics: [],
Tags: [Object],
TerminationPolicies: [Object],
NewInstancesProtectedFromScaleIn: false } ] }