Inicio rápido: Configuración de IoT Hub Device Provisioning Service (DPS) con una plantilla de Resource Manager
Puede usar una plantilla de Azure Resource Manager para configurar mediante programación los recursos de nube de Azure necesarios para aprovisionar los dispositivos. En estos pasos se muestra cómo crear un centro de IoT y una nueva instancia de IoT Hub Device Provisioning Service con una plantilla de Resource Manager. El centro de IoT también está vinculado al recurso de DPS mediante la plantilla, lo que le permite asignar dispositivos al centro en función de las directivas de asignación configuradas.
Una plantilla de Azure Resource Manager es un archivo de notación de objetos JavaScript (JSON) que define tanto la infraestructura como la configuración de un proyecto. La plantilla usa sintaxis declarativa. Se describe la implementación deseada sin escribir la secuencia de comandos de programación para crear la implementación.
Este inicio rápido utiliza el Azure Portal y la CLI de Azure para realizar los pasos programáticos necesarios para crear un grupo de recursos e implementar la plantilla. Sin embargo, también puede usar PowerShell, .NET, Ruby u otros lenguajes de programación para realizar estos pasos e implementar la plantilla.
Si su entorno cumple los requisitos previos y ya está familiarizado con el uso de plantillas de Resource Manager, al seleccionar el botón Implementar en Azure se abre la plantilla para la implementación en Azure Portal.
Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.
Requisitos previos
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Inicio rápido para Bash en Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
Revisión de la plantilla
La plantilla usada en este inicio rápido forma parte de las plantillas de inicio rápido de Azure.
Nota
Actualmente no se pueden crear inscripciones con nuevos recursos de DPS mediante plantillas de ARM. Se trata de una petición común y comprensible que se está considerando implementar.
{
"$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'))]"
]
}
]
}
En la plantilla anterior se definen dos recursos de Azure:
- Microsoft.Devices/IotHubs: Crea un centro de Azure IoT.
- Microsoft.Devices/provisioningservices: crea una instancia de Azure IoT Hub Device Provisioning Service con el nuevo centro de IoT ya vinculado.
Implementación de la plantilla
Implementación con el portal
Seleccione la imagen siguiente para iniciar sesión en Azure y abrir la plantilla para la implementación. La plantilla crea un centro de IoT y un recurso de DPS. El nuevo centro de IoT está vinculado al recurso de DPS.
Seleccione o escriba los siguientes valores y seleccione Revisar y crear.
A menos que se especifique lo contrario para los siguientes campos, use el valor predeterminado para crear el centro de IoT y el recurso de DPS.
Campo Descripción Suscripción Seleccione su suscripción a Azure. Grupos de recursos Seleccione Crear nuevo, escriba un nombre único para el grupo de recursos y seleccione Aceptar. Región Seleccione una región para los recursos. Por ejemplo Este de EE. UU. Para lograr resistencia y confiabilidad, recomendamos la implementación en una de las regiones que admiten las Availability Zones. Nombre de IoT Hub Escriba un nombre para el centro de IoT que sea globalmente único en el espacio de nombres azure-devices.net. Lo necesitará en la sección siguiente cuando valide la implementación. Nombre del servicio Device Provisioning Escriba un nombre para el nuevo recurso de Device Provisioning Service (DPS). El nombre debe ser globalmente único dentro del espacio de nombres .azure-devices-provisioning.net. Este nombre lo necesitará en la sección siguiente cuando valide la implementación. En la siguiente pantalla, lea los términos. Si está de acuerdo con todos los términos, seleccione Crear.
La implementación tardará un poco en completarse.
Además de Azure Portal, también puede usar Azure PowerShell, la CLI de Azure y API REST. Para obtener información sobre otros métodos de implementación, consulte Implementación de plantillas.
Implementación con la CLI de Azure
Es necesario usar la CLI de Azure 2.6 o una versión posterior. Si está usando la CLI de Azure localmente, ejecute az --version
para comprobar su versión.
Inicie sesión en la cuenta de Azure y seleccione su suscripción.
Si está usando la CLI de Azure localmente en lugar de hacerlo en el portal, deberá iniciar sesión. Para iniciar sesión en el símbolo del sistema, ejecute el comando de inicio de sesión:
az login
Siga las instrucciones para realizar la autenticación mediante el código e inicie sesión en la cuenta de Azure a través de un explorador web.
Si tiene varias suscripciones de Azure, iniciar sesión en Azure le concede acceso a todas las cuentas de Azure asociadas con las credenciales. Use el siguiente comando para mostrar las cuentas de Azure que tiene disponibles para su uso:
az account list -o table
Use el siguiente comando para seleccionar la suscripción que quiere usar para ejecutar los comandos con los que se crearán el centro de IoT y los recursos de DPS. Puede usar el nombre de la suscripción o el identificador de la salida del comando anterior:
az account set --subscription {your subscription name or id}
Copie y pegue los siguientes comandos en el símbolo del sistema de la CLI. A continuación, ejecute los comandos seleccionando la tecla Entrar.
Sugerencia
Los comandos solicitan una ubicación de grupo de recursos. Para ver una lista de las ubicaciones disponibles, ejecute primero el comando:
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
Los comandos le pedirán la siguiente información. Proporcione cada valor y seleccione la tecla Entrar.
Parámetro Descripción Nombre del proyecto El valor de este parámetro se usa para crear un grupo de recursos que contenga todos los recursos. La cadena rg
se agrega al final del valor del nombre del grupo de recursos.ubicación Este valor es la región donde se crean todos los recursos. iotHubName Escriba un nombre para el centro de IoT que sea globalmente único en el espacio de nombres azure-devices.net. Lo necesitará en la sección siguiente cuando valide la implementación. provisioningServiceName Escriba un nombre para el nuevo recurso de Device Provisioning Service (DPS). El nombre debe ser globalmente único dentro del espacio de nombres .azure-devices-provisioning.net. Este nombre lo necesitará en la sección siguiente cuando valide la implementación. La CLI de Azure se usa para implementar la plantilla. Además de la CLI de Azure, también puede usar Azure PowerShell, Azure Portal y la API REST. Para obtener información sobre otros métodos de implementación, consulte Implementación de plantillas.
Revisión de los recursos implementados
Para comprobar la implementación, ejecute el siguiente comando para enumerar los recursos y busque el nuevo servicio de aprovisionamiento y el centro de IoT en la salida:
az resource list -g "${projectName}rg"
Para comprobar que el centro ya está vinculado al recurso de DPS, ejecute el siguiente comando para mostrar la extensión de DPS.
az iot dps show --name <Your provisioningServiceName>
Observe los centros que están vinculados en el miembro
iotHubs
.
Limpieza de recursos
Otras guías de inicio rápido de esta colección se basan en los valores de esta. Si tiene previsto seguir trabajando con los siguientes inicios rápidos o tutoriales, no elimine los recursos creados en este inicio rápido. Si no tiene previsto continuar, puede usar Azure Portal o la CLI de Azure para eliminar el grupo de recursos y todos sus recursos.
Para eliminar un grupo de recursos y todos sus recursos desde Azure Portal, simplemente abra el grupo de recursos y seleccione Eliminar grupo de recursos en la parte superior.
Para eliminar el grupo de recursos implementado mediante la CLI de Azure:
az group delete --name "${projectName}rg"
También puede eliminar grupos de recursos y recursos individuales mediante cualquiera de las siguientes opciones:
- Azure portal
- PowerShell
- API de REST
- SDK de plataforma admitidos publicados para Azure Resource Manager o IoT Hub Device Provisioning Service
Pasos siguientes
En este inicio rápido, ha implementado un centro de IoT y una instancia de Device Provisioning Service, y ha vinculado los dos recursos. Para saber cómo usar esta configuración para aprovisionar un dispositivo, vaya al inicio rápido en el que se explica cómo crear un dispositivo.