Compartir a través de


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.

Botón para implementar la plantilla de Resource Manager en Azure.

Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

Requisitos previos

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:

Implementación de la plantilla

Implementación con el portal

  1. 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.

    Botón para implementar la plantilla de Resource Manager en Azure.

  2. Seleccione o escriba los siguientes valores y seleccione Revisar y crear.

    Parámetros de implementación de la plantilla de Resource Manager en el portal

    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.
  3. 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.

  1. 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.

  2. 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}
    
  3. 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
    
  4. 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

  1. 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"
    
  2. 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.