0.0.15 • Published 10 years ago

aws-helpers v0.0.15

Weekly downloads
7
License
MIT
Repository
github
Last release
10 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

10 years ago

0.0.14

10 years ago

0.0.13

10 years ago

0.0.12

10 years ago

0.0.11

10 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.4444

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago