В настоящее время у меня есть приложение, которое обрабатывает события телеметрии из Azure IOT Hub. Обработка событий выполняется путем запуска функций Azure из концентратора IOT.
Для каждого устройства установлено несколько правил / настроек обработки (в настоящее время около 6). Настройки - это просто набор простых (string / bool) свойств. Видя, что имеется несколько сотен устройств, количество этих настроек со временем увеличивается. Подключение новых устройств также создает требование для обеспечения настроек и значений по умолчанию.
Когда функция Azure запускается для обработки событий с устройства, ей необходимо загрузить настройки для этого устройства и затем обработать их соответствующим образом.
Каков наилучший способ управления этими настройками? Основной упор делается на эффективную загрузку настроек при запуске функции. Во-вторых, простое обновление настроек.
Насколько я понимаю, есть следующие варианты:
Сохранение отдельных настроек в таблицах Azure. Я реализовал это, но обеспокоен тем, что он не будет хорошо масштабироваться, когда сотни устройств получат доступ к таблице Azure. Я использовал PartitionKey | RowKey как DeviceId | SettingName. Это создаст раздел на устройство
Сохранить все настройки для устройства в формате JSON в таблицах Azure. Для этого потребуется разбор JSON для получения индивидуальных настроек
Сохранение отдельных настроек в ApplicationSettings на самом деле невозможно, я думаю из-за количества настроек
Сохранение всех настроек устройства, по-моему, также невозможно по той же причине, что и выше.