Amazon web services AWS Lambda功能辅助

Amazon web services AWS Lambda功能辅助,amazon-web-services,aws-lambda,aws-api-gateway,Amazon Web Services,Aws Lambda,Aws Api Gateway,我刚开始使用AWS,我正在创建我的第一个Lambda函数。第一个是成功-创建和执行时没有问题。 现在,我正在尝试创建带有两个参数的Lambda函数(基于python 3)。当我从API网关执行测试时,我可以看到它执行ok。当我尝试从浏览器执行时,我看到以下错误: { “errorMessage”:“foo2”, “errorType”:“KeyError”, “stackTrace”:[ “lambda_处理程序中的文件\“/var/task/lambda_function.py\”,第6行\n

我刚开始使用AWS,我正在创建我的第一个Lambda函数。第一个是成功-创建和执行时没有问题。 现在,我正在尝试创建带有两个参数的Lambda函数(基于python 3)。当我从API网关执行测试时,我可以看到它执行ok。当我尝试从浏览器执行时,我看到以下错误: { “errorMessage”:“foo2”, “errorType”:“KeyError”, “stackTrace”:[ “lambda_处理程序中的文件\“/var/task/lambda_function.py\”,第6行\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')"
}

我真的很想知道为什么会发生这种情况。

我不是API网关向导,但在从浏览器调用函数时,您似乎试图将变量foo2分配给事件中不存在的部分,在测试事件时,您可能希望查看事件的结构。在Lambda函数中,可以直接在Lambda_处理程序下添加一个json.dumps,以尝试了解是否缺少参数。

嘿,谢谢你的建议。实际上,我最终用相同的选项创建了新的Lambda,它在WTF o.0中工作,因此我在原始函数上重新创建了API网关,它也开始工作了!好的,没问题,很高兴听到:)