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

AWS Lambda测试运行报SyntaxError: Unexpected end of input如何解决?

AWS Lambda SyntaxError: Unexpected end of input 排查方案

核心问题定位

该报错属于Node.js加载代码阶段抛出的语法错误,意味着解析代码/输入时未找到预期的闭合标记,直接触发原因有两类,按出现概率从高到低排序:

  1. 测试事件JSON格式非法
  2. 部署的Lambda功能源码存在未闭合的括号、引号、大括号
  3. 代码修改后未执行部署操作,仍运行旧的错误版本

具体问题&修复步骤

1. 优先修复测试事件JSON错误

你当前提供的测试事件存在多个语法问题,直接会导致解析失败:

  • body字段的JSON字符串存在未转义的裸换行,JSON标准不允许字符串值直接换行
  • 大量键名末尾带有多余空格:httpMethod 、queryStringParameters 、pathParameters 、requestContext 、cognito:username 、PickupLocation ,会导致代码中取对应字段时返回undefined
  • queryStringParameters、pathParameters错误加了引号,变成字符串"null"而非null类型
    修正后的测试事件参考:
{
  "path": "/ride",
  "httpMethod": "POST",
  "headers": {
    "Accept": "*/*",
    "Authorization": "eyJraWQiOiJLTzRVMWZs",
    "content-type": "application/json; charset=UTF 8"
  },
  "queryStringParameters": null,
  "pathParameters": null,
  "requestContext": {
    "authorizer": {
      "claims": {
        "cognito:username": "the_username"
      }
    }
  },
  "body": "{\"PickupLocation\": {\"Latitude\":47.6174755835663,\"Longitude\":-122.28837066650185}}"
}

2. 校验功能源码语法

你贴出的JS源码语法本身没有问题,但如果复制部署时存在内容截断,会触发语法错误,可通过本地Node.js快速校验:

  • 将功能源码保存为index.js文件
  • 本地执行命令:node -c index.js
  • 无任何输出则代表语法合法,有错误输出可直接定位到未闭合的行位置

3. 确认Lambda部署生效

修改代码或测试事件后,必须点击Lambda控制台右上角的橙色Deploy按钮,等待部署完成后再执行测试,否则运行的仍是上一个错误版本的代码。

后续可选检查

语法问题解决后如果出现权限/资源不存在错误,可补充检查:

  • 确认代码中写的DynamoDB表名AWSIES-jeremie.agravante在当前AWS区域已存在
  • 确认Lambda执行角色已附加dynamodb:PutItem权限,允许写入目标DynamoDB表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:45:04