【发布时间】:2017-02-22 18:06:43
【问题描述】:
我需要使用 aws iot 通过 mqtt 协议从 aws lambda 发布数据。我用 node.js 代码创建了一个 lambda 函数。像这样
exports.handler = (event, context, callback) => {
var awsIot = require('aws-iot-device-sdk');
var device = awsIot.device({
keyPath: 'samplepath/test.pem.key',
certPath: 'samplepath/test.crt',
caPath: 'samplepath',
clientId: 'sampleId',
region: 'us-east-1'
});
device
.on('connect', function () {
console.log('connected');
device.publish('test_topic', JSON.stringify({ "test_name": "hello", "test_value": 1001 }));
console.log('published successfully');
callback(null, 'item added');
});
}
我收到了关于订阅者的 mqtt 消息。但是 lambda 会产生这样的错误消息
Task timed out after 10.00 seconds
我使用了 context.succeed() 而不是回调,lambda 正确退出。我无法在订阅者上收到任何消息。
在这两种情况下,控制台都会正确打印 成功发布 消息。
我的发布代码有什么问题?
【问题讨论】:
标签: node.js amazon-web-services mqtt aws-lambda aws-iot