Preparación

Completado

Aquí se describen los objetivos generales del proyecto y cómo preparar los recursos para los ejercicios.

Información general del proyecto

En este módulo, comenzará creando los recursos de Azure necesarios para completar este módulo, como una instancia del servicio de aprovisionamiento de dispositivos(DPS) y un centro de IoT. A continuación, generará un certificado de entidad de certificación raíz X.509 mediante OpenSSL dentro de Azure Cloud Shell y usará el certificado raíz para configurar una inscripción de grupo dentro de DPS. Después, usará el certificado raíz para generar dos certificados de dispositivo, que se usan dentro de un código de dispositivo simulado para aprovisionar los dispositivos en un centro de IoT. Mientras se encuentra en el código del dispositivo, se implementará el acceso a las propiedades del dispositivo gemelo que se usan para realizar la configuración inicial del dispositivo. A continuación, probará el dispositivo simulado. Para finalizar este módulo, desaprovisionará toda la inscripción de grupo.

Configuración

Como parte de este módulo, se crean los siguientes recursos:

  • Una instancia de Azure IoT Hub
  • Una instancia de IoT Hub Device Provisioning Service
  • Dos dispositivos simulados en C#

Recursos en la nube

Para completar este proyecto guiado, necesita un centro de IoT y una instancia del servicio de aprovisionamiento de dispositivos que estén vinculadas entre sí. La creación de estas instancias de servicio puede tardar varios minutos.

  1. Para empezar, haga clic en el botón Activar espacio aislado. El espacio aislado crea automáticamente un grupo de recursos de Azure que se muestra en esta página web. Puede crear más recursos para este proyecto mediante los pasos siguientes. El nombre del grupo de recursos se sustituye automáticamente cuando se usa en los pasos de código.

    Nota:

    El espacio aislado de Azure Cloud Shell agotará el tiempo de espera después de 20 minutos de inactividad. El espacio aislado seguirá estando disponible y Cloud Shell se podrá reactivar, pero se perderán las variables de línea de comandos y de entorno. Las instancias de IoT Hub y del servicio de aprovisionamiento de dispositivos son funcionales y están disponibles. Asegúrese de copiar estos valores tal y como se indica al final de esta página para que pueda seguir haciendo referencia a ellos y especificarlos en los próximos comandos de Cloud Shell cuando sea necesario.

  2. Instale la extensión de Azure IoT para la CLI de Azure.

    az extension add --name azure-iot
    
  3. Cree una variable denominada sufijo con un número aleatorio que use para los nombres de recursos que deben ser únicos globalmente.

    let suffix=$RANDOM*$RANDOM
    echo $suffix
    
  4. Cree un centro de IoT en el nombre del grupo de recursos creado por el espacio aislado de Azure.

    az iot hub create --name hub-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --location westus
    
  5. Cree una instancia de DPS en el grupo de recursos creado por el espacio aislado de Azure.

    az iot dps create --name dps-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --location westus
    
  6. Obtenga la cadena de conexión del centro de IoT, que se proporciona a la instancia de DPS para vincular los dos recursos.

    hubConnectionString=$(az iot hub connection-string show --hub-name hub-$suffix --key-type primary --query connectionString -o tsv)
    echo $hubConnectionString
    
  7. Agregue el centro de IoT como un centro vinculado a la instancia de DPS. La vinculación de un centro de IoT significa que la instancia de DPS puede aprovisionar dispositivos en ese centro de IoT.

    az iot dps linked-hub create --dps-name dps-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --connection-string $hubConnectionString
    
  8. Una vez completada la implementación, abra una herramienta de editor de texto. Use el editor de texto para almacenar los valores de configuración asociados a los recursos de Azure por si el espacio aislado agota el tiempo de espera después de 20 minutos. En el editor de texto, guarde los siguientes nombres y valores para usarlos en las páginas de unidad siguientes.

    NOMBRE Valor
    Nombre del grupo de recursos Se muestra en esta página web
    Sufijo Se almacena en $suffix. Por ejemplo, un valor para $suffix es 586732230.
    Cadena de conexión de IoT Hub Se almacena en $hubConnectionString.
    IoT hub name hub-$suffix. Por ejemplo, hub-586732230.
    Nombre de DPS dps-$suffix. Por ejemplo, dps-586732230.
    Ámbito de identificador de DPS El valor de idScope en los datos JSON devueltos por el comando az iot dps create que ejecutó en el paso  5. Por ejemplo, el valor de idScope es 0ne0000000.

Recursos de desarrollo

Para simular el aprovisionamiento de dispositivos IoT a través del servicio de aprovisionamiento de dispositivos, ejecute dos aplicaciones de C# en la máquina de desarrollo. Tenga los siguientes requisitos previos listos en la máquina de desarrollo: