aws / aws/aws-lambda-runtime-interface-emulator
Emulate API Gateway payload in event object
- Dominant language
- Go
- Stars
- 1.1k
- Forks
- 118
- Avg merge
- 42m
- Merged PRs (30d)
- 2
Description
We run our lambdas behind an API Gateway. The event object in the lambda when we run locally does not have the same structure as the event object when running behind an API Gateway.
For example, if I want to post to a path with the `/{model}` parameter, I need to post with this wrapping my payload
```
{
"pathParameters": {
"model": model
},
"body": { .. json payload ...}
}
```
When I call my API Gateway endpoint I do not need to wrap the payload, as this is created by API Gateway as it passes the payload off to the lambda.
What I would really like is to be able to set an ENV var such as `LAMBDA_MODE` which when set to `API_GATEWAY` RIE wraps the event to mimic the event passed by the API Gateway. It would need to work the same for response objects too. If not set, then it would work in the default mode which is how it works today.
Contributor guide
Research direction
Start by tracing how the emulator currently receives and constructs the event object, then inspect the response path. Compare that behavior with the API Gateway structure described here and determine how the LAMBDA_MODE=API_GATEWAY setting should affect both request and response handling. Done means the default behavior remains unchanged and API Gateway-shaped events and responses are supported.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100