Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 当我通过AWS控制台和Curl在Lambda中测试无服务器代码时会得到不同的结果_Node.js_Amazon Web Services_Serverless - Fatal编程技术网

Node.js 当我通过AWS控制台和Curl在Lambda中测试无服务器代码时会得到不同的结果

Node.js 当我通过AWS控制台和Curl在Lambda中测试无服务器代码时会得到不同的结果,node.js,amazon-web-services,serverless,Node.js,Amazon Web Services,Serverless,我遵循了以下教程:。它指导您构建一个Lambda函数,该函数接受三个参数,并使用从这些参数构建的项填充DynamoDB数据库 当我使用CURL从控制台运行东西时,一切都按预期进行。但是,如果我通过Lambda控制台进行测试,我会得到一个错误,这似乎是由于处理程序参数中的“event”对象根据调用Lambda函数的位置的不同而形状不同(这很奇怪) 我测试了以下内容: module.exports.submit = async (event, context) => { return {

我遵循了以下教程:。它指导您构建一个Lambda函数,该函数接受三个参数,并使用从这些参数构建的项填充DynamoDB数据库

当我使用CURL从控制台运行东西时,一切都按预期进行。但是,如果我通过Lambda控制台进行测试,我会得到一个错误,这似乎是由于处理程序参数中的“event”对象根据调用Lambda函数的位置的不同而形状不同(这很奇怪)

我测试了以下内容:

module.exports.submit = async (event, context) => {
  return {
    statusCode: 200,
    body: Object.keys(event).join()
  }
}
使用CURL时,我得到以下声明(个人详细信息来自教程):

这个CURL语句的响应相当长

资源、路径、httpMethod、标头、多值标头、queryStringParameters、多值queryStringParameters、pathParameters、stageVariables、requestContext、正文、isBase64Encoded

另一方面,在控制台中,响应很简单:

名字、电子邮件、经历


出于测试目的,我应该忽略控制台还是遗漏了什么?

当使用curl或Postman调用端点时,它会向API网关发送HTTP请求。API网关然后创建一个特定的事件对象并将其传递给Lambda函数。在控制台中直接调用Lambda时,传递手动创建的任何事件对象。直接测试Lambda函数的方法是以一个API网关事件为例,修改它以适合您要测试的内容。当使用HTTP请求调用时,您可以通过从Lambda注销事件对象来完成此操作。

当您通过
curl
进行测试时,它将通过API网关,向
事件
对象添加许多内容。当您直接在Lambda控制台中进行测试时,您可能没有在您创建的测试事件对象中传递所有这些API网关值,因此存在差异。
curl -H "Content-Type: application/json" -X POST -d '{"fullname":"Shekhar Gulati","email": "shekhargulati84@gmail.com", "experience":12}' https://__.execute-api.eu-west-2.amazonaws.com/dev/__