conan-aws-lambda
Version:
AWS Lambda plugin for Conan: The Deployer.
102 lines (68 loc) • 4.79 kB
Markdown

# conan-aws-lambda [](https://www.npmjs.com/package/conan-aws-lambda) [](https://github.com/FreeAllMedia/conan-aws-lambda.git/blob/master/LICENSE) [](https://www.bithound.io/github/FreeAllMedia/conan-aws-lambda) [](https://coveralls.io/r/FreeAllMedia/conan-aws-lambda) [](https://www.npmjs.com/package/conan-aws-lambda)  [](https://travis-ci.org/FreeAllMedia/conan-aws-lambda) [](https://david-dm.org/FreeAllMedia/conan-aws-lambda?theme=shields.io) [](https://david-dm.org/FreeAllMedia/conan-aws-lambda?theme=shields.io#info=devDependencies)
`conan-aws-lambda` is a barbarically simple deployment system for [`AWS Lambda`](https://aws.amazon.com/lambda/).
**Unobtrusive and Unopinionated**
Code lambda functions any way you want, with any directory structure, any filenames... then just tell `conan-aws-lambda` how you want it deployed:
``` javascript
// conan.config.js
import Conan from "conan";
import ConanAwsLambda from "conan-aws-lambda";
conan = new Conan({
region: "us-east-1"
});
conan.use(ConanAwsLambda);
```
``` javascript
// deploy.js
import "./conan.config.js";
conan
.lambda("HelloWorld")
.description("A simple 'Hello, World!' example!")
.filePath(`helloWorld.js`)
.role("MyIamRoleName");
console.log("Deploy beginning...");
conan.deploy(error => {
if (error) { throw error; }
console.log("Deploy complete!");
});
```
Featuring seamless integration with [`conan-aws-api-gateway`](https://github.com/FreeAllMedia/conan-aws-api-gateway) and [`akiro.js`]().
Additionally, `conan-aws-lambda` comes with key integrations and advanced features such as remote package building (for architectural compatibility with compilers) and dependency management.
[Getting Started Guide](./documentation/gettingStarted.md)
1. Installation
2. Quality and Compatibility
3. Features
* AWS API Gateway Integration
* Akiro.js Integration
* Name-Based IamARN Referencing
* Deploy Other Runtimes
# Installation
Conan can be installed as an npm development dependency with a single terminal command:
``` shell
$ npm install conan --save-dev
```
[](https://travis-ci.org/FreeAllMedia/conan-aws-lambda) [](https://travis-ci.org/FreeAllMedia/conan-aws-lambda) [](https://travis-ci.org/FreeAllMedia/conan-aws-lambda) [](https://travis-ci.org/FreeAllMedia/conan-aws-lambda) [](https://travis-ci.org/FreeAllMedia/conan-aws-lambda) [](https://travis-ci.org/FreeAllMedia/conan-aws-lambda) [](https://travis-ci.org/FreeAllMedia/conan-aws-lambda) [](https://travis-ci.org/FreeAllMedia/conan-aws-lambda)
*If your platform is not listed above, you can test your local environment for compatibility by copying and pasting the following commands into your terminal:*
```
npm install conan-aws-lambda
cd node_modules/conan-aws-lambda
npm test
```
# Configuration
## AWS IAM Roles & Permissions
**Important:** In order for Conan AWS Lambda to work properly, you must provide an AWS IAM Role with sufficient permissions for:
* Creating more IAM Roles and set their permissions
* Full Access For AWS Lambda
* Full Access For AWS API Gateway
* Full Access For AWS S3
# Changelog
* 0.1.0 - First BETA release for public review.
# How to Contribute
To contribute to the core Conan.js repository, you will need a firm understanding of:
* behavior-driven-development
* linting with `eslint`
* babel & transpiling
In order for a pull request to be accepted:
* All tests must pass.
* All tests must be meaningful.
* There must be 100% coverage for