Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обогащение сообщений — это возможность Центра Интернета вещей Azure помечать сообщения, добавляя к ним дополнительные сведения, перед их отправкой в целевую конечную точку. Одной из причин для использования обогащений сообщений является включение данных, с помощью которых можно упростить последующую обработку. Например, обогащение сообщений устройства тегом двойника устройства позволяет уменьшить нагрузку для клиентов, уменьшая необходимость в вызовах API двойника устройства для получения этой информации. Дополнительные сведения см. в статье Общие сведения об обогащениях сообщений.
В первой части этого руководства вы узнали, как создавать пользовательские конечные точки и маршрутизировать сообщения в другие службы Azure. В этом руководстве вы увидите, как создать и настроить дополнительные ресурсы, необходимые для тестирования обогащений сообщений в центре Интернета вещей. Ресурсы включают второй контейнер хранилища для существующей учетной записи хранения (созданной в первой части руководства), в котором будут размещаться обогащенные сообщения, и маршрут отправки сообщений. После создания конфигураций для маршрутизации и обогащения сообщений вы воспользуетесь приложением для отправки сообщений в центр Интернета вещей. Центр затем перенаправит их в оба контейнера хранения. Обогащаются только те сообщения, которые отправляются в конечную точку для контейнера enriched хранения.
В этом руководстве вы выполните следующие задачи:
- Создайте второй контейнер в учетной записи хранения.
- Создайте еще одну пользовательскую конечную точку и перенаправьте в нее сообщения из центра Интернета вещей.
- Настройте обогащения сообщений, которые направляются в новую конечную точку.
- Запуск приложения, которое имитирует устройство Интернета вещей, отправляющее сообщения в центр.
- Просмотрите результаты и убедитесь, что улучшения сообщений применяются к целевым сообщениям.
Предварительные условия
У вас должна быть подписка Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Необходимо пройти обучение Учебное пособие: Отправка данных устройства в хранилище Azure с помощью маршрутизации сообщений IoT Hub и сохранить созданные для этого ресурсы.
Убедитесь, что в брандмауэре открыт порт 8883. Пример устройства в этом руководстве использует протокол MQTT, который передает данные через порт 8883. В некоторых корпоративных и академических сетях этот порт может быть заблокирован. Дополнительные сведения и способы устранения этой проблемы см. в разделе о подключении к Центру Интернета вещей по протоколу MQTT.
Для портала Azure нет других предварительных требований.
Создание второго контейнера в учетной записи хранения
В первой части этого руководства вы создали учетную запись хранения и контейнер для перенаправленных сообщений. Теперь необходимо создать второй контейнер для обогащенных сообщений.
На портале Azure найдите раздел Учетные записи хранения.
Выберите учетную запись, созданную ранее.
В меню учетной записи хранения выберите Контейнеры в разделе Хранилище данных.
Выберите Контейнер, чтобы создать контейнер.
Присвойте контейнеру
enriched
имя и нажмите кнопку "Создать".
Маршрутизация сообщений во вторую конечную точку
Создайте вторую конечную точку и маршрут для обогащенных сообщений.
Внимание
В этой статье содержатся шаги по подключению к службе с помощью подписанного URL-адреса. Этот метод проверки подлинности удобнее для тестирования и оценки, но проверка подлинности в службе с помощью идентификатора Microsoft Entra или управляемых удостоверений является более безопасным подходом. Дополнительные сведения см. в рекомендациях по безопасности решений > Интернета вещей Cloud Security.
Найдите нужный Центр Интернета вещей на портале Azure.
В меню ресурсов в разделе "Параметры Центра" выберите маршрутизацию сообщений и нажмите кнопку "Добавить".
На вкладке "Конечная точка" создайте конечную точку хранилища, указав следующие сведения:
Параметр Значение Тип конечной точки Выберите Хранилище. Имя конечной точки Введите ContosoStorageEndpointEnriched
.Контейнер хранилища Azure Щелкните Выберите контейнер. Следуйте инструкциям, чтобы выбрать учетную запись хранения и обогащенный контейнер, созданный в предыдущем разделе. Кодирование Выберите JSON. Если это поле неактивно, регион вашей учетной записи хранения не поддерживает JSON. В этом случае продолжайте использовать AVRO по умолчанию. Примите значения по умолчанию для остальных параметров и нажмите кнопку "Создать+ далее".
Продолжайте создавать новый маршрут, после добавления конечной точки хранилища. Укажите следующую информацию для нового маршрута:
Параметр Значение Имя ContosoStorageRouteEnriched (КонтосоХранилищеМаршрутОбогащенный) Источник данных Убедитесь, что в раскрывающемся списке выбраны Сообщения телеметрии устройства. Включить маршрут Убедитесь в том, что для этого поля задано значение enabled
.Маршрутизация запроса Введите level="storage"
как строку запроса.Выберите Создать и добавить обогащения.
Добавление обогащения сообщений в новый конечный пункт
Создайте три обогащения сообщений, которые будут перенаправлены в контейнер хранилища enriched.
На вкладке «Обогащение» мастера добавления маршрута добавьте три обогащения для сообщений, поступающих в конечную точку для контейнера хранилища, который называется enriched.
Добавьте эти значения в качестве обогащения сообщений для конечной точки ContosoStorageEndpointEnriched:
Имя. Значение myIotHub $hubname
Расположение устройства $twin.tags.location
(предполагается, что двойник устройства снабжен тегом местоположение)идентификатор клиента 6ce345b8-1e4a-411e-9398-d34587459a3a
Когда вы закончите, ваши улучшения должны выглядеть примерно так, как на этом изображении:
Нажмите кнопку "Добавить ", чтобы добавить обогащения сообщений.
Теперь у вас есть обогащения сообщений, настроенные для всех сообщений, перенаправленных в конечную точку, созданную для обогащенных сообщений. Если вы не хотите добавлять тег расположения в двойник устройства, можно перейти к разделу Тестирование обогащений сообщений, чтобы продолжить изучение этого руководства.
Добавление тега location к двойнику устройства
Одно из обогащенных сообщений, настроенных в центре Интернета вещей, позволяет указать ключ DeviceLocation, значение которого определяется следующим путем двойника устройства: $twin.tags.location
. Если у двойника устройства нет тега расположения, путь к двойнику $twin.tags.location
будет помечен как строка для ключа DeviceLocation в обогащениях сообщений.
Выполните указанные ниже действия, чтобы добавить тег расположения для двойника устройства:
Перейдите в Центр Интернета вещей на портале Azure.
Выберите устройства в меню навигации центра Интернета вещей, а затем выберите свое устройство.
Откройте вкладку Двойник устройства в верхней части страницы устройства и добавьте указанную ниже строку непосредственно перед закрывающей фигурной скобкой в нижней части двойника. Затем выберите Сохранить.
, "tags": {"location": "Plant 43"}
Совет
Подождите примерно пять минут, прежде чем переходить к следующему разделу. Обновление двойника устройства может занять некоторое время, после чего изменения будут отражены в значениях обогащенных сообщений.
Дополнительные сведения о том, как пути двойника устройства обрабатываются с помощью обогащенных сообщений, см. в разделе Ограничения обогащения сообщений. Узнать больше о двойниках устройств можно в разделе Общие сведения о двойниках устройств и их использование в Центре Интернета вещей.
Тестирование обогащений сообщений
Теперь, когда для конечной точки ContosoStorageEndpointEnriched настроены обогащения сообщений, запустите приложение имитированного устройства, чтобы отправить сообщения в центр Интернета вещей. На этом этапе маршрутизация сообщений настроена следующим образом:
Сообщения, направляемые в конечную точку хранилища, созданную в первой части руководства, не будут обогащаться и будут сохраняться в созданном контейнере хранилища.
Сообщения, направляемые в конечную точку службы хранилища ContosoStorageEndpointEnriched, будут обогащаться и будут сохраняться в контейнере enriched учетной записи хранения.
Если вы еще не запустили консольное приложение SimulatedDevice из первой части этого руководства, запустите его:
Совет
Если вы выполняете действия Azure CLI для этого руководства, запустите пример кода в отдельном сеансе. Таким образом, вы можете разрешить примеру кода продолжать работу, пока вы выполняете остальные действия интерфейса командной строки.
В папке примера перейдите к папке
/iot-hub/Tutorials/Routing/SimulatedDevice/
.Определения переменных, которые вы обновили ранее, по-прежнему должны быть допустимыми. Если это не так, измените их в файле
Program.cs
:Найдите определения переменных в верхней части класса Программы. Обновите следующие переменные с помощью собственных данных:
- s_myDeviceId. Идентификатор устройства, назначенный при регистрации устройства в центре Интернета вещей.
-
s_iotHubUri: имя узла центра Интернета вещей, которое принимает формат
IOTHUB_NAME.azure-devices.net
. - s_deviceKey: первичный ключ устройства, указанный в сведениях об удостоверении устройства.
Сохранить и закрыть файл.
Запустите пример кода:
dotnet run
Дайте консольному приложению поработать несколько минут и просмотрите данные:
Войдите в свою учетную запись хранения на портале Azure.
Выберите Обозреватель хранилища в меню навигации. Выберите контейнеры Blob, чтобы просмотреть два контейнера, созданные в ходе этих руководств.
Сообщения в контейнере с именем enriched содержат обогащения, включенные в сообщения. Сообщения в контейнере, созданном ранее, представляют собой необработанные сообщения без обогащений. Раскройте содержимое контейнера enriched до нижнего уровня и откройте последний файл сообщения. Затем сделайте то же самое для другого контейнера, чтобы убедиться, что один из них обогащён, а другой — нет.
Если вы просматриваете обогащенные сообщения, вы должны увидеть "myIotHub"
с именем хаба, местоположением и идентификатором клиента, например, следующим образом:
{
"EnqueuedTimeUtc":"2019-05-10T06:06:32.7220000Z",
"Properties":
{
"level":"storage",
"myIotHub":"{your hub name}",
"DeviceLocation":"Plant 43",
"customerID":"6ce345b8-1e4a-411e-9398-d34587459a3a"
},
"SystemProperties":
{
"connectionDeviceId":"Contoso-Test-Device",
"connectionAuthMethod":"{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}",
"connectionDeviceGenerationId":"636930642531278483",
"enqueuedTime":"2019-05-10T06:06:32.7220000Z"
},"Body":"eyJkZXZpY2VJZCI6IkNvbnRvc28tVGVzdC1EZXZpY2UiLCJ0ZW1wZXJhdHVyZSI6MjkuMjMyMDE2ODQ4MDQyNjE1LCJodW1pZGl0eSI6NjQuMzA1MzQ5NjkyODQ0NDg3LCJwb2ludEluZm8iOiJUaGlzIGlzIGEgc3RvcmFnZSBtZXNzYWdlLiJ9"
}
Очистка ресурсов
Чтобы удалить все ресурсы, которые были созданы в обоих частях этого руководства, удалите группу ресурсов. При этом будут также удалены все ресурсы, содержащиеся в группе. Если вы не хотите удалять всю группу ресурсов, можно выбрать отдельные ресурсы для удаления.
- В портале Azure перейдите к группе ресурсов, содержащей Центр Интернета вещей и учетную запись хранения для этого руководства.
- Просмотрите все ресурсы, которые находятся в группе ресурсов, чтобы определить, какие ресурсы необходимо очистить.
- Если вы хотите удалить ресурс, щелкните Удалить группу ресурсов.
- Если требуется удалить только определенный ресурс, установите флажки рядом с каждым именем ресурса, чтобы выбрать те, которые требуется удалить. Затем выберите Удалить.
Следующие шаги
При работе с этим руководством вы настроили и проверили обогащение сообщений Центра Интернета вещей по мере их маршрутизации в конечную точку.
Дополнительные сведения об обогащении сообщений см. в статье Обзор обогащений сообщений.
Чтобы получить дополнительные сведения о Центре Интернета вещей, перейдите к следующему руководству.