Hope you are doing well!
I have been learning a bit on AWS and trying to test lambda locally. Currently I am trying to test the lambda by generating an event as if it comes from the API gateway.
I am using the following command after building my lambda application.
sam local generate-event apigateway aws-proxy --path retrievestatus --**body {"email":"abc@gmail.com"} **| sam local invoke -e - App
The event gets generated and the lambda is invoked. However I have a small issue here. The event generated has the following -
{
"body": "e2VtYWlsOmJ1bHVzdXNhc2hhbmtAZ21haWwuY29tfQ==",
"resource": "/{proxy+}",
"path": "/retrievestatus",
"httpMethod": "POST",
"isBase64Encoded": true,
My lambda is not really expecting a base64 encoded string. So I am looking for any suggestions to turn isBase64Encoded to false when I use SAM locally.
I have tried to check the options supported by running - "sam local generate-event apigateway aws-proxy -h" and couldn't find anything to turn it off.
Appreciate any help here.
Thank you for confirmation!
I have done it as per your suggestion and it works as expected.
I have generated a local event and stored it in a file sam local generate-event apigateway aws-proxy --path retrievestatus --body {"email":"abc@gmail.com"} > test.json
Made modifications in test.json to set the isbase64 flag to false and body as per my requirement.
Then I used sam local invoke to accept the saved event sam local invoke -e test.json
Thanks again and have a great day!