Placing data in POST body of a rest api request. Looks like below:
{"Email":"testemaillogs@logs.com",
"comment": "message one is here"
}
So far so good, can use Postman to hit API Gateway, and use lambda functions to do various things like access comprehend API. Now when I need to access this data to write it somewhere (like dynamoDB), I try like this:
def lambda_handler(event, context): email = event["Email"] comment = event["comment"]
Getting a "key error" in cloudwatch logs from this approach like this:
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
In API Gateway I have set up a Model schema like this and required it under Method Execution in the API Gateway resources manager.
{
"type":"object",
"properties":{
"Email":{"type":"string"},
"comment":{"type":"string"}
},
"title":"Input"
}
Anything else to check here?