Изменить полученное сообщение в AWS IoT и повторно опубликовать

В учебнике по механизму правил говорится, что можно сказать, что каждый раз, когда мы получаем сообщение, указывающее «синий» как желаемый цвет лампочки, механизм правил преобразует его в «зеленый».

Для этого я подумал о создании правила, которое повторно публикует сообщение в теме shadow/update, но я не смог найти способ изменить сообщение перед повторной публикацией.

Есть ли способ сделать это в консоли aws?


person Karim KARAA    schedule 02.06.2016    source источник


Ответы (1)


Вам нужно будет создать правило IoT, чтобы обновить сообщение, как вы утверждаете, SQL-подобный синтаксис позволяет выполнять базовые манипуляции со строками, поэтому вы можете попробовать:

{
    "sql": "SELECT replace(color, 'blue', 'green') as color FROM '$aws/things/mything/shadow/update' WHERE color = 'blue'",
    "ruleDisabled": false,
    "actions": [{
        "republish": {
            "topic": "$aws/things/mything/shadow/update",
            "roleArn": "arn:aws:iam::123456789012:role/my-iot-role"
        }
    }]
}

Возможно, вам придется настроить переменные, если цвет является свойством сообщаемого состояния, вы можете изменить все экземпляры «цвета» на «сообщенный.цвет».

справочник по AWS IoT SQL содержит дополнительные примеры.

person Michael Barnwell    schedule 29.06.2016