Краткое руководство. Настройка службы подготовки устройств Центр Интернета вещей (DPS) с помощью шаблона ARM
С помощью шаблона Azure Resource Manager (шаблона ARM) вы можете программно настраивать облачные ресурсы Azure, необходимые для подготовки устройств. В этой процедуре показано, как создать центр Интернета вещей и новую Службу подготовки устройств к добавлению в Центр Интернета вещей с помощью шаблона ARM. Также этот шаблон связывает центр Интернета вещей с ресурсом DPS. Это связывание позволяет ресурсу DPS назначать устройства в центр по настроенным вами политикам распределения.
Шаблон Azure Resource Manager — это файл нотации объектов JavaScript (JSON), который определяет инфраструктуру и конфигурацию проекта. В шаблоне используется декларативный синтаксис. Вы описываете предполагаемое развертывание без написания последовательности команд программирования для создания развертывания.
В этом кратком руководстве используется портал Azure и Azure CLI для выполнения программных действий, необходимых для создания группы ресурсов и развертывания шаблона. Однако вы также можете использовать PowerShell, .NET, Ruby или другие языки программирования для выполнения этих действий и развертывания шаблона.
Если среда соответствует предварительным требованиям, и вы уже знакомы с использованием шаблонов ARM, при нажатии кнопки "Развернуть в Azure" откроется шаблон для развертывания в портал 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 с новым центром Интернета вещей, который уже связан с ним.
Развертывание шаблона
Развертывание с помощью портала
Выберите следующее изображение, чтобы войти на портал Azure и открыть шаблон развертывания. Шаблон создает новый ресурс центра Iot и DPS. Новый центр Интернета вещей связан с ресурсом DPS.
Выберите или введите следующие значения и нажмите кнопку "Проверить и создать".
Если иное не указано для следующих полей, используйте значение по умолчанию для создания ресурса Центра Iot и DPS.
Поле Description Подписка Выберите свою подписку Azure. Группа ресурсов Нажмите кнопку "Создать" и введите уникальное имя группы ресурсов и нажмите кнопку "ОК". Регион Выберите регион для размещения ресурсов. Например, Восточная часть США. Для обеспечения устойчивости и надежности рекомендуется развернуть в одном из регионов, поддерживающих Зоны доступности. Имя центра Интернета вещей Введите имя центра Интернета вещей, которое должно быть глобально уникальным в пределах пространства имен .azure-devices.net. Это имя центра вам потребуется в следующем разделе при проверке развертывания. Имя службы подготовки Введите имя нового ресурса службы подготовки устройств (DPS). Это имя должно быть глобально уникальным в пределах пространства имен .azure-devices-provisioning.net. Это имя DPS вам потребуется в следующем разделе при проверке развертывания. На следующем экране ознакомьтесь с условиями. Если вы согласны со всеми условиями, нажмите кнопку "Создать".
Развертывание занимает несколько минут.
В дополнение к порталу Azure можно также использовать Azure PowerShell, Azure CLI и REST API. Дополнительные сведения о других методах развертывания см. в статье о развертывании с использованием шаблонов.
Развертывание с помощью Azure CLI
Для работы с Azure CLI потребуется версия 2.6 или более поздняя. Если вы используете Azure CLI локально, проверьте версию, выполнив следующую команду: az --version
Войдите в учетную запись Azure и выберите подписку.
Если вы используете Azure CLI локально, а не выполняете его на портале, необходимо войти в систему. Чтобы войти в командную строку, выполните команду входа:
az login
Следуйте инструкциям, чтобы выполнить аутентификацию с использованием кода и войти в учетную запись Azure через веб-браузер.
Если у вас есть несколько подписок Azure, то при выполнении входа в Azure вы получаете доступ ко всем учетным записям Azure, связанным с вашими учетными данными. Используйте следующую команду для вывода учетных записей Azure, доступных для использования:
az account list -o table
Используйте следующую команду, чтобы выбрать подписку, которая будет использоваться для выполнения команд, позволяющих создать ресурсы центра Интернета вещей и DPS. Вы можете использовать имя подписки или идентификатор из выходных данных предыдущей команды:
az account set --subscription {your subscription name or id}
Скопируйте и вставьте в командную строку 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
В командной строке приведены следующие сведения. Укажите каждое значение и выберите клавишу ВВОД.
Параметр Описание Имя проекта Значение этого параметра используется для создания группы ресурсов для хранения всех ресурсов. rg
Строка добавляется в конец значения для имени группы ресурсов.расположение Это значение — регион, в котором создаются все ресурсы. iotHubName Введите имя центра Интернета вещей, которое должно быть глобально уникальным в пределах пространства имен .azure-devices.net. Это имя центра вам потребуется в следующем разделе при проверке развертывания. provisioningServiceName Введите имя нового ресурса службы подготовки устройств (DPS). Это имя должно быть глобально уникальным в пределах пространства имен .azure-devices-provisioning.net. Это имя DPS вам потребуется в следующем разделе при проверке развертывания. Azure CLI используется для развертывания шаблона. Помимо Azure CLI, вы можете использовать Azure PowerShell, портал Azure и REST API. Дополнительные сведения о других методах развертывания см. в статье о развертывании с использованием шаблонов.
Просмотр развернутых ресурсов
Чтобы проверить развертывание, выполните следующую команду получения списка ресурсов, после чего найдите в выходных данных новую службу подготовки и центр Интернета вещей:
az resource list -g "${projectName}rg"
Чтобы убедиться, что центр Интернета вещей связан с ресурсом 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 или службы подготовки устройств Центр Интернета вещей
Следующие шаги
В этом кратком руководстве вы развернули центр Интернета вещей и экземпляр службы подготовки устройств и связали два ресурса. Чтобы узнать, как в этой конфигурации подготовить устройство, см. краткое руководство по созданию устройства.