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

Serverless框架.env.{stage}环境变量不生效及显式指定stage方法

如何在Serverless Framework中显式定义stage

有三种可被框架识别的显式定义stage的方式:

  • 部署时通过命令行参数传递
    执行sls deploy时追加--stage <环境标识>参数即可,比如要使用预发环境配置,执行命令:
    sls deploy --stage staging
    此时框架会将传入的staging识别为显式stage,自动加载.env.staging文件,不会读取默认的.env文件。
  • 通过全局系统环境变量指定
    提前设置名为SLS_STAGE的系统环境变量,框架启动时会优先读取该变量的值作为显式stage。
    Linux/macOS 临时配置示例:export SLS_STAGE=prod
    Windows cmd 临时配置示例:set SLS_STAGE=prod
    配置完成后直接执行sls deploy即可加载对应环境的env文件。
  • 在项目级配置文件中固定配置
    在项目根目录新建serverless.com.yml文件(注意和服务配置文件serverless.yml区分),在文件中添加stage: <环境标识>配置项,该配置会被识别为显式stage,优先级高于服务配置中provider下的stage值。

补充说明:你之前在serverless.yml的provider配置项下修改的stage属于服务默认回退配置,不属于框架定义的「显式定义stage」范畴,所以dotenv加载逻辑不会把该值作为判断.env.{stage}的依据,这就是你修改配置后仍然读取默认.env文件的原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:12:02