我想要一个简单的命令,就像我在 bash 中使用的那样,将某些内容发布到 AWS Lambda 函数内的 MQTT 主题。沿着以下思路:
mosquitto_pub -h my.server.com -t“灯/设置”-m“开”
背景:我想用 Alexa 打开和关闭灯。 Alexa 可以启动 Lambda 函数,在这个 Lambda 函数内部我想启动 MQTT 发布,因为灯可以监听 MQTT 主题并对那里的消息做出反应。(也许有更简单的解决方案,但我们处于复杂的(大学)网络,这使得许多其他方法变得更加困难)
如果您使用的是 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 发布函数的策略。在 IAM -> 角色下,您可以向 Lambda 函数角色添加内联策略,例如:
{
"Version": "2016-6-25",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Publish"
],
"Resource": [
"*"
]
}
]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)