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

如何在Serverless Framework中按阶段配置Lambda环境变量

按部署阶段动态设置Lambda环境变量的方法

有两种简单实用的方式可以实现需求,下面分别说明:

方法一:直接使用条件表达式

利用Serverless Framework内置的变量语法,直接在environment字段中通过条件判断赋值:

修改后的完整serverless.yml代码:

service: serverless-test2

provider:
  name: aws
  runtime: nodejs14.x
  stage: dev
  region: us-east-1

layers:
  commonLibs:
    path: layer
   
functions:
  new:
    handler: handler
    environment:
      password: ${self:provider.stage == 'dev' ? 'this is dev value' : 'this is prod value'}
    layers:
      - { Ref: CommonLibsLambdaLayer }

部署时指定阶段即可:

  • 部署dev环境:执行sls deploy(默认使用配置里的dev阶段)
  • 部署prod环境:执行sls deploy --stage prod

方法二:自定义阶段变量映射(更易扩展)

如果后续要新增更多阶段或环境变量,这种集中管理的方式更清晰。先在custom字段定义各阶段的变量映射,再在函数中引用:

修改后的完整serverless.yml代码:

service: serverless-test2

custom:
  stageEnv:
    dev:
      password: 'this is dev value'
    prod:
      password: 'this is prod value'

provider:
  name: aws
  runtime: nodejs14.x
  stage: dev
  region: us-east-1

layers:
  commonLibs:
    path: layer
   
functions:
  new:
    handler: handler
    environment:
      password: ${self:custom.stageEnv.${self:provider.stage}.password}
    layers:
      - { Ref: CommonLibsLambdaLayer }

后续新增阶段(如test)或其他环境变量时,直接在stageEnv节点下添加对应配置即可,维护起来更方便。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 06:30:57