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

如何通过GUI将字符串化JSON传入AWS Lambda环境变量并正常解析

解决AWS Lambda环境变量中JSON字符串解析失败的问题

问题根源

AWS Lambda存储环境变量时,会自动对双引号、反斜杠这类特殊字符做转义处理。当你直接输入{"foo":"bar","hello":"world"}作为环境变量值,实际存储的内容会变成"{\"foo\":\"bar\",\"hello\":\"world\"}"——相当于原字符串被额外套了一层引号,内部双引号也被转义。解析时就会因多余的转义字符报错Unexpected token \ in JSON at position 0。而本地Windows环境下VSCode的launch.json不会做额外转义,所以能正常解析。

解决方法

1. 控制台设置环境变量的正确写法

  • 用单引号包裹整个JSON字符串,避免内部双引号被转义:
    '{"foo":"bar","hello":"world"}'
    
  • 或者手动转义内部的双引号:
    {\"foo\":\"bar\",\"hello\":\"world\"}
    
    两种方式都能让Lambda读取到正确的原始JSON字符串。

2. 代码层兼容处理

如果已经部署无法修改环境变量,可以在代码中先反转义再解析。以Node.js为例:

// 读取环境变量
const rawEnvVar = process.env.YOUR_JSON_VARIABLE;
// 替换双重转义的反斜杠为单转义
const correctedJson = rawEnvVar.replace(/\\\\/g, '\\');
// 解析JSON
const parsedData = JSON.parse(correctedJson);

3. 部署工具(SAM/CloudFormation)配置技巧

  • SAM模板中,用单引号包裹JSON字符串:
    Resources:
      YourLambdaFunction:
        Type: AWS::Serverless::Function
        Properties:
          Environment:
            Variables:
              YOUR_JSON_VAR: '{"foo":"bar","hello":"world"}'
    
  • CloudFormation模板同理,用单引号或正确转义双引号,避免模板解析时转义环境变量值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 08:23:26