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


Как автоматически перенести центр Интернета вещей с помощью Azure CLI

Используйте Azure CLI для переноса центра Интернета вещей в новый регион, новый уровень или новую конфигурацию.

Действия, описанные в этой статье, полезны, если вы хотите:

  • Обновление с уровня "Бесплатный" до базового или стандартного центра Интернета вещей.
  • Переместите центр Интернета вещей в новый регион.
  • Экспорт сведений о состоянии центра Интернета вещей для резервного копирования.
  • Увеличьте количество секций для Центра Интернета вещей.
  • Настройте концентратор для разработки, а не рабочей среды.

Сравнение действий автоматической и ручной миграции

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

  • Процесс Azure CLI (эта статья):

    • Переносит реестр устройств, сведения о маршрутизации и конечной точке и другие сведения о конфигурации, такие как развертывания IoT Edge или конфигурации автоматического управления устройствами.
    • Проще перенести небольшое количество устройств (например, до 10 000).
    • Не требуется учетная запись служба хранилища Azure.
    • Собирает строка подключения для маршрутизации и отправки файлов конечных точек, использующих проверку подлинности на основе ключей, и включает их в выходные данные шаблона ARM.
  • Процесс вручную:

    • Переносит реестр устройств и сведения о маршрутизации и конечной точке. Необходимо вручную повторно создать другие сведения о конфигурации в новом Центре Интернета вещей.
    • Быстрее выполняется миграция большого количества устройств (например, более 100 000).
    • Использует учетную запись служба хранилища Azure для передачи реестра устройств.
    • Scrubs строка подключения для маршрутизации и отправки файлов конечных точек, использующих проверку подлинности на основе ключей из выходных данных шаблона ARM, и необходимо вручную добавить их обратно.

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

  • Azure CLI

    Для функций, описанных в этой статье, требуется версия 0.20.0 или более позднюю версию расширения azure-iot . Чтобы проверить версию расширения, выполните команду az --version. Чтобы обновить расширение, выполните команду az extension update --name azure-iot.

    Если у вас по-прежнему установлено устаревшее расширение azure-cli-iot-ext , удалите это расширение перед добавлением расширения Azure-iot .

Состояние центра Интернета вещей

Когда мы говорим о переносе состояния центра Интернета вещей, мы говорим о сочетании трех аспектов:

  • Ресурсы Azure Resource Manager (ARM). Этот аспект — это все, что можно определить в шаблоне ресурсов, и это те же сведения, которые вы бы получили, если вы экспортировали шаблон ресурсов из центра Интернета вещей в портал Azure. Сведения, собираемые в рамках аспекта Azure Resource Manager, включают:

    • Время хранения встроенного концентратора событий
    • Сертификаты
    • Свойства облачного устройства
    • Отключение SAS устройства
    • Отключение локальной проверки подлинности
    • Включение уведомлений о отправке файлов
    • Конечная точка хранилища отправки файлов
    • Удостоверения
      • Удостоверения, назначенные пользователем
      • Назначаемые системой удостоверения (включено или отключены)
    • Наборы сетевых правил
    • Маршрутизация
      • Пользовательские конечные точки
      • Резервный маршрут
      • Маршруты
    • Теги
  • Configurations (Назад: конфигурации). Этот аспект предназначен для аспектов Центра Интернета вещей, которые не представлены в шаблоне ARM. В частности, этот аспект охватывает конфигурации автоматического управления устройствами и развертывания IoT Edge.

  • Устройства. Этот аспект представляет сведения в реестре устройств, которые включают в себя:

    • Удостоверения устройств и двойники
    • Удостоверения модулей и двойники

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

Экспорт состояния Центра Интернета вещей

Используйте команду экспорта состояния az iot hub для экспорта состояния Центра Интернета вещей в JSON-файл.

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

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

Параметр Сведения
--aspects Аспекты состояния для экспорта. Укажите одно или несколько принятых значений: arm, configurations или devices. Если этот параметр не установлен, экспортируются все три аспекта.
--state-file -f Путь к файлу, в котором записываются сведения о состоянии.
--replace -r Если этот параметр включен, команда экспорта перезаписывает содержимое файла состояния.
--hub-name -n
or
--login -l
Имя центра Интернета вещей источника (-n) или строка подключения для центра Интернета вещей источника (-l). Если оба указаны, то строка подключения принимает приоритет.
--resource-group -g Имя группы ресурсов для центра Интернета вещей источника.

В следующем примере экспортируются все аспекты состояния центра Интернета вещей в файл с именем myHub-state:

az iot hub state export --hub-name myHub --state-file ./myHub-state.json

В следующем примере экспортируются только устройства и аспекты Azure Resource Manager состояния центра Интернета вещей, а содержимое существующего файла перезаписывается:

az iot hub state export --hub-name myHub --state-file ./myHub-state.json --aspects arm devices --replace

Экспорт конечных точек

Если вы решили экспортировать аспект Azure Resource Manager центра Интернета вещей, команда экспорта извлекает строка подключения для любых конечных точек с проверкой подлинности на основе ключей и включает их в выходной шаблон ARM.

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

Импорт состояния Центра Интернета вещей

Используйте команду импорта состояния az iot hub для импорта сведений о состоянии из экспортированного файла в новый или существующий Центр Интернета вещей.

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

Параметр Сведения
--aspects Аспекты состояния для импорта. Укажите одно или несколько принятых значений: arm, configurations или devices. Если этот параметр не установлен, импортируются все три аспекта.
--state-file -f Путь к экспортируемму файлу состояния.
--replace -r Если этот параметр включен, команда импорта удаляет текущее состояние целевого концентратора.
--hub-name -n
or
--login -l
Имя целевого Центра Интернета вещей (-n) или строка подключения для целевого Центра Интернета вещей (-l). Если оба указаны, то строка подключения принимает приоритет.
--resource-group -g Имя группы ресурсов для целевого Центра Интернета вещей.

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

az iot hub state import --hub-name myNewHub --state-file ./myHub-state.json

В следующем примере импортируются только аспекты устройств и конфигураций в новый центр Интернета вещей, который уже должен существовать, и перезаписывает все существующие устройства и конфигурации:

az iot hub state import --hub-name myNewHub --state-file ./myHub-state.json --aspects devices configurations --replace

Создание центра Интернета вещей с импортом состояния

Вы можете использовать az iot hub state import команду для создания нового центра Интернета вещей или записи в существующий Центр Интернета вещей.

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

Если целевой концентратор не существует, --resource-group параметр также требуется для команды импорта.

Обновление существующего Центра Интернета вещей с помощью импорта состояния

Если целевой Центр Интернета вещей уже существует, arm для команды не требуется az iot hub state import аспект. Если включить arm аспект, все свойства ресурсов будут перезаписаны, за исключением следующих свойств, которые невозможно изменить после создания концентратора:

  • Расположение
  • Номер SKU
  • Встроенное число секций Центров событий
  • Место расположения данных
  • Функции

--resource-group Если указана в команде импорта и отличается от текущей группы ресурсов Центра Интернета вещей, команда завершается ошибкой, так как она пытается создать новый концентратор с тем же именем, что и тот, который уже существует.

Если флаг включен --replace в команду импорта, то следующие аспекты Центра Интернета вещей удаляются из целевого центра перед отправкой состояния концентратора:

  • ARM: удаляются все отправленные сертификаты в целевом центре. Если сертификат присутствует, необходимо обновить etag.
  • Устройства: удаляются все устройства и модули, пограничные и неграничные.
  • Конфигурации: удаляются все конфигурации управления устройствами и развертывания IoT Edge.

Перенос центра Интернета вещей

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

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

Если вы переносите реестр устройств с несколькими устройствами (например, несколько сотен или несколько тысяч), это может быть проще и быстрее для выполнения команд экспорта и импорта отдельно, а не выполнения команды миграции.

Параметр Сведения
--aspects Аспекты состояния для миграции. Укажите одно или несколько принятых значений: arm, configurations или devices. Если этот параметр не установлен, переносятся все три аспекта.
--replace -r Если этот параметр включен, команда миграции удаляет текущее состояние целевого концентратора.
--destination-hub --dh
or
--destination-hub-login --dl
Имя целевого Центра Интернета вещей (--dh) или строка подключения для целевого Центра Интернета вещей (--dl). Если оба указаны, то строка подключения принимает приоритет.
--destination-resource-group --dg Имя группы ресурсов для целевого Центра Интернета вещей. Целевая группа ресурсов требуется, если целевой концентратор не существует.
--origin-hub --oh
or
--origin-hub-login --ol
Имя центра Интернета вещей источника (--oh) или строка подключения для центра Интернета вещей источника (--ol). Если оба указаны, то строка подключения принимает приоритет. Используйте строка подключения, чтобы избежать необходимости входа в сеанс Azure CLI.
--origin-resource-group --og Имя группы ресурсов для центра Интернета вещей источника.

В следующем примере переносятся все аспекты исходного концентратора в целевой концентратор, который создается, если он не существует:

az iot hub state migrate --origin-hub myHub --origin-resource-group myGroup  --destination-hub myNewHub --destination-resource-group myNewGroup

Устранение неполадок при миграции

Если вы не можете экспортировать или импортировать устройства или конфигурации, убедитесь, что у вас есть доступ к этим свойствам. Одним из способов проверки доступа является выполнение az iot hub device-identity list команд или az iot hub configuration list команд.

Если команда завершается az iot hub state migrate ошибкой, попробуйте выполнить команды экспорта и импорта отдельно. Две команды приводят к тому же функциональным возможностям, что и только команда миграции, но, выполнив их отдельно, можно просмотреть файлы состояния, созданные из команды экспорта.

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

Дополнительные сведения о выполнении массовых операций в реестре удостоверений в Центре Интернета вещей см. в разделе "Импорт и экспорт Центр Интернета вещей удостоверениях устройств".