You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Serverless框架下按stage和region使用对应env配置文件

实现按stage+region区分env配置的两种方案

方案1:通过serverless-dotenv-plugin配置

该插件支持自定义env文件加载路径和优先级,配置方式如下:

  1. 先安装插件:
    npm install serverless-dotenv-plugin --save-dev
  2. 在serverless.yml中添加配置:
plugins:
  - serverless-dotenv-plugin

custom:
  dotenv:
    # 加载优先级从低到高,后加载的文件会覆盖前序文件的同名字段
    path:
      - .env # 公共配置
      - .env.${opt:stage, 'dev'} # 按环境区分的配置
      - .env.${opt:stage, 'dev'}.${opt:region, 'us-east-1'} # 按环境+区域区分的配置

部署时指定对应参数即可自动加载对应文件,示例命令:
sls deploy --stage prod --region cn-northwest-1
未显式指定参数时会使用默认值,例如未传region时默认加载后缀为us-east-1的配置文件。

方案2:使用Serverless Framework原生能力(无需额外插件)

Serverless Framework 3.x及以上版本原生支持多env文件加载,直接在serverless.yml顶部配置即可:

service: your-service-name

useDotenv:
  path:
    - .env
    - .env.${opt:stage, 'dev'}
    - .env.${opt:stage, 'dev'}.${opt:region, 'us-east-1'}

provider:
  name: aws
  runtime: nodejs18.x
  region: ${opt:region, 'us-east-1'}
  stage: ${opt:stage, 'dev'}

加载逻辑和插件方案完全一致,无需额外安装依赖。

额外注意

建议将env配置文件加入.gitignore,避免敏感信息提交到代码仓库:

# .gitignore 配置
.env
.env.*
!.env.example

内容的提问来源于stack exchange,提问作者user1283776

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 19:24:03