我刚开始使用AWS,并且正在创建我的第一个Lambda函数。第一个是成功-创建和执行时没有问题。 现在,我正在尝试使用几个参数创建Lambda函数(基于python 3)。当我从API网关执行测试时,我可以看到它执行正常。当我尝试从浏览器执行时,出现以下错误: { “ errorMessage”:“'foo2”, “ errorType”:“ KeyError”, “堆栈跟踪”: [ “文件\” / var / task / lambda_function.py \“,第6行,位于lambda_handler \ n foo2 = event ['foo2']; \ n” ] }
以下是函数和映射模板:
import json
import sys
def lambda_handler(event, context):
foo1 = event['foo1'];
foo2 = event['foo2'];
foo3 = event['foo3'];
foo = "This is Test!";
# TODO implement
return {
'statusCode': 200,
'body': json.dumps(event)
}
映射模板
#set($inputRoot = $input.path('$'))
{
"foo1": "$input.params('foo1')",
"foo2": "$input.params('foo2')",
"foo3": "$input.params('foo3')"
}
我真的很想知道为什么会这样。
答案 0 :(得分:1)
我不是API网关向导,但是您似乎正在尝试将变量foo2分配给从浏览器调用功能,测试您可能想要的事件时不存在的事件的一部分看事件的结构。在Lambda函数内部添加一个json.dumps直接在lambda_handler下可能会有所帮助,以尝试了解是否缺少参数。