Ядро Google Cloud IoT и цена Pubsub?

Я использую основные сервисы Google IoT и pubsub для своих устройств IoT. Я публикую данные, используя pubsub в базе данных. но я думаю, что хранить все данные в базе данных довольно дорого. У меня есть некоторые данные, например, если устройство включено или выключено, и файл конфигурации, в котором есть какой-то параметр, который мне нужен для обработки полезной нагрузки IoT. Теперь я не могу понять, стоит ли тема конфигурации и состояния в IoT или нет? и как долго данные хранятся в разделе конфигурации, и возможно ли, чтобы при изменении параметра в файле конфигурации он публиковал эти данные в разделе конфигурации? и что если я опубликую свое состояние устройства, если оно подключено к сети или нет, каждые 3 секунды или более в теме состояния?

Всего 1 ответ


Вы смешиваете разные вещи. Существует Cloud IoT, где у вас есть реестр устройств с метаданными, конфигурацией и состояниями. У вас также есть тема PubSub, в которой вы можете опубликовать сообщение о полезной нагрузке IoT, которая может содержать данные конфигурации (я предполагаю, что вы подразумеваете в этом предложении: «он публикует эти данные в теме конфигурации»).

В конечном итоге это просто.

  • Все операции по управлению облачным IoT бесплатны (регистрация устройства, настройка, метаданные, ...). Нет ограничений и нет ограничений по продолжительности. Единственный, который существует в квотах на ограничение скорости и размер конфигурации.
  • Входящий и исходящий трафик от и к устройствам IoT оплачивается, как описано здесь
  • Если вы используете PubSub для отправки ваших сообщений, облачных функций (или Cloud Run, или другого варианта вычисления), базы данных (Cloud SQL или Datastore / Firestore), все эти сервисы оплачиваются как обычно, связи с сервисом Cloud IoT нет. биллинг. Ограничения каждой услуги применяются как регулярное использование. Например, сообщение PubSub действует до 7 дней (по умолчанию) в подписке и до тех пор, пока оно не будет подтверждено.

РЕДАКТИРОВАТЬ

Хорошо, понял, я потратил время, чтобы понять, чего ты хотел достичь.

Состояние предназначено для получения внутреннего представления устройств, но текущее ограничение не позволяет автоматически обновлять его при получении сообщения.

У вас есть 2 решения:

  • Либо вы можете обновлять свои устройства и отправлять сообщение об обновлении только при изменении его состояния (именно для этого варианта использования предназначена функция!)
  • Или пусть устройство публикует сообщения каждые 3 секунды, но в теме события PubSub. Получите события в функции, которая получает список состояний , получает первый (самый последний) и сравнивает значение с сообщением PubSub. Если отличается, обновите состояние . Этот рабочий процесс также работает с внешней базой данных, такой как Datastore или Firestore.

Есть идеи?

10000