我想将API网关中的查询参数传递给AWS Lambda,但我总是收到null
个值。
这是我的Lambda函数,我只想返回http://foo.bar的值? name = Dan
'use strict';
exports.handle = (context, event, callback) => {
callback(null, event.name);
}
在API网关中,我做了以下工作:
GET
)Integration Request
Body Mapping Templates
application/json
{"name": "$input.params('name')" }
但是,当我加载API时,event.name
的值始终为null
。访问API是通过...amazonaws.com/beta/user?name=dan
编辑:我已经尝试了接受的答案here,但在回调中简单地返回事件后,我只收到了这些数据:
{
"callbackWaitsForEmptyEventLoop": true,
"logGroupName": "",
"logStreamName": "",
"functionName": "",
"memoryLimitInMB": "",
"functionVersion": "",
"invokeid": "",
"awsRequestId": "",
"invokedFunctionArn": ""
}
我省略了这些值。
答案 0 :(得分:3)
context
和event
的函数参数展示位置错位。更改其位置如下
'use strict';
exports.handle = (event, context, callback) => {
callback(null, event.name);
}
答案 1 :(得分:2)
即使我之前遇到过同样的问题,我也修改了下面的身体映射模板。请试一试。
#set($inputRoot = $input.path('$'))
{
"name" : "$input.params('$.name')"
}
如果您使用路径参数,请尝试以下,
#set($inputRoot = $input.path('$'))
{
"name" : "$input.path('$.name')"
}