I have created a rule in AWS-iot to invoke a lambda with following query:
select * from 'my_topic'
This rule will invoke a below javascript lambda:
var AWS = require('aws-sdk');
var zlib = require('zlib');
var s3 = new AWS.S3();
exports.handler = (event, context, callback) => {
console.log("hello:");
var bucketName = "otonomobucket";
var keyName = getKeyName("myData", Date.now());
var content = event;
//var content = JSON.stringify(event);
console.log("event data:" + content);
var params = { Bucket: bucketName, Key: keyName, Body: content };
s3.putObject(params, function (err, data) {
if (err)
console.log(err)
else
console.log("Successfully saved object to " + bucketName + "/" + keyName);
});
};
function getKeyName(folder, filename) {
return folder + '/' + filename + ".txt";
}
The lambda works perfectly if i publish any string to my_topic. But the lambda is not working if i publish bytearray to my_topic. CloudWatch is also not showing any logs. How could i get the byte array into my lambda function.