Как отслеживать историю подключенных устройств AWS IOT и группировать их по теневому состоянию / атрибуту

Учитывая, что у меня есть устройства xK, каждое из них подключается к AWS IoT, и у каждого из них есть атрибуты / теневые состояния для их группировки

пример тени устройства: {"factory": "factoryA", "pipeInstalledVersion:" 1.5.6 "}

Какой самый простой способ контролировать эти устройства на групповой основе (на основе теневого состояния)

Например. Я хочу знать, сколько устройств подключено на заводе A в 11:05, 15:30, 20:50. Я также хочу знать, какую pipeInstalledVersion имеют устройства в определенный интервал времени (например, каждые 5 минут). Я также хочу знать, например, если на заводе A в 09:00 подключено менее X устройств, отправьте предупреждение.

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

Я изучил аналитику AWS IoT, но похоже, что есть некоторые ограничения - рекомендуемая платформа QuickSight для визуализации данных имеет ограниченный период автоматического обновления (я полагаю, 1 час), хотя базовый набор данных может обновляться каждые ~ 5 минут. - Набор данных будет отображать данные только в том случае, если устройство IOT передало данные за это время. Что делать, если устройство IOT подключено, но не передает данные в этот период времени? Будет как будто не связано.


person user3034    schedule 24.07.2019    source источник


Ответы (1)


Индексирование парка машин предоставляет возможность поиска по вашему парк устройств, использующий атрибуты Thing и состояние Thing Shadow.

Совместите это с AWS Lambda, и вы сами составите график поиска по своему парку, который можно сочетать с любым количеством действий AWS (например, записывать метрику CloudWatch, масштабировать EC2 и т. Д.).

Примеры запросов индексации парка:

connectivity.connected:true

возвращает все Вещи, подключенные в данный момент.

connectivity.connected:true AND shadow.reported.model:A 

возвращает все Вещи, подключенные в данный момент и имеющие определенное состояние тени.

aws iot get-cardinality --aggregation-field "connectivity.connected" --query-string "*"

Чтобы найти количество подключенных устройств одновременно. (запросы агрегирования)

person Brian Luong    schedule 24.12.2019