Как проверить, находится ли устройство в автономном режиме в AWS IoT Core

Как лучше всего проверить, отключен ли AWS IoT Core?

Возможность запрашивать состояние объекта AWS IoT для многих будет важной частью их приложения. У Lucky AWS есть рекомендации по получению событий жизненного цикла здесь: https://docs.aws.amazon.com/iot/latest/developerguide/life-cycle-events.html

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

Когда это сообщение становится доступным и обрабатывается (Lambda или другой службой), вы можете сначала проверить, находится ли устройство по-прежнему в автономном режиме, прежде чем предпринимать дальнейшие действия.

Вопрос в том, как мне проверить, что устройство все еще находится в автономном режиме?

Предлагаемая в документации инфраструктура - это правило Интернета вещей, подписанное на тему «$ aws / events / availability / disconnected / clientId», будет создавать сообщение в очереди SQS. Очередь SQS задержит сообщение с помощью атрибута deliveryDelay до того, как лямбда-функция будет использовать сообщение. Именно в этой лямбда-функции мы должны проверить, находится ли устройство по-прежнему в автономном режиме.

Я мог бы просто реализовать таблицу Dynamodb с состоянием устройства и отметкой времени, которая будет обновляться каждый раз при возникновении события подключения или отключения без задержки. Но должен ли быть более умный способ определить, находится ли устройство по-прежнему в автономном режиме?


person Peter Savnik    schedule 23.03.2021    source источник


Ответы (1)


Вы можете использовать Thing Indexing. У него есть возможность индексировать статус подключения устройства (thingConnectivityIndexingMode).

person linuxbasic    schedule 23.03.2021
comment
Это выглядит намного лучше, я проверю это сейчас, спасибо! - person Peter Savnik; 23.03.2021
comment
Выглядит неплохо, но очень дорого. Если вы используете индексирование парка только для состояния подключения, ваша идея с DynamoDB будет намного дешевле. - person linuxbasic; 23.03.2021
comment
Для соображений ценообразования индекс парка дает мне 1 миллион изменений состояния за 2,25 доллара США, тогда как Dynamodb дает мне 1 миллион записей за 1,25 доллара США. Что касается запроса состояния, я получу 10.000 за 0,05 доллара США с использованием индекса флота, а Dynamodb даст мне 1 миллион запросов за 0,25 доллара США. Но это плюс стоимость лямбда-функции, выполняющей код. Итак, ваша точка зрения очень хорошая - здесь огромная разница в цене. Еще я считаю, что вы еще не можете настроить индекс парка с помощью CDK. - person Peter Savnik; 23.03.2021