To automatically load environment variables from .env
files (with the help of the dotenv package), set useDotenv: true
in serverless.yml
:
useDotenv: true
With that option enabled, .env
files will also be excluded from the package in order to avoid uploading sensitive data as a part of a package by mistake.
The framework looks for .env
and .env.{stage}
files in service directory and then tries to load them using dotenv
. If .env.{stage}
is found, .env
will not be loaded. If stage is not explicitly defined, it defaults to dev
.
It is possible to define environment variables as a combination of existing ones:
BASE_URL=my.api.com
PROTOCOL=https
URL=$PROTOCOL/$BASE_URL
This is supported through dotenv-expand
There are a few differences between above functionality and serverless-dotenv-plugin:
- The framework only loads environments variables locally and does not pass them to your function's environment
- The framework loads variables from only one
.env
file (if stage-specific.env
is found, default.env
is not loaded) - The framework does not support
.env.local
,.env.{stage}.local
, and.env.development
files in a similar way to the plugin - The framework does not use
NODE_ENV
variable and--env
flag when determining stage