如何从lambda应用程序中访问通过API Gateway发送的REST API的POST请求体数据(application/json类型)?

0

【以下的问题经过翻译处理】 将数据放置在rest api请求的POST主体中。看起来像这样:

{"Email":"testemaillogs@logs.com", "comment": "message one is here" }

到目前为止还算不错,可以使用Postman来访问API网关,并使用lambda函数来执行各种任务,例如访问理解API。现在,当我需要访问此数据以在某处写入它时(例如dynamoDB),我尝试像这样:

def lambda_handler(event, context): email = event["Email"] comment = event["comment"]

此方法在cloudwatch日志中引发“key error”,如下所示:

Field Value 
@ingestionTime 1594168745270 
@log 255070150261:/aws/lambda/Feedback 
@logStream 2020/07/08/$LATEST616634687067483d9e6f07d95fb20b30 
@message ERROR KeyError: 'Email' Traceback (most recent call last): File "/var/task/lambda_function.py", line 7, in lambda_handler email = event"Email" 
@timestamp 1594168736201

在API网关中,我设置了这样的模型架构,并在API网关资源管理器中的方法执行下要求它。

{ "type":"object", "properties":{ "Email":{"type":"string"}, "comment":{"type":"string"} }, "title":"Input" }

还有什么别的可以检查的吗?

1 回答
0

【以下的回答经过翻译处理】 如果您使用了Lambda Proxy Integration,那么您可以在事件中获取更多细节,而内容位于“body”字段之下。最好的做法是打印事件对象,然后您就可以准确地看到数据在事件对象中的位置。

profile picture
专家
已回答 8 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则