Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/chilts/awssum

(deprecated: use aws-sdk) Node.js modules for talking to lots of Web Service APIs.
https://github.com/chilts/awssum

Last synced: 15 days ago
JSON representation

(deprecated: use aws-sdk) Node.js modules for talking to lots of Web Service APIs.

Awesome Lists containing this project

README

        

NOTE: AwsSum is now deprecated. Please use [aws-sdk](https://www.npmjs.org/package/aws-sdk) instead.

```
_______ _______ _______ _______
( ___ )|\ /|( ____ \( ____ \|\ /|( )
| ( ) || ) ( || ( \/| ( \/| ) ( || () () |
| (___) || | _ | || (_____ | (_____ | | | || || || |
| ___ || |( )| |(_____ )(_____ )| | | || |(_)| |
| ( ) || || || | ) | ) || | | || | | |
| ) ( || () () |/\____) |/\____) || (___) || ) ( |
|/ \|(_______)\_______)\_______)(_______)|/ \|

```

NodeJS module to aid talking to Web Service APIs.

IRC : Come and say hello in #awssum on Freenode. :)

## Usage ##

To use an AwsSum plugin, you need to install the plugin you need for the relevant service. Please follow the
documentation for that plugin.

# Getting Started #

Here's an example program to list all your buckets in S3:

Example: ```s3-list-buckets.js```:

```
var amazonS3 = require('awssum-amazon-s3');

var s3 = new amazonS3.S3({
'accessKeyId' : process.env.AWS_ACCESS_KEY_ID,
'secretAccessKey' : process.env.AWS_SECRET_ACCESS_KEY,
'region' : amazonS3.US_EAST_1,
});

s3.ListBuckets(function(err, data) {
if (err) throw new Error(err);

var buckets = data.Body.ListAllMyBucketsResult.Buckets.Bucket;
buckets.forEach(function(bucket) {
console.log('%s : %s', bucket.CreationDate, bucket.Name);
});
});
```

To run this program:

```
$ npm install awssum-amazon-s3
$ export AWS_ACCESS_KEY_ID=...
$ export AWS_SECRET_ACCESS_KEY=...
$ node s3-list-buckets.js
2008-01-06T10:04:16.000Z : my-bucket-1
2008-03-09T08:27:30.000Z : another-bucket
2008-03-09T09:02:53.000Z : photos
2008-06-14T23:43:10.000Z : storage-area
```

There are intro programs, examples and full docs in each plugin's repository, so please read them for specific
instructions for each plugin.

## Plugins ##

Please see each plugin for more instructions.


Provider
Service
Plugin



Amazon
Identity and Access Management
awssum-amazon-iam


Amazon
AutoScaling
awssum-amazon-autoscaling


Amazon
Instance MetaData
awssum-amazon-imd


Amazon
CloudFormation
awssum-amazon-cloudformation


Amazon
Import Export
awssum-amazon-importexport


Amazon
CloudFront
awssum-amazon-cloudfront


Amazon
Relational Database Service
awssum-amazon-rds


Amazon
CloudSearch
awssum-amazon-cloudsearch


Amazon
CloudWatch
awssum-amazon-cloudwatch


Amazon
Route53
awssum-amazon-route53


Amazon
DynamoDB
awssum-amazon-dynamodb


Amazon
Simple Storage Service
awssum-amazon-s3


Amazon
Elastic Compute Cloud
awssum-amazon-ec2


Amazon
Simple Email Service
awssum-amazon-ses


Amazon
ElastiCache
awssum-amazon-elasticache


Amazon
SimpleDB
awssum-amazon-simpledb


Amazon
ElasticBeanstalk
awssum-amazon-elasticbeanstalk


Amazon
Simple Notification Service
awssum-amazon-sns


Amazon
Elastic LoadBalancer
awssum-amazon-elb


Amazon
Simple Queue Service
awssum-amazon-sqs


Amazon
Elastic MapReduce
awssum-amazon-emr


Amazon
StorageGateway
awssum-amazon-storagegateway


Amazon
Flexible Payments Service
awssum-amazon-fps


Amazon
Security Token Service
awssum-amazon-sts


Amazon
Glacier
awssum-amazon-glacier


Amazon
Simple WorkFlow
awssum-amazon-swf

Coming soon:

* [Amazon](https://github.com/awssum/awssum-amazon)
* [RedShift](https://github.com/awssum/awssum-amazon-redshift/)

## package.json ##

Since each plugin ```peerDepends``` on the service plugin and ultimately ```awssum``` itself, you don't need to specify
these in your ```package.json```.

Dont do this:

```
"dependencies" : {
"awssum" : "1.0.x",
"awssum-amazon" : "1.0.x",
"awssum-amazon-s3" : "1.0.x"
},
```

You should do this instead (it will pull both ```awssum-amazon``` and ```awssum``` in too):

```
"dependencies" : {
"awssum-amazon-s3" : "1.0.x"
},
```

## Writing a Plugin ##

The first thing to realise when writing a plugin is that each service is provided by a provider. In the case of Amazon
S3, Amazon is the provider and S3 is the service. For Twitter, since they only provide one service, then the provider
would be named 'twitter' and you'd probably use the same name for the service.

In general then, you'd write two plugins with the following names:

* awssum-<provider> - e.g. awssum-amazon, awssum-twitter
* awssum-<provider>-<service> - e.g. awssum-amazon-s3, awssum-twitter-twitter

For other examples, you might write ```awssum-openstack```, ```awssum-openstack-nova``` and ```awssum-openstack-keystone```.

Once the provider plugin exists, new services for that provider just need the ```awssum--``` to be
written. e.g. ```awssum-openstack-swift```.

### peerDependencies ###

Please also note to use ```peerDependencies``` in your ```package.json``` and depend on the correct version of
AwsSum. Your ```awssum-``` package should peer depend on AwsSum and your ```awssum--```
package should peer depend on your ```awssum-``` package. I hope this makes sense. :)

# Author #

Written by [Andrew Chilton](http://chilts.org/) - [Blog](http://chilts.org/blog/) -
[Twitter](https://twitter.com/andychilton).

# License #

* [Copyright 2011-2013 Apps Attic Ltd. All rights reserved.](http://appsattic.mit-license.org/2011/)
* [Copyright 2013 Andrew Chilton. All rights reserved.](http://chilts.mit-license.org/2013/)

(Ends)