如何从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 Antwort
0

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

profile picture
EXPERTE
beantwortet vor 8 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen