Руководство: Отправка данных устройства в службу хранилища Azure с помощью маршрутизации сообщений Центра Интернета вещей

Используйте маршрутизацию сообщений в Центре Интернета вещей Azure для отправки данных телеметрии с устройств Интернета вещей в службы Azure, такие как хранилище BLOB-объектов, очереди Служебной шины, разделы Служебной шины и Центры событий. Каждый Центр Интернета вещей имеет встроенную конечную точку по умолчанию, совместимую с Центрами событий. Вы также можете создавать пользовательские конечные точки и маршрутизировать сообщения в другие службы Azure, определяя запросы маршрутизации. Каждое сообщение, поступающее в Центр Интернета вещей, направляется ко всем конечным точкам, которым соответствуют запросы маршрутизации. Если сообщение не соответствует ни одному из определенных запросов маршрутизации, оно направляется к конечной точке по умолчанию.

Вот какие шаги выполняются в этом руководстве:

  • Создайте Центр Интернета вещей и отправьте в него сообщения об устройстве.
  • Создание учетной записи хранения.
  • Создайте пользовательскую конечную точку для учетной записи хранения и перенаправьте в него сообщения из Центра Интернета вещей.
  • Просмотр сообщений устройства в большом двоичном объекте учетной записи хранения.

Необходимые компоненты

  • Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.

  • Центр Интернета вещей в подписке Azure. Если у вас еще нет центра, выполните действия, описанные в разделе Создание центра Интернета вещей.

  • В этом руководстве используется пример кода из пакета SDK Интернета вещей Azure для C#.

    • Скачайте или клонируйте репозиторий ПАКЕТА SDK на компьютер разработки.
    • На компьютере, на котором ведется разработка, необходимо установить .NET Core версии 3.0.0 или более поздней. Проверьте версию, запустив dotnet --version и скачайте .NET при необходимости.
  • Убедитесь, что в брандмауэре открыт порт 8883. Пример в этом руководстве использует протокол MQTT, который передает данные через порт 8883. В некоторых корпоративных и академических сетях этот порт может быть заблокирован. Дополнительные сведения и способы устранения этой проблемы см. в разделе о подключении к Центру Интернета вещей по протоколу MQTT.

  • По желанию, установите Обозреватель Интернета вещей Azure. Это средство помогает отслеживать сообщения по мере их поступления в Центр Интернета вещей. В этой статье используется Обозреватель Интернета вещей Azure.

Для портала Azure нет других предварительных требований.

Зарегистрируйте устройство и отправьте сообщения в Центр Интернета вещей

Зарегистрируйте новое устройство в вашем Центре Интернета вещей.

Внимание

В этой статье содержатся шаги по подключению устройства с помощью подписанного URL-адреса, также называемого проверкой подлинности симметричного ключа. Этот метод проверки подлинности удобнее для тестирования и оценки, но проверка подлинности устройства с помощью сертификатов X.509 является более безопасным подходом. Дополнительные сведения см. в разделе "Рекомендации > по обеспечению безопасности подключений".

  1. Войдите на портал Azure и перейдите к своему Центру Интернета вещей.

  2. Выберите Устройства в разделе Управление устройствами в меню.

  3. Выберите Добавить устройство.

    Снимок экрана: добавление нового устройства в портал Azure.

  4. Укажите идентификатор устройства и нажмите Сохранить.

  5. Новое устройство теперь должно появиться в списке устройств. Если оно не появилось, обновите страницу. Выберите идентификатор устройства, чтобы открыть страницу сведений об устройстве.

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

    Снимок экрана: копирование первичного ключа на странице сведений об устройстве.

Теперь, когда у вас есть идентификатор устройства и ключ, используйте пример кода, чтобы начать отправку сообщений телеметрии устройства в Центр Интернета вещей.

Совет

Если вы выполняете действия Azure CLI для этого руководства, запустите пример кода в отдельном сеансе. Таким образом, вы можете разрешить примеру кода продолжать работу, пока вы выполняете остальные действия интерфейса командной строки.

  1. Если вы не были в рамках предварительных требований, скачайте или клонируйте пакет SDK Для Интернета вещей Azure для репозитория C# из GitHub.

  2. В папке, в которой вы скачали или клонировали пакет SDK, перейдите в папку azure-iot-sdk-csharp\iothub\device\samples\how to guides\HubRoutingSample .

  3. Установите пакет SDK для Интернета вещей Azure C# и необходимые средства поддержки зависимостей, указанные HubRoutingSample.csproj в файле:

    dotnet restore
    
  4. Откройте файл Parameters.cs в выбранном редакторе. В этом файле представлены параметры, поддерживаемые примером. PrimaryConnectionString При запуске примера будет использоваться только параметр в этой статье. Просмотрите код в этом файле. Изменения не требуются.

  5. Выполните сборку и запуск примера кода с помощью следующей команды:

    Замените <myDevicePrimaryConnectionString> основной строка подключения с устройства в Центре Интернета вещей.

    dotnet run --PrimaryConnectionString <myDevicePrimaryConnectionString>
    
  6. Вы увидите сообщения, распечатываемые для вывода по мере их отправки в Центр Интернета вещей. Оставьте эту программу запущенной во время руководства.

Настройка Обозревателя Интернета вещей для просмотра сообщений

Настройте Обозреватель Интернета вещей для подключения к центру Интернета вещей и чтения сообщений по мере их поступления в встроенную конечную точку.

Для начала получите строку подключения для вашего Центра Интернета вещей.

  1. Найдите нужный Центр Интернета вещей на портале Azure.

  2. Выберите Политики общего доступа в разделе Параметров безопасности в меню.

  3. Выберите политику iothubowner.

    Открытие политики общего доступа iothubowner.

  4. Скопируйте основную строку подключения.

    Копирование основной строки подключения iothubowner.

Теперь используйте строку подключения, чтобы настроить Обозреватель Интернета вещей для Центра Интернета вещей.

  1. Откройте Обозреватель Центра Интернета вещей на компьютере, на котором ведется разработка.

  2. Выберите Добавить подключение.

    Снимок экрана: добавление подключения к центру Интернета вещей в обозревателе Интернета вещей.

  3. Вставьте строку подключения центра в текстовое поле.

  4. Выберите Сохранить.

  5. После подключения к Центру Интернета вещей вы увидите список устройств. Выберите идентификатор устройства, созданный для этого руководства.

  6. Выберите Телеметрия.

  7. При выполнении устройства нажмите кнопку "Пуск". Если устройство не запущено, вы не увидите данные телеметрии.

    Запуск мониторинга телеметрии устройства в Обозревателе Интернета вещей.

  8. Вы увидите сообщения, поступающие с устройства, с последними отображаемыми в верхней части экрана.

    Просмотр сообщений, поступащющих во встроенную конечную точку Центра Интернета вещей.

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

Все эти сообщения поступают во встроенную конечную точку по умолчанию для Центра Интернета вещей. В следующих разделах мы создадим пользовательскую конечную точку и перенаправим некоторые из этих сообщений в хранилище на основе свойств сообщения. Эти сообщения перестают отображаться в Обозревателе Интернета вещей, так как сообщения переходят только ко встроенной конечной точке, если они не соответствуют другим маршрутам в Центре Интернета вещей.

Настройка маршрутизации сообщений

Вы собираетесь направлять сообщения на разные ресурсы на основе свойств, прикрепленных к сообщению имитируемым устройством. Сообщения, которые не являются настраиваемыми, отправляются к конечной точке по умолчанию (сообщения/события).

Пример приложения для этого руководства назначает свойство уровня каждому сообщению, которое отправляется в Центр Интернета вещей. Каждому сообщению случайным образом назначается один из уровней: нормальный, хранилище или критический.

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

Создание учетной записи хранилища

Создайте учетную запись службы хранилища Azure и контейнер в этой учетной записи, в которой будут храниться направленные в нее сообщения устройства.

  1. На портале Azure найдите раздел Учетные записи хранения.

  2. Нажмите кнопку создания.

  3. Чтобы создать учетную запись хранения, введите следующие значения:

    Параметр Значение
    Подписка Выберите ту же подписку, которая содержит Центр Интернета вещей.
    Группа ресурсов Выберите группу ресурсов, которая содержит Центр Интернета вещей.
    Имя учетной записи хранения Придумайте уникальное имя учетной записи хранения.
    Производительность Примите значение Стандартная по умолчанию.

    Снимок экрана: создание учетной записи хранения.

  4. Вы можете принять все остальные значения по умолчанию, выбрав Просмотреть и создать.

  5. После завершения проверки щелкните Создать.

  6. По завершении развертывания выберите элемент Перейти к ресурсу.

  7. В меню учетной записи хранения выберите Контейнеры в разделе Хранилище данных.

  8. Выберите + Контейнер, чтобы создать контейнер.

    Снимок экрана: создание контейнера хранилища

  9. Введите имя контейнера и выберите Создать.

Маршрутизация в учетную запись хранения

Теперь настройте маршрутизацию для учетной записи хранения. В этом разделе вы определите новую конечную точку, которая указывает на созданную учетную запись хранения. Затем создайте маршрут, фильтрующий сообщения, для которых свойство уровень имеет значение Служба хранилища, и направляйте их в конечную точку хранилища.

Примечание.

Данные можно записывать в хранилище BLOB-объектов либо в формате Apache Avro, который выбран по умолчанию, либо в формате JSON.

Формат кодирования можно указать только во время настройки конечной точки хранилища BLOB-объектов. Для уже настроенной конечной точки формат изменить нельзя. Если используется кодирование JSON, в свойствах системы обмена сообщениями нужно установить для параметра contentType значение JSON, а для параметра contentEncoding — значение UTF-8.

Более подробные сведения об использовании конечной точки хранилища BLOB-объектов, см. в руководстве по маршрутизации в хранилище.

Внимание

В этой статье содержатся шаги по подключению к службе с помощью подписанного URL-адреса. Этот метод проверки подлинности удобнее для тестирования и оценки, но проверка подлинности в службе с помощью идентификатора Microsoft Entra или управляемых удостоверений является более безопасным подходом. Дополнительные сведения см. в статье "Рекомендации > по безопасности cloud security".

  1. Найдите нужный Центр Интернета вещей на портале Azure.

  2. В меню ресурсов в разделе "Параметры Центра" выберите маршрутизацию сообщений и нажмите кнопку "Добавить".

    Снимок экрана: расположение кнопки

  3. На вкладке "Конечная точка" создайте конечную точку хранилища, указав следующие сведения:

    Параметр Значение
    Тип конечной точки Выберите Хранилище.
    Имя конечной точки Укажите уникальное имя для этой конечной точки.
    Контейнер хранилища Azure Щелкните Выберите контейнер. Следуйте инструкциям, чтобы выбрать учетную запись хранения и контейнер, созданный в предыдущем разделе.
    Кодирование Выберите JSON. Если это поле неактивно, регион вашей учетной записи хранения не поддерживает JSON. В этом случае продолжайте использовать AVRO по умолчанию.

    Снимок экрана: панель

  4. Примите значения по умолчанию для остальных параметров и нажмите кнопку "Создать+ далее".

  5. На вкладке "Маршрут" укажите следующие сведения, чтобы создать маршрут, указывающий на созданную конечную точку хранилища:

    Параметр Значение
    Имя Создайте имя маршрута.
    Источник данных Убедитесь, что в раскрывающемся списке выбраны Сообщения телеметрии устройства.
    Включить маршрут Убедитесь, что это поле проверено.
    Маршрутизация запроса Введите level="storage" как строку запроса.

    Снимок экрана: добавление маршрута с запросом маршрутизации.

  6. Выберите "Создать и пропустить обогащения".

Просмотр перенаправленных сообщений

После создания и включения маршрута в Центре Интернета вещей он немедленно начнет маршрутизацию сообщений, которые соответствуют условию запроса в конечную точку хранилища.

Мониторинг встроенной конечной точки с помощью Обозревателя Интернета вещей

Вернитесь к сеансу Обозревателя Интернета вещей на компьютере, на котором ведется разработка. Помните, что Обозреватель Интернета вещей отслеживает встроенную конечную точку Центра Интернета вещей. Это означает, что теперь вы должны видеть только сообщения, которые не направляются пользовательским маршрутом, который мы создали.

Запустите пример еще раз, выполнив код. Просмотрите входящие сообщения в течение нескольких секунд, и вы увидите только сообщения, для которых level задано значение normal или critical.

Просмотр сообщений в контейнере хранилища

Убедитесь, что сообщения поступают в контейнер хранилища.

  1. Войдите в свою учетную запись хранения на портале Azure.

  2. Выберите Контейнеры в разделе Хранилище данных в меню.

  3. Выберите контейнер, созданный для этого руководства.

  4. Там должна быть папка с именем Центра Интернета вещей. Детализируйте структуру файлов до тех пор, пока не получите json-файл.

    Снимок экрана: поиск перенаправленных сообщений в хранилище.

  5. Выберите JSON-файл, а затем нажмите кнопку "Скачать ", чтобы скачать JSON-файл. Убедитесь, что файл содержит сообщения с устройства, для которых задано level свойство storage.

  6. Остановите выполнение примера.

Очистка ресурсов

Чтобы удалить все ресурсы, использованные для этого руководства, удалите группу ресурсов. При этом будут также удалены все ресурсы, содержащиеся в группе. Если вы не хотите удалять всю группу ресурсов, используйте портал Azure для поиска и удаления отдельных ресурсов.

Если вы планируете продолжить работу со следующим руководством, сохраните созданные здесь ресурсы.

  1. В портале Azure перейдите к группе ресурсов, содержащей Центр Интернета вещей и учетную запись хранения для этого руководства.
  2. Просмотрите все ресурсы, которые находятся в группе ресурсов, чтобы определить, какие ресурсы необходимо очистить.
    • Если вы хотите удалить ресурс, щелкните Удалить группу ресурсов.
    • Если требуется удалить только определенный ресурс, установите флажки рядом с каждым именем ресурса, чтобы выбрать те, которые требуется удалить. Затем выберите Удалить.

Следующие шаги

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