【发布时间】:2017-11-26 18:50:55
【问题描述】:
我正在尝试使用 Amazon Alexa、IoT 和 Lambda 来控制我的树莓派。 到目前为止我的工作:
- 将 raspberry 设置为 IoT 设备并能够发布和订阅主题(使用 IoT 客户端进行测试)
- 设置测试 lambda node.js 脚本
- 在我的 lambda 脚本中设置触发意图的测试 Alexa Skill
这是我的 node.js 脚本中的意图处理:
switch(event.request.intent.name) {
case "testone":
var config = {};
config.IOT_BROKER_ENDPOINT = "restAPILinkFromIoT".toLowerCase();
config.IOT_BROKER_REGION = "us-east-1";
//Loading AWS SDK libraries
var AWS = require('aws-sdk');
AWS.config.region = config.IOT_BROKER_REGION;
var iotData = new AWS.IotData({endpoint: config.IOT_BROKER_ENDPOINT});
var topic = "/test";
var output = "test output without publish"
var params = {
topic: topic,
payload: "foo bar baz",
qos:0
};
iotData.publish(params, (err, data) => {
if (!err){
output = "publish without error"
this.emit(':tell', tell);
} else {
output = err
}
});
context.succeed(
generateResponse(
buildSpeechletResponse(output, true),
{}
)
)
break;
...
基本上,脚本应该返回“无错误发布”或错误消息。问题它总是返回“没有发布的测试输出”。似乎永远不会触发发布函数(或至少是回调函数)。我也没有在主题中看到消息。
我做错了吗?
提前致谢!
【问题讨论】:
标签: node.js aws-lambda mqtt iot aws-iot