In Express we can do :
var sourceIp = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
But its not working in serverless-express.
Also tried with :
const sourceIp = req.requestContext.identity.sourceIp;
Since serverless provides this with and it works in lambda functions
const sourceIp = event.requestContext.identity.sourceIp;
Check out the example in this repo which includes usage of middle Ware to get the context.
For Future references :
const awsServerlessExpressMiddleware = require('aws-serverless-express/middleware');
router.use(awsServerlessExpressMiddleware.eventContext());
usage :
const sourceIp =req.apiGateway.event.requestContext.identity.sourceIp
Most helpful comment
For Future references :
const awsServerlessExpressMiddleware = require('aws-serverless-express/middleware');
router.use(awsServerlessExpressMiddleware.eventContext());
usage :
const sourceIp =req.apiGateway.event.requestContext.identity.sourceIp