我将在前言中说我是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
答案 0 :(得分:0)
发生这种情况时,我会使用AWS IoT中的测试功能进行检查。您可以收听'$ aws / things / TestMichael / shadow / update'主题,看看是否在lambda更新阴影时发布了数据。