Home

Awesome

AWS Lambda Example Project

Build Status Test Coverage Dependabot Status Dependencies NPM Downloads Semantic-Release Gardener

Pure Lambda: Lambda + Tests + Serverless

This is an example for AWS Lambda Development showcasing how to use:

A list of all the example handlers with description can be found here. Each handler has tests files associated.

Note: Independent of the Lambda trigger type.

HTTPS Endpoint: Lambda + Tests + Serverless + Api Gateway

This is an example for AWS Lambda Development showcasing how to use:

A list of all the example handlers with description can be found here. Each handler has tests files associated.

Note: Lambda functions defined this way are expected to be used with API Gateway.

Getting Started

Install serverless with

$ npm install -g serverless

Then verify tests with

$ npm test

Deploy Project to AWS

To deploy run

$ sls deploy

Things to try after deploy

Simple Functions

Test a geoip function

$ sls invoke -f geoip

Test div function

$ sls invoke -f div -d '{ "a": 32, "b": 5 }'

Mode detail on the invoke option can be found here.

You can also log into AWS and trigger the function with an event that you manually create.

Https Endpoint

The deploy message will give you a public url to use of the form https://##########.execute-api.us-east-1.amazonaws.com/example/sum. Experiment with different input, e.g.

$ URL
$ URL?input=[1,4,2,45,6]
$ URL?input=[1,4,2,45,]

Swagger Documentation

Swagger documentation is automatically synchronized using the API definition, but also manually enriched. For an example on how this is accomplished see test_https.js. The generated swagger file can be found here.

The file also contains a test example that ensures that the swagger documentation is synchronized with the serverless.yml file.

Rate Limit

If you hit the endpoint many times quickly you will trigger the rate limit.

Rollbar Monitoring

Set up your rollbar account and fill the details into the example.yml. Then deploy again and check that information is logged to rollbar as you hit warning / error conditions!

Remove Project from AWS

Run

$ sls remove

Other Considerations

Monitoring

Consider using lambda-monitor for monitoring your lambda function.