Uploading the .zip file seems very counter productive. What are the alternatives?
Yes, uploading a .zip manually is a bad idea.
But it's easy to automate. I've got a build script that zips up the final JavaScript and uploads to Lambda via the aws-sdk. It runs on Circle CI. So all I have to do is commit code and it magically appears on Lambda in about 2 minutes.
Circle CI provides options to treat branches differently. So I've got master branch commits going to production and develop branch commits going to a staging environment.
Take a look at the Serverless Framework. It's the best way I've found so far and will give you some extra benefits, like testing locally and being cross-provider. Serverless plays really well with any CI tool (we use Buddy and sls deploy to automate our workflow).
If you are just getting started and haven't setup much, take a look at Postlight’s serverless starter kit. It's a template packed with a reasonable setup that will get you started with ES6, linting, live reloading, Jest for testing and Prettier to make sure your code always is standardized before it gets to your repo.
Perfect combo to get your CI/CD flowing.
Marko Anastasov
Rendered Text, SemaphoreCI.com cofounder
I can recommend Claudia.js which raises the level of abstraction for you so you just do
npm run deployfrom command line.As Philip Davis mentioned automating it completely via CI/CD, so you just do
git push, would be a possible next step. Semaphore for example provides special support for setting up deployment to Lambda (docs).