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


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

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

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

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

Процедуры, описанные в статье, используют следующие ресурсы:

  • Azure CLI
  • Центр Интернета вещей.
  • Служба конечных точек в Azure

Azure CLI

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

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

Центр Интернета вещей

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

Служба конечной точки

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

Определите, какую службу Azure вы хотите использовать в качестве конечной точки для получения перенаправленных устройств и данных событий: концентратор событий, очередь службы или раздел, учетная запись хранения или контейнер Cosmos DB. Чтобы использовать службу, выполните действия по созданию службы конечной точки.

  1. Создайте пространство имен Центров событий и концентратор событий. Дополнительные сведения см . в кратком руководстве по созданию концентратора событий с помощью Azure CLI.

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

    Совет

    name Значение RootManageSharedAccessKey параметра — это имя по умолчанию, которое позволяет управлять, отправлять, прослушивать утверждения (access). Если вы хотите ограничить утверждения, присвойте name параметру собственное уникальное имя и включите --rights флаг, за которым следует одно из утверждений. Например, --name my-name --rights Send.

    az eventhubs eventhub authorization-rule create --resource-group my-resource-group --namespace-name my-routing-namespace --eventhub-name my-event-hubs --name RootManageSharedAccessKey
    

    Дополнительные сведения см. в статье "Авторизация доступа к Центры событий Azure".

Создание конечной точки

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

Примечание.

В этой статье используется группа команд az iot hub message-endpoint , которая появилась в версии 0.19.0 расширения Azure-iot для Azure CLI. Предыдущие версии расширения Azure-iot использовали группу команд az iot hub routing-endpoint , которая аналогична и по-прежнему поддерживается, но не поддерживает создание конечных точек Cosmos DB.

Используйте следующую команду, чтобы обновить до последней версии расширения Azure-iot:

az extension update --name azure-iot

Чтобы создать конечную точку Центров событий, используйте правило авторизации, созданное в предварительных требованиях.

  1. Используйте команду az eventhubs eventhub authorization-rule keys list для перечисления правила авторизации. Укажите следующие значения для параметров заполнителя:

    параметр значение
    eventhub_group Группа ресурсов концентратора событий.
    eventhub_namespace Имя пространства имен Центров событий.
    eventhub_name Имя концентратора событий
    rule_name Имя правила авторизации для концентратора событий. Если вы скопировали пример в предварительных требованиях, это имя RootManageSharedAccessKey.
    az eventhubs eventhub authorization-rule keys list --resource-group {eventhub_group} --namespace-name {eventhub_namespace} --eventhub-name my-event-hubs --name {rule_name}
    
  2. Скопируйте строка подключения концентратора событий из выходных данных.

  3. Используйте команду az iot hub message-endpoint create eventhub, чтобы создать пользовательскую конечную точку. Укажите следующие значения для параметров заполнителя:

    параметр значение
    iothub_name Имя центра Интернета вещей, в котором создается эта конечная точка.
    endpoint_name Уникальное имя новой конечной точки.
    eventhub_subscription Идентификатор подписки концентратора событий. Этот аргумент может быть оставлен, если концентратор событий находится в той же подписке, что и Центр Интернета вещей.
    eventhub_group Группа ресурсов концентратора событий. Этот аргумент может быть оставлен, если концентратор событий находится в той же группе ресурсов, что и Центр Интернета вещей.
    eventhub_connection_string Строка подключения, скопированные из правила авторизации концентратора событий.
    az iot hub message-endpoint create eventhub --hub-name {iothub_name} --endpoint-name {endpoint_name}  --connection-string "{eventhub_connection_string}" --endpoint-subscription-id {eventhub_subscription} --endpoint-resource-group {eventhub_group}
    

Удаление конечной точки

Если вы хотите удалить конечную точку из Центра Интернета вещей, используйте команду az iot hub message-endpoint delete . С помощью этой команды можно удалить одну конечную точку, удалить все конечные точки одного типа или удалить все конечные точки из концентратора.

Например, следующая команда удаляет все конечные точки в Центре Интернета вещей, указывающие на ресурсы хранилища:

az iot hub message-endpoint delete --hub-name {iothub_name} --endpoint-type storage-container

Создание маршрута Центр Интернета вещей

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

Примечание.

В этой статье используется группа команд az iot hub message-route , которая была представлена в версии 0.19.0 расширения Azure-iot для Azure CLI. Предыдущие версии расширения azure-iot использовали группу команд команд маршрута az iot hub , которая по-прежнему поддерживается.

Используйте следующую команду, чтобы обновить до последней версии расширения Azure-iot:

az extension update --name azure-iot
  1. Используйте команду az iot hub message-route create, чтобы создать новый маршрут Центр Интернета вещей с помощью этой конечной точки. Укажите следующие значения для параметров заполнителя:

    параметр значение
    iothub_name Имя Центра Интернета вещей, в котором создается этот маршрут.
    route_name Уникальное имя нового маршрута.
    endpoint_name Имя конечной точки, в которую маршрут отправляет данные.
    data_source Источник маршрута. Допустимые значения: deviceconnectionstateevents, , devicejoblifecycleevents, devicelifecycleeventsdevicemessages, digitaltwinchangeevents, invalidили twinchangeevents.
    az iot hub message-route create --hub-name {iothub_name} --route-name {route_name} --endpoint-name {endpoint_name} --source {data_source}
    
  2. Чтобы убедиться, что новый маршрут находится в Центре Интернета вещей, используйте команду az iot hub message-route list , чтобы просмотреть все маршруты в Центре Интернета вещей:

    az iot hub message-route list --hub-name {iothub_name}
    

    Вы увидите ответ в Azure CLI, аналогичном следующему примеру:

    [
       {
         "condition": "true",
         "endpointNames": [
           "endpoint_name"
         ],
         "isEnabled": true,
         "name": "route_name",
         "source": "DeviceConnectionStateEvents"
       }
    ]
    

Обновление маршрута Центр Интернета вещей

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

Используйте команду az iot hub message-route show для просмотра сведений о маршруте.

az iot hub message-route show --hub-name {iothub_name} --route-name {route_name}

Используйте команду az iot hub message-route update для обновления свойств маршрута. Например, следующая команда обновляет источник маршрута.

az iot hub message-route update --hub-name {iothub_name} --route-name {route_name} --source devicejoblifecycleevents

Удаление маршрута Центр Интернета вещей

Используйте команду az iot hub message-route delete, чтобы удалить маршрут из Центра Интернета вещей.

Удаление маршрута не удаляет конечную точку, так как другие маршруты могут указывать на ту же конечную точку. Если вы хотите удалить конечную точку, это можно сделать отдельно от удаления маршрута.

az iot hub message-route delete --hub-name {iothub_name} --route-name {route_name}

Управление резервным маршрутом

Резервный маршрут отправляет все сообщения из devicemessages источника, не удовлетворяющие условиям запроса ни одного из существующих маршрутов в встроенную конечную точку.

Используйте команду az iot hub message-route fallback show, чтобы просмотреть состояние резервного маршрута в Центре Интернета вещей.

az iot hub message-route fallback show --hub-name {iothub_name}

Используйте команду az iot hub message-route fallback set, чтобы включить или отключить резервный маршрут в Центре Интернета вещей.

az iot hub message-route fallback set --hub-name {iothub_name} --enabled {true_false}

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

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

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