Имена тем с подстановочными знаками и захват сообщений из всех тем
Мы используем AWS IoT.
У нас есть предопределенные темы (+/device/), в которых устройства публикуют сообщения.
Но есть вероятность, что устройства могут публиковать сообщения на любые другие темы.
Я хочу подсчитать количество сообщений, которые публикуются для всех тем на этих отдельных устройствах, и реализовать регулирование.
Я пытался создать правила IoT, используя имена тем с подстановочными знаками, например ( +/* или /), но ни одна из этих тем с подстановочными знаками, похоже, не работает.
Есть ли какое-либо название темы с подстановочным знаком, которое я могу использовать для записи сообщений из всех тем?
Или есть способ выгрузить все сообщения по всем темам где-нибудь в DynamoDB или S3 и подсчитать количество сообщений с отдельных устройств за определенный период времени?
1 ответ
Я пытался создать правила IoT, используя имена тем с подстановочными знаками, например ( +/* или /), но ни одна из этих тем с подстановочными знаками, похоже, не работает.
Есть ли какое-либо название темы с подстановочным знаком, которое я могу использовать для записи сообщений из всех тем?
+
а также #
являются соответствующими подстановочными знаками для правил AWS IoT. См. https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-from.html.
Вы можете настроить правило с помощью следующего оператора для захвата сообщений из всех тем.
SELECT * FROM '#'
Или есть способ выгрузить все сообщения по всем темам где-нибудь в DynamoDB или S3 и подсчитать количество сообщений с отдельных устройств за определенный период времени?
Один из подходов - создать правило, основанное на приведенном выше, а также передавать идентификатор клиента в каждое сообщение (с помощью функции clientid()). Действие для этого правила может записать идентификатор клиента в DynamoDB или S3. Тогда эта информация доступна для ваших расчетов.
Альтернативным подходом может быть запись сообщений и клиентов в поток данных Kinesis и использование Kinesis Data Analytics для обнаружения неисправных устройств.