AWS Lambda 函数帮助

Posted

技术标签:

【中文标题】AWS Lambda 函数帮助【英文标题】:AWS Lambda Function assistance 【发布时间】:2019-05-12 14:24:53 【问题描述】:

我刚开始使用 AWS,我正在创建我的第一个 Lambda 函数。第一个是成功的——创建和执行时没有问题。 现在我正在尝试使用几个参数创建 Lambda 函数(基于 python 3)。当我从 API Gateway 执行测试时,我可以看到它执行正常。当我尝试从浏览器执行时,我看到以下错误: "errorMessage": "'foo2", "errorType": "KeyError", “堆栈跟踪”: [ " File \"/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')"

我真的很想知道为什么会这样..

【问题讨论】:

【参考方案1】:

我不是 API 网关向导,但看起来您正在尝试将变量 foo2 分配给从浏览器调用函数时不存在的事件的一部分,在测试您可能想要的事件时查看事件的结构。在您的 Lambda 函数中直接在 lambda_handler 下添加一个 json.dumps 以尝试了解是否缺少参数可能会有所帮助。

【讨论】:

您好,谢谢您的建议。实际上,我最终使用相同的选项创建了新的 Lambda,它可以正常工作 WTF o.0 所以然后我在原始函数上重新创建了 API 网关,它也开始工作了! 好吧,没有问题,很高兴听到它:)

以上是关于AWS Lambda 函数帮助的主要内容,如果未能解决你的问题,请参考以下文章

代码检查帮助:Lambda函数调用Amazon Connect API进行出站呼叫

如何在 CloudFormation 模板中描述 AWS Lambda 函数测试事件?

在python中自动测试aws lambda函数

如何为 AWS RDS 凭证创建配置文件并将其导入我的 AWS Lambda API?

无法让phantomjs在aws lambda上工作

无法将cvxpy安装到AWS Lambda的virtualenv中