Files
getting-started/nodejs/errorhandling/js/lambda.js
Pratik Das 862b40b1fb Node errorhandling (#170)
* added code

* removed cdk code

* added code examples

* added ts files

* added code

* updated code

* error handling code

* Update nodejs/errorhandling/js/index.js

Co-authored-by: Pratik Das <pratikd2001@gmail.com>
Co-authored-by: Tom Hombergs <tom.hombergs@gmail.com>
2022-05-04 20:54:00 +10:00

33 lines
1.1 KiB
JavaScript

console.log('Loading function');
const validateRecord = (recordElement)=>{
// record is considered valid if contains status field
return recordElement.includes("status")
}
exports.handler = async (event, context) => {
/* Process the list of records and transform them */
const output = event.records.map((record)=>{
const decodedData = Buffer.from(record.data, "base64").toString("utf-8")
let isValidRecord = validateRecord(decodedData)
if(isValidRecord){
let parsedRecord = JSON.parse(decodedData)
// read fields from parsed JSON for some more processing
const outputRecord = `status::${parsedRecord.status}`
return {
recordId: record.recordId,
result: 'Ok',
// payload is encoded back to base64 before returning the result
data: Buffer.from(outputRecord, "utf-8").toString("base64")
}
}else{
return {
recordId: record.recordId,
result: 'dropped',
data: record.data // payload is kept intact,
}
}
})
};