Problem: my zipped deployment folder that contains my python code is too big!
I looked inside and there’s stuff in there that should be ignored according to my .gitignore
Here is my .gitignore
Here is the contents of my .gitignore
Here is the contents of the (too-big) zipped folder that is deployed to S3
(I DL it from S3 and unzipped the contents)
I should note that my service project is nested one level below another service project, like so…
This is the command I’m using to deploy
sudo sls deploy -f numpy
Serverless does not pay attention to .gitignore. You have a few options for you to take that I use myself.
You can add options to the serverless.yml to indicate what to exclude and what to include. You can read about that at https://serverless.com/framework/docs/providers/aws/guide/packaging/
What I do most recently is use gulp to build a deployment folder containing all my files/folders. Then within that folder is what I actually deploy. This allows me to have more processes in place for CI/CD.
We a single serverless.yml that contains a bunch of resources and 4 python lambdas. Each lambda needed a different set of python libraries and pre-compiled binaries. I found the best way to hald this was to “package individually” and exclude everything:
Then in each lambda, include only the binaries/libs I needed. e.g.,
What @shentenfruede said above works well putting “exclude” under “package”. On Mac I needed to use: