python - AWS lambda update_thing_shadow 规则问题
问题描述
我会先说我是 AWS 的新手,但需要使用它来为课堂设置 MQTT 代理。问题可能源于我只是不熟悉应该如何使用它,但是每当我使用 lambda 函数更新我的东西“TestMichael”的影子时,如果温度超出范围,规则应该发送一条短信通知但它没有. 当我在测试下发布它时,通知有效,但当 lambda 函数更改它时无效。有人知道这是为什么吗?
TLDR:使用 lambda 函数更新事物的影子不会激活我创建的规则。为什么是这样?
下面是相关的 lambda 函数和规则查询:
def lambda_handler(event, context):
temp = 74 #text should be sent if > 70
client = boto3.client('iot-data', region_name='us-east-1')
#Code portion for changing the state
data = {"state" : { "reported" : { "Temperature" : temp , "Moisture" : moist, "Light" : light, "Conductivity" : conduct}}}
mypayload = json.dumps(data)
response = client.update_thing_shadow(
thingName = 'TestMichael',
payload = mypayload
)
这是我的规则中使用的 SQL 查询:
SELECT * FROM '$aws/things/TestMichael/shadow/update' WHERE Temperature > 70
解决方案
发生这种情况时,我使用 AWS IoT 中的测试功能进行检查。您可以收听“$aws/things/TestMichael/shadow/update”主题,看看它是否在 lambda 更新影子时发布了数据。
推荐阅读
- javascript - ReactJs:如何构建 npm 库
- javascript - Node 应用程序的 Heroku 部署返回 node-waf: not found
- python - 从 Numpy 数组或 Python 列表中删除前导的 None 项
- sql - 仅显示每种类型的传感器 sql 问题中的一种
- python - python matplotlib plotly graph_objects 如何保存图形
- sql - 基于行间共享属性的新ID
- python - 如何解决“DataFrame”对象没有属性“column_name”?
- python - 尝试查找长度为 6 的列表的值 1 时,Python 列出“列表索引超出范围”错误
- vim - 如何在vim中重复查找/替换命令
- javascript - Javascript - 无法在 HTMLButtonElement 处设置 null 属性“src”