Проблема с вашим подходом заключается в том, как работает AWS IoT Queries - после активации запроса AWS будет пытаться проверить / выполнить его для каждого отдельного сообщения на основе фильтра topi c, который вы предоставляете в предложение SELECT.
Таким образом, у вас не может быть одного запроса для достижения того, что вы хотите (с различными значениями температуры_уровня).
В вашей задаче есть две переменные - machine_id, Temperature_level. Оба связаны друг с другом.
Возможно, вы захотите подойти к вашей проблеме с помощью:
Option-1 :: Rudimentary - Создайте несколько запросов (по одному для machine_id, комбинации температур) и разверните.
Option-2 :: Dynami c - Хранить переменные в виде кортежей в хранилище по вашему выбору, например, AWS DynamoDB. Иметь DB Stream / Trigger для уведомления об изменениях в таблице и обрабатывать их с помощью AWS Lambda, который динамически воссоздает AWS IoT Rules (с использованием AWS SDK / API) по мере изменения данных в DynamoDB.
Надеюсь, это поможет!