aws / aws/aws-lambda-runtime-interface-emulator

Emulate API Gateway payload in event object

Open
#64 4 comments 11 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.