我希望有一个简单的命令,就像我在bash中使用的一样,在AWS Lambda函数中发布一些内容到MQTT上的主题。按照:mosquitto_pub-h my.server.com-t“light/set”-m“on”
背景:我想和Alexa一起打开和关闭一盏灯。Alexa可以启动一个Lambda函数,在这个Lambda函数中,我想启动一个MQTT发布,因为lamp可以侦听MQTT主题并对那里的消息做出反应。(可能有更简单的解决方案,但我们处于一个复杂的(大学)网络中,这使得许多其他方法更加困难)
如果您使用的是Node.js,这将起作用-
var AWS = require('aws-sdk');
var iotdata = new AWS.IotData({ endpoint: '*****************.iot.us-east-1.amazonaws.com' });
exports.handler = async(event) => {
console.log("Event => " + JSON.stringify(event));
var params = {
topic: "MyTopic",
payload: JSON.stringify(event),
qos: 0
};
return iotdata.publish(params, function(err, data) {
if (err) {
console.log("ERROR => " + JSON.stringify(err));
}
else {
console.log("Success");
}
}).promise();
};
记住要添加iot:对这个lambda函数使用的角色的发布权限。
AWS SDK有两个类来处理物联网:物联网和物联网数据。IotData.publish是您正在寻找的方法。看起来Iot对象用于处理事物,IotData用于处理MQTT和阴影。这应该在关于MQTT和shadows的文档中直接引用,但事实并非如此。
此服务(IotData)也可在CLI中使用。
如果您正在使用Python,我可以使用下面的处理程序函数获得AWS Lambda函数来向AWS IoT发布消息:
import boto3
import json
client = boto3.client('iot-data', region_name='us-east-1')
# Change topic, qos and payload
response = client.publish(
topic='$aws/things/pi/shadow/update',
qos=1,
payload=json.dumps({"foo":"bar"})
)
您还需要确保角色(在Lambda功能配置中)附加了允许访问IoT发布功能的策略。在我的领导下-
{
"Version": "2016-6-25",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Publish"
],
"Resource": [
"*"
]
}
]
}
更新时间:2019-10-31 10:56:59 节点简介 MQTT发布节点用于将设备的消息进行下发,自定义消息包,获取设备的信息,设备的动态 使用场景 使用MQTT发布节点,可以自定义提醒内容,下发设备的状态数据,下发设备信息,方便用户获取设备的信息,通常用于获取设备信息。 配置项 心跳配置 CONNECT指令中需包含Keep Alive(保活时间)。 保活心跳时间取值范围为30至1200秒。如
我使用带有paho-mqtt的Python客户机发布Google Cloud IoT的特定主题:。下面是基于Google IoT文档示例的代码: 当我运行时,客户端连接但不发布。在Google IoT控制台,我可以看到以下错误信息: 无效的MQTT发布主题:projects/my_project/topics/sm1 下面是输出: 连接到Google IoT Broker... 连接状态:0--m
有人知道我在哪里可以得到一些示例MQTT客户端Go(golang)代码,它在无限循环中发布和订阅? null 下面是我正在使用的代码: 我翻阅了GoDocs寻找一些关于如何保持连接畅通的提示,但似乎没有什么相关的。我当然可以在subscribe上执行无限循环,但这似乎效率低下。
问题内容: 我在这个jar中制作了一个名为 GetOfferSoftware的* jar 文件,我有一个名为 Offer的 Main类, 并且该Offer类包含以下功能 *** 现在我想从 另一个 与GetOfferSoftware jar不相关的 Java程序 调用此函数,所以我的问题是如何从另一个Java类访问参数并将参数发送到getOffer()函数。伙计们先谢谢 问题答案: 为了使用另一个
日志中的错误 2020-05-28 15:52:53.597错误112469---[nio-8080-exec-1]O.a.C.C.C.[.[.[/].[dispatcherServlet]:servlet.Service()对于servlet[dispatcherServlet]在路径[]上下文中引发异常[请求处理失败;嵌套异常是java.lang.IllegalStateException:没
问题内容: 我试图使用。通过Node.js向Web服务提交xml请求。 这是我的代码。我的问题是,而不是我想将xml发布到服务。 何去做? 问题答案: 返回ClientRequest对象,该对象也是可写流。代替做或