Упорядочение событий изменения состояния подключения устройства из Центра Интернета вещей Azure с использованием Azure Cosmos DB
Сетка событий Azure помогает создавать приложения на основе событий и легко интегрировать события Интернета вещей в бизнес-решения. В этой статье описывается настройка с помощью Cosmos DB, приложения логики, Центр Интернета вещей событий и имитированного Raspberry Pi для сбора и хранения событий подключения и отключения устройства.
С момента запуска устройства порядок операций активируется:
Устройство Pi с помощью ключа устройства Центра Интернета вещей запускается, а затем останавливается
Событие Центр Интернета вещей записывает действие устройства, а затем отправляет HTTP-запрос в приложение логики.
Приложение логики обрабатывает HTTP-запрос на основе заданного условия
Приложение логики регистрирует события подключения или отключения в новый документ в Cosmos DB
Необходимые компоненты
Активная учетная запись Azure Cosmos DB для NoSQL. Если вы ее еще не создали, ознакомьтесь с соответствующими инструкциями в разделе Создание учетной записи базы данных.
Коллекция в базе данных. Пошаговое руководство см. в разделе Добавление коллекции. При создании коллекции используйте
/id
для ключа секции.Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Центр Интернета вещей в подписке Azure. Если у вас еще нет центра, выполните действия, описанные в разделе Создание центра Интернета вещей.
Создание приложения логики
Создадим приложение логики и добавим триггер сетки событий, отслеживающий группу ресурсов для виртуальной машины.
Создание ресурса приложения логики
На портале Azure нажмите + Создать ресурс, выберите Интеграция, а затем — Приложение логики.
Заполните форму, чтобы создать новое приложение логики, которое включает в себя:
Ваша подписка
Группа ресурсов (или создание новой)
Уникальное имя приложения логики в подписке
Регион Центра Интернета вещей
No для включения log analytics
Тип плана потребления
Примечание.
Тип плана потребления — это параметр, позволяющий конструктору приложений логики в пользовательском интерфейсе. Если выбрать стандартный (по умолчанию), необходимо создать рабочий процесс, чтобы конструктор приложений логики стал доступным.
Выберите "Просмотр и создание", чтобы просмотреть конфигурацию, а затем нажмите кнопку "Создать ", чтобы создать приложение логики.
Вы создали ресурс Azure для приложения логики. Когда Azure развернет ваше приложение логики, выберите Перейти к ресурсу. Конструктор приложений логики отображает шаблоны для распространенных шаблонов, чтобы можно было быстрее приступить к работе.
В конструкторе приложений логики прокрутите страницу, пока не увидите раздел "Шаблоны", а затем выберите пустое приложение логики, чтобы создать приложение логики с нуля.
Выбор триггера
Триггер представляет собой определенное событие, которое запускает приложение логики. В этом руководстве триггер, который инициирует рабочий процесс, получает запрос через HTTP.
На панели поиска триггеров и соединителей введите HTTP и нажмите клавишу ВВОД.
Выберите запрос при получении HTTP-запроса в качестве триггера.
Выберите Использовать пример полезных данных для создания ссылки на схему.
Вставьте следующий пример кода JSON в текстовое поле, а затем нажмите кнопку "Готово".
Этот КОД JSON используется только в качестве шаблона, поэтому точные значения не важны.
[{ "id": "fbfd8ee1-cf78-74c6-dbcf-e1c58638ccbd", "topic": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/EGTESTRG/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/MYIOTHUB", "subject": "devices/Demo-Device-1", "eventType": "Microsoft.Devices.DeviceConnected", "eventTime": "2018-07-03T23:20:11.6921933+00:00", "data": { "deviceConnectionStateEventInfo": { "sequenceNumber": "000000000000000001D4132452F67CE200000002000000000000000000000001" }, "hubName": "MYIOTHUB", "deviceId": "48e44e11-1437-4907-83b1-4a8d7e89859e", "moduleId": "" }, "dataVersion": "1", "metadataVersion": "1" }]
Создание условия
Условия помогают выполнять определенные действия после передачи этого конкретного условия. В этой статье условие заключается в том, чтобы проверить, подключено ли устройство или устройство отключено. Действие, выполняемое, если этот тип события имеет значение true, является созданием документа в Azure Cosmos DB. Это условие создается в конструкторе приложений логики.
Выберите +Создать шаг, а затем вкладку "Встроенный" , а затем найдите и выберите элемент управления с именем "Условие".
В вашем состоянии измените значение And to Or, так как мы хотим записать события подключения или события отключения в одном синтаксическом анализе.
Выберите внутри поля "Выбор значения " и появится всплывающее окно, отображающее динамическое содержимое — поля, которые можно выбрать.
Выберите eventType. Всплывающее окно закрывается, и вы увидите, что текст помещается в раздел "Выбор выходных данных из предыдущих шагов" автоматически. Выберите условие для повторного открытия условной инструкции.
Сохраните значение равно значению .
Введите в Microsoft.Devices.DeviceConnected в качестве последнего значения этой строки.
Нажмите кнопку +Добавить, чтобы добавить другую строку.
Эта вторая строка похожа на первую строку, за исключением событий отключения.
Использовать eventType, равно и Microsoft.Devices.DeviceDisconnected для значений строк.
В диалоговом окне Если истинно щелкните Добавить действие.
Найдите Cosmos DB и выберите Azure Cosmos DB — создайте или обновите документ (V3)
Появится панель "Создание или обновление документа" (V3). Введите следующие значения для полей:
Имя учетной записи Azure Cosmos DB: {Добавление имени учетной записи}
Идентификатор базы данных: ToDoList
Идентификатор коллекции: элементы
Документ. Выбор
Current item
из списка параметров динамического содержимогоСохраните приложение логики
Копирование URL-адреса HTTP
Скопируйте для триггера URL-адрес, с которого приложение логики ожидает передачи данных, а затем закройте конструктор Logic Apps. Этот URL-адрес вы используете для настройки сетки событий.
Разверните поле конфигурации триггера при получении HTTP-запроса, выбрав его.
Скопируйте значение URL-адрес HTTP POST, нажав кнопку копирования рядом с этим параметром.
Сохраните этот URL-адрес, чтобы его можно было использовать в следующем разделе.
Настройка подписки на события Центра Интернета вещей
В этом разделе вы настроите Центр Интернета вещей для публикации событий по мере их появления.
Найдите нужный Центр Интернета вещей на портале Azure.
Выберите События.
Выберите + Подписка на события.
Заполните сведения о подписке на события: укажите описательное имя и выберите схему сетки событий в качестве схемы событий.
Создайте имя системного раздела для ресурса Центра Интернета вещей.
Заполните поля Типы событий. В раскрывающемся списке в меню выберите только Устройство подключено и Устройство отключено. Щелкните в любом месте экрана, чтобы закрыть список и сохранить настройки.
Сведения о конечной точке: выберите для типа конечной точки значение Веб-перехватчик, щелкните выбранную конечную точку, вставьте URL-адрес, скопированный из приложения логики, и подтвердите выбор.
Теперь форма должна выглядеть как в показанном ниже примере:
Нажмите Создать, чтобы сохранить подписку на события.
Внимание
Подождите несколько минут, пока событие будет обработано перед запуском устройства. В любое время, когда службы Azure создаются или изменяются, инициируя следующий шаг в конвейере слишком скоро, может привести к ненужным ошибкам. Например, если центр Интернета вещей не находится в активном состоянии, он не будет готов к получению событий. Проверьте страницу обзора Центра Интернета вещей, чтобы узнать, находится ли центр Интернета вещей в активном состоянии или нет. Если это не так, вы увидите предупреждение в верхней части страницы.
Запуск устройства и наблюдение за событиями
Теперь, когда ваша подписка на события настроена, давайте протестируем, подключив устройство.
Регистрация устройства в Центре Интернета вещей
В Центре Интернета вещей выберите Устройства.
Нажмите кнопку " + Добавить устройство " в верхней части области.
В поле Идентификатор устройства введите
Demo-Device-1
.Выберите Сохранить.
Щелкните устройство еще раз. Теперь строки подключения и ключи будут заполнены. Скопируйте и сохраните основную строку подключения для последующего использования.
Запуск симулятора Raspberry Pi
Давайте используем веб-симулятор Raspberry Pi для имитации подключения устройства.
Запустить симулятор Raspberry Pi
Запуск примера приложения в веб-симуляторе Raspberry Pi
В этом примере приложения активируется событие подключения устройства.
В области кода замените заполнитель в строке 15 на строку подключения устройства Центра Интернета вещей Azure, сохраненную в конце предыдущего раздела.
Запустите приложение, выбрав Запустить.
Должны отобразиться результаты, аналогичные следующему, которые содержат данные датчика и сообщения, отправляемые в Центр Интернета вещей.
Вы можете проверить страницу обзора приложения логики, чтобы проверить, активируется ли логика. Это будет говорить об успешном или неудачно. Ознакомьтесь с этой статьей, чтобы узнать состояние приложения логики, если требуется устранение неполадок. Ожидается задержка в 15–30 секунд при запуске триггера. Если вам нужно устранить неполадки с приложением логики, просмотрите эту статью об ошибках .
Нажмите кнопку "Остановить ", чтобы остановить симулятор, который активирует событие отключения устройства. Это событие войдет на страницу обзора приложения логики так же, как и событие подключения, зарегистрированное там.
Теперь вы запустите пример приложения для сбора событий подключения и отключения устройства, которые отправляются в Центр Интернета вещей.
Наблюдение за событиями в Azure Cosmos DB
Результаты выполняемого приложения логики можно просмотреть в документе Cosmos DB. Документ отображается в коллекции "Элементы " при обновлении страницы. Каждое событие состояния подключения создает новый документ, назначаемый уникальным id
. На следующем рисунке показан документ, созданный при запуске устройства (подключено). Тип подключенного события указан в выходных данных JSON.
Использование командной строки Azure CLI
Вместо того чтобы использовать портал Azure, шаги для работы с Центром Интернета вещей можно выполнить с помощью Azure CLI. С дополнительными сведениями можно ознакомиться в статьях, посвященных созданию подписки на события и устройств Интернета вещей с использованием Azure CLI.
Очистка ресурсов
В этом руководстве используются ресурсы, за которые в подписке Azure предусмотрена плата. По завершении работы с этим учебником и тестирования результатов отключите или удалите ресурсы, которые больше не нужны.
Приложение логики
Чтобы не потерять работу, проделанную в приложении логики, мы рекомендуем отключить ресурсы, а не удалять их.
Перейдите в приложение логики.
В колонке Обзор выберите Удалить или Отключить.
В подписке может быть только один бесплатный Центр Интернета вещей. Если для работы с этим руководством вы создали бесплатный Центр Интернета вещей, его можно не удалять, так как никакая плата взиматься не будет.
Центр Интернета вещей или сетка событий
Перейдите в Центр Интернета вещей.
В колонке Обзор выберите Удалить.
Даже если вы не удалите свой Центр Интернета вещей, вы можете удалить созданную подписку на события. В Центре Интернета вещей выберите Сетка событий.
Выберите подписку на события, которую вы хотите удалить, а затем нажмите кнопку "Удалить".
Cosmos DB
Чтобы удалить учетную запись Azure Cosmos DB из портал Azure, перейдите к ресурсу и выберите "Удалить учетную запись" в верхней строке меню. Подробные инструкции см. в разделе Удаление учетной записи Azure Cosmos DB.
Следующие шаги
Узнайте больше о реагировании на события в Центре Интернета вещей, используя службу "Сетка событий" для запуска действий.
Send email notifications about Azure IoT Hub events using Logic Apps (Отправка уведомлений электронной почты о событиях в Центре Интернета вещей Azure с помощью Logic Apps)
Узнайте о дополнительных возможностях службы Сетка событий.
Узнайте, как использовать Сетку событий и Azure Monitor для мониторинга, диагностики и устранения неполадок подключения устройств к Центру Интернета вещей.