Serverless Dotenv Component
Introduction
Inspired by serverless-dotenv-plugin.Preload environment variables into serverless. If you have variables stored in a .env file that you want loaded into your serverless yaml config. This will allow you to reference them as \${Dotenv.env.VARNAME} inside your config(If you ).
Setup
Add@slsplus/dotenv
in your serverless.yml
, as below:Dotenv:
component: '@slsplus/dotenv'
Now create
.env
file in the project root:TENCENT_SECRET_ID=xxx
TENCENT_SECRET_KEY=xxx
ABC=124
Automatic Env file name resolution
By default, the component looks for the file: .env. If you want different env files based on environment. For example:.env.development
.env.production
Then you can exec deploy command like:
$ NODE_ENV=development serverless --debug
Or, like this:
$ serverless --debug --env development
Inject custom arguments to command
You can directly run deploy command with custom arguments:$ serverless --debug --custom abc --custom1 123
Then you can use by
process.env.custom
and process.env.custom1
Options
Complete configuration in serverless.yml
# serverless.yml
Dotenv:
component: '@serverless/dotenv-component'
inputs:
envFile: /path/to/my/.env
envPath: /path/to/my/
exclude:
- SECRET
Configuration description
| Param | Required/Optional | Type | Default | Description | | ------- | ----------------- | ------ | --------------- | ----------------------------------------------- | | envFile | Optional | String | .env | Dotenv file | | envPath | Optional | String |process.cwd()
| Dotenv file path |
| exclude | Optional | string | | Variable in .env file, you don't want to expose |