Serverless Develop Plugin
Deploy your functions to AWS Lambda as you code and get realtime feedback.
What is this?
Right now, unpolished PoC.
What problem does it solve?
Iterating with Serverless Framework is slow.
Plugins like serverless-offline or emulator try to solve that problem by Emulating AWS Lambda environment locally. That solution is far from perfect because of different container, different environment, different IAM roles etc. etc. - Inconsistency.
This plugin, instead of running Lambdas offline, deploys your code to AWS Lambda as you type, in realtime. Welcome back to 2000's, where PHP FTP deployments were made every time CMD+S
was hit.
Installation
- Run
npm install serverless-develop --save
- Add
serverless-develop
to yourserverless.yml
plugins
section:
plugins: - serverless-develop
- Run
serverless develop
Configuration
serverless-develop
can be configured by changing following variables in serverless.yml
file.
custom: develop: middleware: - npm run build # Runs `npm run build` before packaging buildPath: build # Packages files from `build` directory sourcePath: src # Points to source files directory changeInterval: 0.2 # Specifies max amount of seconds between deployments verbose: true # Adds much more information what happens under the hood
How does it work?
First, plugin builds individual artifacts, one for each function. Then, once a change is applied, plugin checks which functions are affected. Then it patches archives located in .serverless
directory and re-deploys them to AWS Lambda without updating CloudFormation or performing checks.
Examples:
Credits and inspiration
Heavily inspired by @keithwhor's article and @mthenw thoughts.