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


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

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

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

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

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

Кнопка для развертывания шаблона Resource Manager в Azure.

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

Предпосылки

Проверьте шаблон

Шаблон, используемый в этом кратком руководстве, взят из шаблонов быстрого запуска 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 и открыть шаблон для развертывания. Шаблон создает новый ресурс центра Интернета вещей и ресурс управления устройствами DPS. Новый центр Интернета вещей связан с ресурсом DPS.

    Кнопка для развертывания шаблона Resource Manager в Azure.

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

    Параметры развертывания шаблонов ARM на портале

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

    Поле Описание
    Подписка Выберите подписку 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. Скопируйте и вставьте следующие команды в командной строке. Затем выполните команды, выбрав клавишу ВВОД.

    Подсказка

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

    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 extension show.

     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 или Службы подготовки устройств Центра Интернета вещей

Дальнейшие шаги

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