Лямбда-функция никогда не вызывается из IOT-ядра - PullRequest
0 голосов
/ 04 июня 2018

У меня есть лямбда-функция в AWS, которая должна вызываться всякий раз, когда полезная нагрузка mqtt отправляется с моего устройства iot.У меня есть настроенное правило iot, которое подписывается на тему mqtt, которая должна преобразовывать полезную нагрузку из формата csv в формат json, но сейчас функция никогда не вызывается.

Я проверил, чтобы убедиться, чтотема mqtt публикуется с правильной полезной нагрузкой, и это определенно так.Вот "index.js" моей лямбда-функции.

var https = require('https');

exports.handler = (event, context, callback) => {
    //split lines in csv
    var lines = event.split("\n");
    var result = [];
    var headers = ["Timestamp","Temperature","humidity","counts_0.3","counts_0.5","counts_1","counts_2.5","counts_5","counts_10","pm1","pm2.5","pm10","pma1","pma2.5","pma10"];
    for (var i = 0; i < lines.length; i++) {
        var obj = {};
        var currentline = lines[i].split(",");
        for (var j = 0; j < headers.length; j++) {
            obj[headers[j]] = currentline[j];
        }
        result.push(obj);
    }

    //store json Object in postData to be published to Losant
    var postData = JSON.stringify(result); //JSON

    var options = {
        hostname: 'triggers.losant.com',
        port: 443,
        path: '/webhooks/nV2kS3GWzETodHeFin4vlLhoAwmqkFdtfdmGV7we',
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
            'Content-Length': Buffer.byteLength(postData)
        }
    };

    var req = https.request(options, (res) => {
        console.log(`STATUS: ${res.statusCode}`);
        console.log(`HEADERS: ${JSON.stringify(res.headers)}`);
        res.setEncoding('utf8');
        res.on('data', (chunk) => {
            console.log(`BODY: ${chunk}`);
        });
        res.on('end', () => {
            callback();
        });
    });
    req.on('error', (e) => {
        console.log(`problem with request: ${e.message}`);
        callback();
    });
    // write data to request body
    req.write(postData);
    req.end();
};

Вот несколько скриншотов из моего правила IOT.

SQL-запрос enter image description here MQTTопубликовано enter image description here

Функция никогда не вызывается enter image description here

...