0.0.15 • Published 8 years ago

aws-helpers v0.0.15

Weekly downloads
7
License
MIT
Repository
github
Last release
8 years ago

Build Status Code Climate Test Coverage Issue Count

#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 } ] }
0.0.15

8 years ago

0.0.14

8 years ago

0.0.13

8 years ago

0.0.12

8 years ago

0.0.11

8 years ago

0.0.9

8 years ago

0.0.8

8 years ago

0.0.6

8 years ago

0.0.5

8 years ago

0.0.4

8 years ago

0.0.4444

8 years ago

0.0.3

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago