Краткое руководство. Настройка службы подготовки устройств Центр Интернета вещей (DPS) с помощью шаблона ARM

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

Шаблон Azure Resource Manager — это файл нотации объектов JavaScript (JSON), который определяет инфраструктуру и конфигурацию проекта. В шаблоне используется декларативный синтаксис. Вы описываете предполагаемое развертывание без написания последовательности команд программирования для создания развертывания.

В этом кратком руководстве используется портал Azure и Azure CLI для выполнения программных действий, необходимых для создания группы ресурсов и развертывания шаблона. Однако вы также можете использовать PowerShell, .NET, Ruby или другие языки программирования для выполнения этих действий и развертывания шаблона.

Если среда соответствует предварительным требованиям, и вы уже знакомы с использованием шаблонов ARM, при нажатии кнопки "Развернуть в Azure" откроется шаблон для развертывания в портал Azure.

Button to deploy the Resource Manager template to Azure.

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

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

  • Используйте среду 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.

Примечание.

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

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.12.40.16777",
      "templateHash": "13184692430416822033"
    }
  },
  "parameters": {
    "iotHubName": {
      "type": "string",
      "metadata": {
        "description": "Specify the name of the Iot hub."
      }
    },
    "provisioningServiceName": {
      "type": "string",
      "metadata": {
        "description": "Specify the name of the provisioning service."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Specify the location of the resources."
      }
    },
    "skuName": {
      "type": "string",
      "defaultValue": "S1",
      "metadata": {
        "description": "The SKU to use for the IoT Hub."
      }
    },
    "skuUnits": {
      "type": "int",
      "defaultValue": 1,
      "metadata": {
        "description": "The number of IoT Hub units."
      }
    }
  },
  "variables": {
    "iotHubKey": "iothubowner"
  },
  "resources": [
    {
      "type": "Microsoft.Devices/IotHubs",
      "apiVersion": "2021-07-02",
      "name": "[parameters('iotHubName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('skuName')]",
        "capacity": "[parameters('skuUnits')]"
      },
      "properties": {}
    },
    {
      "type": "Microsoft.Devices/provisioningServices",
      "apiVersion": "2022-02-05",
      "name": "[parameters('provisioningServiceName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('skuName')]",
        "capacity": "[parameters('skuUnits')]"
      },
      "properties": {
        "iotHubs": [
          {
            "connectionString": "[format('HostName={0};SharedAccessKeyName={1};SharedAccessKey={2}', reference(resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName')), '2021-07-02').hostName, variables('iotHubKey'), listkeys(resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName')), '2021-07-02').value[0].primaryKey)]",
            "location": "[parameters('location')]"
          }
        ]
      },
      "dependsOn": [
        "[resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName'))]"
      ]
    }
  ]
}

Два ресурса Azure определены в предыдущем шаблоне:

  • Microsoft.Devices/IotHubs: создает новый Центр Интернета вещей Azure.
  • Microsoft.Devices/provisioningServices: создает новую службу подготовки устройств Центр Интернета вещей Azure с новым центром Интернета вещей, который уже связан с ним.

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

Развертывание с помощью портала

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

    Button to deploy the Resource Manager template to Azure.

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

    ARM template deployment parameters on the portal

    Если иное не указано для следующих полей, используйте значение по умолчанию для создания ресурса Центра Iot и DPS.

    Поле Description
    Подписка Выберите свою подписку Azure.
    Группа ресурсов Нажмите кнопку "Создать" и введите уникальное имя группы ресурсов и нажмите кнопку "ОК".
    Регион Выберите регион для размещения ресурсов. Например, Восточная часть США. Для обеспечения устойчивости и надежности рекомендуется развернуть в одном из регионов, поддерживающих Зоны доступности.
    Имя центра Интернета вещей Введите имя центра Интернета вещей, которое должно быть глобально уникальным в пределах пространства имен .azure-devices.net. Это имя центра вам потребуется в следующем разделе при проверке развертывания.
    Имя службы подготовки Введите имя нового ресурса службы подготовки устройств (DPS). Это имя должно быть глобально уникальным в пределах пространства имен .azure-devices-provisioning.net. Это имя DPS вам потребуется в следующем разделе при проверке развертывания.
  3. На следующем экране ознакомьтесь с условиями. Если вы согласны со всеми условиями, нажмите кнопку "Создать".

    Развертывание занимает несколько минут.

    В дополнение к порталу Azure можно также использовать Azure PowerShell, Azure CLI и REST API. Дополнительные сведения о других методах развертывания см. в статье о развертывании с использованием шаблонов.

Развертывание с помощью Azure CLI

Для работы с Azure CLI потребуется версия 2.6 или более поздняя. Если вы используете Azure CLI локально, проверьте версию, выполнив следующую команду: az --version

Войдите в учетную запись Azure и выберите подписку.

  1. Если вы используете Azure CLI локально, а не выполняете его на портале, необходимо войти в систему. Чтобы войти в командную строку, выполните команду входа:

    az login
    

    Следуйте инструкциям, чтобы выполнить аутентификацию с использованием кода и войти в учетную запись Azure через веб-браузер.

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

    az account list -o table
    

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

    az account set --subscription {your subscription name or id}
    
  3. Скопируйте и вставьте в командную строку CLI приведенные ниже команды. Затем выполните команды, выбрав клавишу ВВОД.

    Совет

    Командная строка для расположения группы ресурсов. Список доступных расположений можно получить, выполнив такую команду:

    az account list-locations -o table

    read -p "Enter a project name that is used for generating resource names:" projectName &&
    read -p "Enter the location (i.e. centralus):" location &&
    templateUri="https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.devices/iothub-device-provisioning/azuredeploy.json" &&
    resourceGroupName="${projectName}rg" &&
    az group create --name $resourceGroupName --location "$location" &&
    az deployment group create --resource-group $resourceGroupName --template-uri  $templateUri &&
    echo "Press [ENTER] to continue ..." &&
    read
    
  4. В командной строке приведены следующие сведения. Укажите каждое значение и выберите клавишу ВВОД.

    Параметр Описание
    Имя проекта Значение этого параметра используется для создания группы ресурсов для хранения всех ресурсов. rg Строка добавляется в конец значения для имени группы ресурсов.
    расположение Это значение — регион, в котором создаются все ресурсы.
    iotHubName Введите имя центра Интернета вещей, которое должно быть глобально уникальным в пределах пространства имен .azure-devices.net. Это имя центра вам потребуется в следующем разделе при проверке развертывания.
    provisioningServiceName Введите имя нового ресурса службы подготовки устройств (DPS). Это имя должно быть глобально уникальным в пределах пространства имен .azure-devices-provisioning.net. Это имя DPS вам потребуется в следующем разделе при проверке развертывания.

    Azure CLI используется для развертывания шаблона. Помимо Azure CLI, вы можете использовать Azure PowerShell, портал Azure и REST API. Дополнительные сведения о других методах развертывания см. в статье о развертывании с использованием шаблонов.

Просмотр развернутых ресурсов

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

     az resource list -g "${projectName}rg"
    
  2. Чтобы убедиться, что центр Интернета вещей связан с ресурсом DPS, выполните следующую команду для отображения расширения DPS.

     az iot dps show --name <Your provisioningServiceName>
    

    Найдите здесь центры, которые связаны с элементом iotHubs.

Очистка ресурсов

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

Чтобы удалить группу ресурсов и все его ресурсы из портал Azure, просто откройте группу ресурсов и выберите "Удалить группу ресурсов" и "Сверху".

Чтобы удалить развернутую группу ресурсов с помощью Azure CLI, сделайте следующее:

az group delete --name "${projectName}rg"

Вы также можете удалить группы ресурсов и отдельные ресурсы с помощью любого из следующих параметров:

  • Портал Azure
  • PowerShell
  • Интерфейсы REST API
  • Поддерживаемые пакеты SDK для платформы, опубликованные для Azure Resource Manager или службы подготовки устройств Центр Интернета вещей

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

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