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


Создание и удаление маршрутов и конечных точек с помощью Azure Resource Manager

В этой статье показано, как экспортировать шаблон Центр Интернета вещей Azure, добавить маршрут в центр Интернета вещей, а затем повторно развернуть шаблон в Центре Интернета вещей с помощью Azure CLI или Azure PowerShell. Используйте шаблон Azure Resource Manager для создания маршрутов и конечных точек. Центр Интернета вещей поддерживает следующие службы Azure в качестве конечных точек:

  • Контейнеры хранилища
  • Event Hubs
  • Очереди служебной шины
  • Разделы служебной шины
  • Cosmos DB

Шаблоны Azure Resource Manager полезны, если вы хотите определить ресурсы с помощью JSON-файла. Каждый ресурс Azure имеет шаблон, определяющий компоненты, используемые в этом ресурсе. Вы можете экспортировать все шаблоны ресурсов Azure.

Внимание

При использовании шаблона Resource Manager для развертывания ресурса шаблон заменяет существующий ресурс развернутого типа.

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

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

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

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

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

Шаблон Azure Resource Manager

В этой статье используется шаблон Azure Resource Manager в портал Azure для работы с Центр Интернета вещей и другими службами Azure. Дополнительные сведения об использовании шаблонов Resource Manager см. в статье "Что такое шаблоны Azure Resource Manager?

Создание маршрута

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

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

Экспорт шаблона Resource Manager центра Интернета вещей

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

  1. Найдите нужный Центр Интернета вещей на портале Azure. В меню ресурсов в разделе "Автоматизация" выберите "Экспорт шаблона".

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

  2. На вкладке "Экспорт" на вкладке "Шаблон" выполните следующие действия:

    1. Просмотрите JSON-файл, созданный для центра Интернета вещей.

    2. Снимите флажок "Включить параметры".

    3. Выберите "Скачать ", чтобы скачать локальную копию JSON-файла.

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

    Шаблон содержит несколько заполнителей, которые можно использовать для добавления функций или служб в центр Интернета вещей. В этой статье добавьте значения только в свойства, вложенные в или вложенные routing.

Добавление конечной точки в шаблон

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

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

Добавьте конечную точку Центров событий в шаблон Resource Manager. Дополнительные сведения см. в статье "Маршрутизация шаблонов Azure Resource Manager" МаршрутизацияEventHubProperties.

  1. В JSON-файле найдите "endpoints": [] свойство, вложенное в "routing".

  2. Замените "endpoints": [] строку следующим кодом JSON:

    "endpoints": {
        "serviceBusQueues": [],
        "serviceBusTopics": [],
        "eventHubs": [
            {
                "endpointUri": "",
                "entityPath": "",
                "authenticationType": "identityBased",
                "identity": {
                    "userAssignedIdentity": ""
                },
                "name": "",
                "id": "",
                "subscriptionId": "",
                "resourceGroup": ""
            }
        ],
        "storageContainers": [],
        "cosmosDBSqlContainers": []
    },
    
  3. Обновите JSON со следующими сведениями о ресурсе Центров событий:

    Свойство Значение
    endpointUri (Если тип проверки подлинности имеет значение identityBased; в противном случае удалите.) Имя узла пространства имен Центров событий в формате sb://<eventhubs_namespace_name>.servicebus.windows.net
    entityPath (Если тип проверки подлинности имеет значение identityBased; в противном случае удалите.) Имя концентратора событий.
    authenticationType identityBased или keyBased. Корпорация Майкрософт рекомендует использовать проверку подлинности на основе удостоверений в качестве более безопасного варианта.
    identity (Если тип проверки подлинности имеет значение identityBased.) Управляемое удостоверение, назначаемое пользователем, или управляемое удостоверение, назначаемое системой, можно использовать, если Центр Интернета вещей имеет управляемое удостоверение, назначаемое системой.

    Для назначаемого пользователем: внешний идентификатор управляемого удостоверения с разрешениями на доступ к концентратору событий в формате /subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity_name>.

    Для назначаемого системой: оставьте параметр удостоверения пустым списком. Например: "identity": {},
    connectionString (Если тип проверки подлинности имеет значение keyBased.) Основной строка подключения из одной из политик общего доступа концентратора событий в формате<connection_string>;EntityPath=<event_hub_name>., который можно получить из портал Azure значение строка подключения, а затем добавить путь сущности.
    name Укажите уникальное значение для имени конечной точки.
    id Оставьте пустой строкой. Служба Azure предоставляет значение при создании конечной точки.
    subscriptionId Идентификатор подписки, содержащей концентратор событий.
    resourceGroup Имя группы ресурсов, содержащей концентратор событий.

Добавление маршрута в шаблон

Добавьте определение маршрута в шаблон Resource Manager. Дополнительные сведения см. в статье о шаблоне RouteProperties в Azure Resource Manager.

  1. В JSON-файле найдите "routes": [] свойство, вложенное в "routing"папку и добавьте новый маршрут.

    Внимание

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

    "routes": [
        {
            "name": "",
            "source": "DeviceConnectionStateEvents",
            "condition": "true",
            "endpointNames": [
                ""
            ],
            "isEnabled": true
        }
    ],
    
  2. Обновите JSON со следующими сведениями о ресурсе Cosmos DB:

    Свойство Значение
    name Укажите уникальное значение для имени маршрута.
    source Выберите источник сообщений или журналов событий для маршрутизации в конечную точку. Список исходных параметров см. в статье az iot hub route.
    condition Запрос для фильтрации исходных данных. Если условие не требуется, скажем true. Дополнительные сведения см. в Центр Интернета вещей синтаксисе запросов маршрутизации сообщений.
    endpointNames Имя существующей конечной точки, в которой будут перенаправлены эти данные. В настоящее время разрешена только одна конечная точка.
    isEnabled Установите для true включения маршрута или false отключения маршрута.
  3. Сохраните JSON-файл.

Развертывание шаблона Resource Manager

После добавления новой конечной точки и маршрута к шаблону Resource Manager теперь можно развернуть JSON-файл обратно в Центре Интернета вещей.

Локальное развертывание

az deployment group create \
  --name my-iot-hub-template \
  --resource-group my-resource-group \
  --template-file "my\path\to\template.json"

Развертывание Azure Cloud Shell

Так как Azure Cloud Shell выполняется в веб-браузере, перед выполнением команды развертывания можно отправить файл шаблона. При отправке файла необходимо использовать только имя файла шаблона (вместо всего пути к файлу) для использования в параметре template-file .

Снимок экрана: расположение кнопки в Azure Cloud Shell для отправки файла.

az deployment group create \
  --name my-iot-hub-template \
  --resource-group my-resource-group \
  --template-file "template.json"

Примечание.

Если развертывание завершается сбоем, используйте параметр -verbose, чтобы получить сведения о создаваемых ресурсах. Используйте параметр -debug, чтобы получить дополнительные сведения для отладки.

Подтверждение развертывания

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

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

Чтобы просмотреть новый маршрут в портал Azure, перейдите к ресурсу Центр Интернета вещей. На вкладке "Маршруты" на вкладке "Маршруты" убедитесь, что указан маршрут.

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

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

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