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

如何向sam local运行的Lambda函数注入环境变量

问题原因

sam local invoke 的 -n 参数指定的环境变量文件不会直接将键值对注入Lambda运行时,需要和SAM模板配置配合使用,这是配置未生效的核心原因。

两种解决方法

方法1:通过模板参数传递(适合需要同步部署到云端的场景)

  • 第一步:修改你的template.yaml文件,先声明参数再关联到Lambda环境变量
# 模板顶层新增Parameters段,定义要传入的参数
Parameters:
  PPPPPPPPPPPPPPPPPPPPP1:
    Type: String
  PPPPPPPPPPPPPPPPPPPPP2:
    Type: String
  PPPPPPPPPPPPPPPPPPPPP3:
    Type: String

Resources:
  # 这里替换为你自己定义的Lambda函数逻辑ID
  YourLambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
      # 原有配置(CodeUri、Handler、Runtime等)保持不变,新增以下环境变量配置
      Environment:
        Variables:
          PPPPPPPPPPPPPPPPPPPPP1: !Ref PPPPPPPPPPPPPPPPPPPPP1
          PPPPPPPPPPPPPPPPPPPPP2: !Ref PPPPPPPPPPPPPPPPPPPPP2
          PPPPPPPPPPPPPPPPPPPPP3: !Ref PPPPPPPPPPPPPPPPPPPPP3
  • 第二步:你当前的test.json格式完全符合该方法要求,无需修改,直接执行原有启动命令即可生效。

方法2:直接注入环境变量(适合本地临时测试,无需修改模板参数)

  • 第一步:修改test.json结构,顶层键替换为你的Lambda函数在模板中的逻辑ID,嵌套EnvironmentVariables字段存放环境变量:
{
  "YourLambdaFunction": {
    "EnvironmentVariables": {
      "PPPPPPPPPPPPPPPPPPPPP1": "PPPPPPPPPPPPPPPPPPPPP1",
      "PPPPPPPPPPPPPPPPPPPPP2": "PPPPPPPPPPPPPPPPPPPPP2",
      "PPPPPPPPPPPPPPPPPPPPP3": "PPPPPPPPPPPPPPPPPPPPP3"
    }
  }
}

注意将上述YourLambdaFunction替换为你template.yaml中实际定义的Lambda资源逻辑ID

  • 第二步:执行原有启动命令即可,环境变量会直接注入Lambda运行时。

内容的提问来源于stack exchange,提问作者Itay Moav -Malimovka

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:39:03