规则

时间:2018-04-26 23:45:35

标签: python amazon-web-services aws-lambda mqtt iot

我将在前言中说我是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

1 个答案:

答案 0 :(得分:0)

发生这种情况时,我会使用AWS IoT中的测试功能进行检查。您可以收听'$ aws / things / TestMichael / shadow / update'主题,看看是否在lambda更新阴影时发布了数据。