UNPKG

@benie/lambda-lib

Version:

Builders and tools for creating AWS Lambda function handlers that provides automation for things such as logging, instrumentation and parameters propagation

42 lines (33 loc) 1.11 kB
const AWS = require('aws-sdk'); const Kinesis = new AWS.Kinesis(); const log = require('../log'); const correlationIds = require('../correlation-ids'); function tryJsonParse(data) { if ( data && (typeof data === 'string') ) { return null; } try { return JSON.parse(data); } catch (err) { log.warn('only JSON string data can be modified to insert correlation IDs'); return null; } } function addCorrelationIds(data) { // only do with with JSON string data const payload = tryJsonParse(data); if (!payload) { return data; } const context = correlationIds.get(); const newData = Object.assign({ __context__: context }, payload); return JSON.stringify(newData); } function putRecord(params, cb) { const newData = addCorrelationIds(params.Data); params = Object.assign({}, params, { Data: newData }); log.info('Publishing to Kinesis stream', params); return Kinesis.putRecord(params, cb); } const client = Object.assign({}, Kinesis, { putRecord }); module.exports = client;