Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/bbc/aws-lambda-runner


https://github.com/bbc/aws-lambda-runner

gem media-services modav

Last synced: 15 days ago
JSON representation

Awesome Lists containing this project

README

        

## AWS Lambda Runner

Runs Lambda deployables locally, usually to test them off-line.

## License

This is licensed under the Apache 2.0 License

## Example usage

```ruby
undertest = LambdaRunner::Runner.new(File.expand_path('../path/to/handler.js', __FILE__), 'handler')

undertest.start

undertest.process_event LambdaRunner::Events.s3_event('some-bucket', 'some-key', 'file-path-to-actual-content')
undertest.process_event LambdaRunner::Events.sns_event('arn:::topic_name', 'message_uuid', '2015-04-02T07:36:57.451Z', 'message body')

undertest.stop
```

This will start a running the lambda deployable, then send two notifications to it, firstly a s3 trigger and secondly a sns trigger, In each case, it will block until either the function completes, times out or fails in an other way.

## Caveats & Known Issues

For a node.js deployment, you have to have done a `npm install` in your handler's directory if you are using any external libraries.

To run tests you will need a version of node supporting async/await (node > 7.10.1)