Javascript 为什么serverless中的本地事件变量表现不同?

Javascript 为什么serverless中的本地事件变量表现不同?,javascript,node.js,serverless,Javascript,Node.js,Serverless,您好,我正在使用无服务器框架测试lambda函数。我有以下代码 module.exports.send=async(事件、上下文、回调)=>{ 控制台日志(“事件”,事件); } 当我使用serverless invoke local-f send-p mocked_data.txt使用以下模拟数据在本地调用此函数时 其中mocked_data.txt具有 {“名称”:“asfa”,“电子邮件”:test@test.com,“内容”:“asadgdsgsdagsdagsd”} 变量事件使用上

您好,我正在使用无服务器框架测试lambda函数。我有以下代码

module.exports.send=async(事件、上下文、回调)=>{
控制台日志(“事件”,事件);
}
当我使用
serverless invoke local-f send-p mocked_data.txt使用以下模拟数据在本地调用此函数时

其中
mocked_data.txt
具有

{“名称”:“asfa”,“电子邮件”:test@test.com,“内容”:“asadgdsgsdagsdagsd”}
变量事件使用上面已解析的确切数据填充

但是,如果我从postman执行一个到该端点的POST,我会得到事件变量

事件{
资源:'/email/send',
路径:'/email/send',
httpMethod:'POST',
标题:{
//为简洁起见,请删除
,
域名:“xxxxx.us-east-1.amazonaws.com”,
APID:'xxxxx'
},
正文:“{\n”+
““名称”:“asfa”,\n”+
“电子邮件”:test@test.com“,\n”+
““内容”:“asadgdsgsdagsdagsd”\n”+
'}',
isBase64Encoded:false
}
为什么会发生这种情况?这给我的端点带来了一些问题


注意:如果请求,我可以提供更多信息,因为AWS Lambda事件会根据发送者的不同而变化,例如:

  • 数据库事件()
  • 队列事件()
  • API事件()
您可以使用
serverless invoke local
aws lambda invoke
在本地模拟这些事件中的任何一个,并将本地json有效负载传递给函数,就像您当前所做的那样,但是如果您通过端点发送相同的数据,则函数将作为一个端点接收它


了解所有事件类型和防止错误的最简单方法是使用该模块。

之所以发生这种情况,是因为AWS Lambda事件根据发送它的人而变化,例如:

  • 数据库事件()
  • 队列事件()
  • API事件()
您可以使用
serverless invoke local
aws lambda invoke
在本地模拟这些事件中的任何一个,并将本地json有效负载传递给函数,就像您当前所做的那样,但是如果您通过端点发送相同的数据,则函数将作为一个端点接收它

了解所有事件类型和防止错误的最简单方法是使用模块