Awesome
AWS Lambda Example Project
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.