Node.js 如何在节点AWS Lambda中检索输入查询参数

Node.js 如何在节点AWS Lambda中检索输入查询参数,node.js,amazon-web-services,aws-lambda,query-parameters,Node.js,Amazon Web Services,Aws Lambda,Query Parameters,我最近开始学习AWS,并创建了一个基于lambda的基本节点,如下所示: exports.handler = async (event, context, callback) => { // TODO implement const response = { statusCode: 200, body: JSON.stringify([event, context, 'Hello from Saurabh Tiwari']), };

我最近开始学习AWS,并创建了一个基于lambda的基本节点,如下所示:

exports.handler = async (event, context, callback) => {

    // TODO implement
    const response = {
        statusCode: 200,
        body: JSON.stringify([event, context, 'Hello from Saurabh Tiwari']),
    };
    return response;
};
我已将API网关方法请求配置为需要一个
名称
查询参数,如下所示:

我还为API的GET调用分配了一个请求验证器。完成此操作后,端点要求我必须提供一个查询参数

然而,问题是我无法在lambda函数中接收查询参数。我希望它能通过
事件
参数传递。但是,事件参数(JSON正文中的第一个参数)是空的,如下面的响应对象所示

请建议如何在lambda中检索查询参数


您必须在“请求集成”选项卡下启用“Lambda代理集成”。然后可以通过
事件.queryStringParameters.name
访问查询字符串对象

请尝试
event.queryStringParameters[name]
。我认为您必须执行一些配置错误,这就是为什么本应作为参数传递的APIGateway事件是空对象的原因。@vibhor1997a正如预期的那样,执行上述操作会导致
{“errorType”:“TypeError”,“errorMessage”:“无法读取未定义的属性“name”,“trace”:[“TypeError:无法读取未定义的属性“name”,“at Runtime.exports.handler(/var/task/index.js:6:58)”,“at Runtime.handleOnce(/var/Runtime/Runtime.js:63:25)”,“at process.\u tickCallback(internal/process/next_tick.js:68:7)”]
。无论出于何种原因,整个事件对象都是空白的。您是否配置了集成请求并设置了lambda代理集成?我想没有。因为我对这方面非常陌生,您是否可以建议如何执行相同的操作?您可以先单击屏幕截图中显示的
获取
。在那里可以找到integration request.Cli勾选它,然后您会看到一些选项,包括复选框
lambda proxy integration
。选中复选框并保存。我建议您使用类似
serverless framework
的框架,因为它们使配置更容易。