asksuite-core
Version:
35 lines (29 loc) • 785 B
JavaScript
const AWS = require('aws-sdk');
const _ = require('lodash');
class AWSLambdaCaller {
constructor(awsConfig, otherParams = {}) {
this.otherParams = _.chain(awsConfig)
.cloneDeep()
.assign(otherParams || {})
.value();
}
async call(jsonObj, functionName) {
const lambda = new AWS.Lambda(this.otherParams);
const params = {
FunctionName: functionName,
Payload: JSON.stringify(jsonObj),
};
try {
return await lambda
.invoke(params)
.promise()
.then(value => {
return JSON.parse(value.Payload);
});
} catch (e) {
console.warn('Error, cannot invoke lambda ' + functionName, e);
throw e;
}
}
}
module.exports = AWSLambdaCaller;