I am triggering my lambda function from an api. The lambda function returns a query from a dynamoDB table, I am passing an ID to in api. but it returns an error. "Cannot destructure property 'Id' of 'event.pathParameters' as it is undefined".
'use strict'
const AWS = require('aws-sdk');
AWS.config.update({ region: "ap-south-1"})
exports.handler = async (event, context)=> {
const ddb = new AWS.DynamoDB({apiVerion: "2012-10-08"});
const documentClient = new AWS.DynamoDB.DocumentClient({ region: "ap-south-1"})
let responseBody = ""
let statusCode=""
const { Id } =event.pathParameters;// to get the id from api
const params = {
TableName: "User",
Key:{
// Id: "1"
Id: Id
}
}
try{
const data = await documentClient.get(params).promise();
// console.log(data);
let x = data.Iteml
responseBody = JSON.stringify
statusCode = 200
}
catch(err){
// console.log(err);
responseBody = " Unable to get User data"
statusCode= 403;
}
const response={
statusCode: statusCode,
headers:{
"myheader":"test"
},
body: responseBody
}
return response;
}
I too got the same issue,
event.pathParameters was undefined, then got to know than use Lambda Proxy Integration is not checked during API creation.
It should look as below in Integration request of API gateway

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With