Поделиться через


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

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

В этом руководстве вы выполните следующие задачи:

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

Предварительные условия

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

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

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

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

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

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

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

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

Внимание

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

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

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

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

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

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

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

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

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

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

Совет

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

  1. Если вы не сделали это в рамках предварительных требований, скачайте или клонируйте репозиторий Microsoft Azure IoT SDK для .NET с GitHub.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Снимок экрана, который показывает, как скопировать основную строку подключения для политики iothubowner Центра Интернета вещей на портале Azure.

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

  1. Откройте IoT-обозреватель на вашем компьютере для разработки.

  2. Если отображается, выберите "Подключиться через строку подключения Центра Интернета вещей".

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

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

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

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

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

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

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

  8. С устройством в рабочем состоянии выберите Пуск. Если устройство не запущено, данные телеметрии не отображаются.

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

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

    Снимок экрана: сообщения, поступающие в Центр Интернета вещей на встроенной конечной точке.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Маршрут к учетной записи облака

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

Примечание.

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

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

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

Внимание

В этой статье содержатся шаги по подключению к службе с помощью подписанного 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, использованные для этого руководства, удалите группу ресурсов Azure. При этом будут также удалены все ресурсы, содержащиеся в группе. Если вы не хотите удалять всю группу ресурсов, используйте портал Azure для поиска и удаления отдельных ресурсов.

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

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

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

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