Partekatu honen bidez:


Inicio rápido: Aprovisionamiento de un dispositivo simulado con clave simétrica

En este inicio rápido, crea un dispositivo simulado en una máquina Windows. El dispositivo simulado se configura para usar el mecanismo de atestación de clave simétrica para la autenticación. Después de configurar el dispositivo, aprovisiónelo en un centro de IoT mediante Azure IoT Hub Device Provisioning Service.

Si no conoce el proceso de aprovisionamiento, consulte la información general sobre el aprovisionamiento.

En este inicio rápido se muestra una solución para una estación de trabajo basada en Windows. No obstante, también puede realizar los procedimientos en Linux. Para obtener un ejemplo de Linux, vea el Tutorial: Aprovisionamiento para la geolatencia.

Requisitos previos

  • Instale el SDK de .NET 6.0 o una versión posterior en una máquina con Windows. Para comprobar la versión, use el siguiente comando.

    dotnet --info
    
  • Instale Python 3.7, o cualquier versión posterior, en una máquina con Windows. Puede comprobar la versión de Python ejecutando python --version.
  • Instale la última versión de Git. Asegúrese de que Git se ha agregado a las variables de entorno accesibles desde la ventana de comandos. Consulte las herramientas de cliente de Git de Software Freedom Conservancy para instalar la versión más reciente de las herramientas git, lo que incluye Git Bash, la aplicación de línea de comandos que puede usar para interactuar con su repositorio de Git local.

Preparación del entorno de desarrollo

En esta sección, preparará un entorno de desarrollo que se usa para compilar el SDK de Azure IoT para C. El código de ejemplo intenta aprovisionar el dispositivo durante la secuencia de arranque del dispositivo.

  1. Descargue el último sistema de compilación CMake.

    Importante

    Confirme que los requisitos previos de Visual Studio (Visual Studio y la carga de trabajo "Desarrollo para el escritorio con C++") estén instalados en la máquina antes de empezar la instalación de CMake. Una vez que los requisitos previos están en su lugar, y se ha comprobado la descarga, instale el sistema de compilación de CMake. Igualmente, tenga en cuenta que las versiones anteriores del sistema de compilación CMake no generan el archivo de solución que se usa en este artículo. Asegúrese de usar la versión más reciente de CMake.

  2. Abra un explorador web y vaya a la página de la versión del SDK de Azure IoT para C.

  3. Seleccione la pestaña Etiquetas en la parte superior de la página.

  4. Copie el nombre de etiqueta de la versión más reciente del SDK de Azure IoT para C.

  5. Abra un símbolo del sistema o el shell de Bash de Git. Ejecute los siguientes comandos para clonar la versión más reciente del repositorio de GitHub del SDK de dispositivo loT de Azure para C. Reemplace <release-tag> con el nombre de la etiqueta que copió en el paso anterior, por ejemplo: lts_01_2023.

    git clone -b <release-tag> https://github.com/Azure/azure-iot-sdk-c.git
    cd azure-iot-sdk-c
    git submodule update --init
    

    Esta operación puede tardar varios minutos en completarse.

  6. Una vez completada la operación, ejecute los siguientes comandos desde el directorio azure-iot-sdk-c:

    mkdir cmake
    cd cmake
    
  7. El ejemplo de código usa una clave simétrica para proporcionar atestación. Ejecute el siguiente comando para crear una versión del SDK específica para su plataforma del cliente de desarrollo que incluya el cliente de aprovisionamiento de dispositivos:

    cmake -Dhsm_type_symm_key:BOOL=ON -Duse_prov_client:BOOL=ON  ..
    

    Sugerencia

    Si cmake no encuentra el compilador de C++, es posible que obtenga errores de compilación durante la ejecución del comando anterior. Si eso sucede, pruebe a ejecutar este comando en el símbolo del sistema de Visual Studio.

  8. Cuando la compilación se realiza correctamente, las últimas líneas de salida tienen un aspecto similar al siguiente:

    $ cmake -Dhsm_type_symm_key:BOOL=ON -Duse_prov_client:BOOL=ON  ..
    -- Building for: Visual Studio 16 2019
    -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19042.
    -- The C compiler identification is MSVC 19.29.30040.0
    -- The CXX compiler identification is MSVC 19.29.30040.0
    
    ...
    
    -- Configuring done
    -- Generating done
    -- Build files have been written to: E:/IoT Testing/azure-iot-sdk-c/cmake
    
  1. Abra un entorno de línea de comandos de Git CMD o Git Bash.

  2. Use el comando siguiente para clonar el repositorio de GitHub SDK de Azure IoT para C#:

    git clone https://github.com/Azure/azure-iot-sdk-csharp.git
    
  1. Abra un entorno de línea de comandos de Git CMD o Git Bash.

  2. Utilice el siguiente comando para clonar el repositorio de GitHub del SDK de Azure IoT para Node.js:

    git clone https://github.com/Azure/azure-iot-sdk-node.git --recursive
    
  1. Abra un entorno de línea de comandos de Git CMD o Git Bash.

  2. Utilice el siguiente comando para clonar el repositorio de GitHub del SDK de Azure IoT para Python:

    git clone -b v2 https://github.com/Azure/azure-iot-sdk-python.git --recursive
    

    Nota

    Los ejemplos que se usan en este tutorial se encuentran en la rama v2 del repositorio azure-iot-sdk-python. La versión 3 del SDK de Python está disponible para su uso en la versión beta.

  1. Abra un entorno de línea de comandos de Git CMD o Git Bash.

  2. Utilice el siguiente comando para clonar el repositorio de GitHub del SDK de Azure IoT para Java:

    git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
    
  3. Vaya al directorio azure-iot-sdk-java raíz y compile el proyecto para descargar todos los paquetes necesarios. Este paso puede tardar varios minutos en completarse.

    cd azure-iot-sdk-java
    mvn install -DskipTests=true
    

Creación de una inscripción de dispositivos

Azure IoT Hub Device Provisioning Service admite dos tipos de inscripciones:

En este artículo se muestra una inscripción de un dispositivo que se va a aprovisionar con un centro de IoT.

  1. Inicie sesión en Azure Portal y vaya a la instancia de Device Provisioning Service.

  2. Seleccione Administrar inscripciones de la sección Configuración del menú de navegación.

  3. Seleccione la pestaña Inscripciones individuales y, después, Agregar inscripción individual.

    Captura de pantalla que muestra la opción Agregar inscripción individual.

  4. En Registro y aprovisionamiento de la página Agregar inscripción, proporcione la siguiente información para configurar los detalles de inscripción:

    Campo Descripción
    Atestación Seleccione Clave simétrica como Mecanismo de atestación.
    Configuración de clave simétrica Active la casilla Generar claves simétricas automáticamente si desea usar claves generadas aleatoriamente. Desactive esta casilla si desea proporcionar sus propias claves.
    Identificador de registro Proporcione un identificador de registro único para el dispositivo.
    Estado de aprovisionamiento Active la casilla Habilitar esta inscripción si desea que esta inscripción esté disponible para aprovisionar su dispositivo. Desactive esta casilla si desea que la inscripción esté deshabilitada. Podrá cambiar esta configuración más adelante.
    Directiva de reaprovisionamiento Elija una directiva de reaprovisionamiento que refleje cómo desea que DPS controle los dispositivos que soliciten el reaprovisionamiento. Para obtener más información, consulte Directivas de reaprovisionamiento.
  5. Seleccione Siguiente: centros de IoT.

  6. En la pestaña Centros de IoT de la página Agregar inscripción, proporcione la siguiente información para determinar qué centros de IoT pueden aprovisionar dispositivos de inscripción para:

    Campo Descripción
    Centros de IoT de destino Seleccione uno o varios de los centros de IoT vinculados o agregue un nuevo vínculo a un centro de IoT. Para más información sobre cómo vincular centros de IoT a la instancia de DPS, consulte Vinculación y administración de centros de IoT.
    Directiva de asignación Si seleccionó más de un centro de IoT vinculado, seleccione cómo quiere asignar dispositivos a los distintos centros. Para más información sobre las directivas de asignación, consulte Uso de directivas de asignación.

    Si seleccionó solo un centro de IoT vinculado, se recomienda usar la directiva Distribución uniformemente ponderada.
  7. Seleccione Siguiente: configuración del dispositivo

  8. En la pestaña Configuración del dispositivo de la página Agregar inscripción, proporcione la siguiente información para definir cómo se configurarán los dispositivos recién aprovisionados:

    Campo Descripción
    Id. de dispositivo Proporcione un id. de dispositivo que se asignará al dispositivo aprovisionado en IoT Hub. Si no proporciona un id. de dispositivo, se usará el id. de registro.
    IoT Edge Compruebe la opción Habilitar IoT Edge en los dispositivos aprovisionados si el dispositivo aprovisionado ejecutará Azure IoT Edge. Desactive esta casilla si esta inscripción es para un dispositivo no habilitado para IoT Edge.
    Etiquetas de dispositivo Use este cuadro de texto para proporcionar las etiquetas que quiera aplicar al dispositivo gemelo del dispositivo aprovisionado.
    Propiedades deseadas Use este cuadro de texto para proporcionar las propiedades deseadas que quiera aplicar al dispositivo gemelo del dispositivo aprovisionado.

    Para más información, consulte Información y uso de dispositivos gemelos en IoT Hub.

  9. Seleccione Siguiente: Review + create (Revisar y crear).

  10. En la pestaña Revisar y crear, compruebe todos los valores y seleccione Crear.

Una vez creada la inscripción individual, se genera una clave principal y una clave secundaria y se agregan a la entrada de inscripción. Usará la clave principal en el ejemplo de dispositivo más adelante en este inicio rápido.

  1. Para ver la inscripción del dispositivo de clave simétrica simulada, seleccione la pestaña Inscripciones individuales.

  2. Seleccione el id. de registro del dispositivo en la lista de inscripciones individuales.

  3. Copie el valor de la clave principal generada.

    Captura de pantalla que muestra los detalles de inscripción, resaltando el botón Copiar por la clave principal de inscripción del dispositivo

Preparación y ejecución del código de aprovisionamiento de dispositivos

En esta sección, actualizará el código de ejemplo del dispositivo para enviar la secuencia de arranque del dispositivo a la instancia del servicio de aprovisionamiento de dispositivos. Esta secuencia de arranque hará que el dispositivo se reconozca, se autentique y se asigne a un centro de IoT vinculado a la instancia del servicio de aprovisionamiento de dispositivos.

El código de aprovisionamiento de ejemplo realiza las siguientes tareas, en orden:

  1. Autentica el dispositivo en el recurso de Device Provisioning, para lo que usa los tres parámetros siguientes:

    • El ámbito de identificador de Device Provisioning Service
    • El identificador de registro de la inscripción del dispositivo.
    • Clave simétrica principal para la inscripción del dispositivo.
  2. Asigna el dispositivo al centro de IoT ya vinculado a la instancia de Device Provisioning Service.

Para actualizar y ejecutar el ejemplo de aprovisionamiento con la información del dispositivo:

  1. En el menú principal de Device Provisioning Service, seleccione Información general.

  2. Copie el valor de del Ámbito de id.

    Captura de pantalla que muestra la información general de la instancia de servicio de aprovisionamiento de dispositivos, resaltando el valor de ámbito de id. para la instancia.

  3. En Visual Studio, abra el archivo de solución azure_iot_sdks.sln que se ha generado al ejecutar CMake. El archivo de solución debe estar en la siguiente ubicación:

    
    \azure-iot-sdk-c\cmake\azure_iot_sdks.sln
    
    

    Sugerencia

    Si el archivo no se ha generado en el directorio cmake, asegúrese de que usó una versión reciente del sistema de compilación de CMake.

  4. En la ventana Explorador de soluciones de Visual Studio, vaya a la carpeta Provision_Samples. Expanda el proyecto de ejemplo denominado prov_dev_client_sample. Expanda Archivos de origen y abra prov_dev_client_sample.c.

  5. Busque la constante id_scope y reemplace el valor por el valor de Ámbito de id. que ha copiado en el paso 2.

    static const char* id_scope = "0ne00002193";
    
  6. Busque la definición de la función main() en el mismo archivo. Asegúrese de que la variable hsm_type esté establecida en SECURE_DEVICE_TYPE_SYMMETRIC_KEY, como se muestra en el ejemplo siguiente:

    SECURE_DEVICE_TYPE hsm_type;
    //hsm_type = SECURE_DEVICE_TYPE_TPM;
    //hsm_type = SECURE_DEVICE_TYPE_X509;
    hsm_type = SECURE_DEVICE_TYPE_SYMMETRIC_KEY;
    
  7. Busque la llamada a prov_dev_set_symmetric_key_info() en prov_dev_client_sample.c que se ha convertido en comentario.

    // Set the symmetric key if using they auth type
    //prov_dev_set_symmetric_key_info("<symm_registration_id>", "<symmetric_Key>");
    

    Quite la marca de comentario de la llamada de función y reemplace los valores de marcador de posición (incluidos los corchetes angulares) por el id. de registro del dispositivo y el valor de la clave principal que copió anteriormente.

    // Set the symmetric key if using they auth type
    prov_dev_set_symmetric_key_info("symm-key-device-007", "your primary key here");
    
  8. Guarde el archivo.

  9. Haga clic con el botón derecho en el proyecto prov_dev_client_sample y seleccione Establecer como proyecto de inicio.

  10. En el menú de Visual Studio, seleccione Depurar>Iniciar sin depurar para ejecutar la solución. En el indicador para recompilar el proyecto, seleccione Yes (Sí) para recompilar el proyecto antes de ejecutarlo.

    La salida siguiente es un ejemplo de conexión correcta del dispositivo a la instancia del servicio de aprovisionamiento para que se asigne a IoT Hub:

    Provisioning API Version: 1.2.8
    
    Registering Device
    
    Provisioning Status: PROV_DEVICE_REG_STATUS_CONNECTED
    Provisioning Status: PROV_DEVICE_REG_STATUS_ASSIGNING
    
    Registration Information received from service:
    test-docs-hub.azure-devices.net, deviceId: device-007
    Press enter key to exit:
    

El código de aprovisionamiento de ejemplo realiza las siguientes tareas:

  1. Autentica el dispositivo en el recurso de Device Provisioning, para lo que usa los tres parámetros siguientes:

    • El ámbito de identificador de Device Provisioning Service
    • El identificador de registro de la inscripción del dispositivo.
    • Clave simétrica principal para la inscripción del dispositivo.
  2. Asigna el dispositivo al centro de IoT ya vinculado a la instancia de Device Provisioning Service.

  3. Envía un mensaje de telemetría de prueba al centro de IoT.

Para actualizar y ejecutar el ejemplo de aprovisionamiento con la información del dispositivo:

  1. En el menú principal de Device Provisioning Service, seleccione Información general.

  2. Copie el valor de del Ámbito de id.

    Captura de pantalla que muestra la información general de la instancia de servicio de aprovisionamiento de dispositivos, resaltando el valor de ámbito de id. para la instancia.

  3. Abra un símbolo del sistema y vaya a SymmetricKeySample en el repositorio de SDK clonados:

    cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\SymmetricKeySample\'
    
  4. En la carpeta SymmetricKeySample, abra el archivo Parameters.cs en un editor de texto. Este archivo muestra los parámetros disponibles para el ejemplo. En este artículo, solo se usan los tres primeros parámetros necesarios al ejecutar el ejemplo. Revise el código de este archivo. No es necesario realizar ningún cambio.

    Parámetro Obligatorio Descripción
    --i o --IdScope True Ámbito del identificador de la instancia de DPS.
    --r o --RegistrationId True El id. de registro es una cadena que no distingue mayúsculas de minúsculas (de hasta 128 caracteres) de caracteres alfanuméricos más los caracteres especiales: '-', '.', '_', ':'. El último carácter debe ser alfanumérico o un guion ('-').
    --p o --PrimaryKey True Clave principal de la inscripción individual o clave de dispositivo derivada de la inscripción de grupo. Consulte ComputeDerivedSymmetricKeySample para saber cómo generar la clave derivada.
    --g o --GlobalDeviceEndpoint False Punto de conexión global al que se conectarán los dispositivos. De manera predeterminada, su valor es global.azure-devices-provisioning.net.
    --t o --TransportType False Transporte que se va a utilizar para comunicarse con la instancia de Device Provisioning. Su valor predeterminado es Mqtt. Los valores posibles incluyen Mqtt, Mqtt_WebSocket_Only, Mqtt_Tcp_Only, Amqp, Amqp_WebSocket_Only, Amqp_Tcp_only y Http1.
  5. En la carpeta SymmetricKeySample, abra el archivo ProvisioningDeviceClientSample.cs en un editor de texto. Este archivo muestra cómo se usa la clase SecurityProviderSymmetricKey junto con la clase ProvisioningDeviceClient para aprovisionar el dispositivo de clave simétrica simulado. Revise el código de este archivo. No es necesario realizar ningún cambio.

  6. Compile y ejecute el código de ejemplo mediante el comando siguiente:

    • Reemplace <id-scope> por el Ámbito de id. que ha copiado en el paso 2.
    • Reemplace <registration-id> por el Id. de registro que ha proporcionado para la inscripción del dispositivo.
    • Reemplace <primarykey> por la Clave principal que ha copiado de la inscripción del dispositivo.
    dotnet run --i <id-scope> --r <registration-id> --p <primarykey>
    
  7. Debería ver algo parecido a los siguiente. Se envía una cadena "TestMessage" al centro como mensaje de prueba.

    D:\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\SymmetricKeySample>dotnet run --i 0ne00000A0A --r symm-key-csharp-device-01 --p sbDDeEzRuEuGKag+kQKV+T1QGakRtHpsERLP0yPjwR93TrpEgEh/Y07CXstfha6dhIPWvdD1nRxK5T0KGKA+nQ==
    
    Initializing the device provisioning client...
    Initialized for registration Id symm-key-csharp-device-01.
    Registering with the device provisioning service...
    Registration status: Assigned.
    Device csharp-device-01 registered to ExampleIoTHub.azure-devices.net.
    Creating symmetric key authentication for IoT Hub...
    Testing the provisioned device with IoT Hub...
    Sending a telemetry message...
    Finished.
    Enter any key to exit.
    

El código de aprovisionamiento de ejemplo realiza las siguientes tareas, en orden:

  1. Autentica el dispositivo en el recurso de Device Provisioning, para lo que usa los cuatro parámetros siguientes:

    • PROVISIONING_HOST
    • PROVISIONING_IDSCOPE
    • PROVISIONING_REGISTRATION_ID
    • PROVISIONING_SYMMETRIC_KEY
  2. Asigna el dispositivo al centro de IoT ya vinculado a la instancia de Device Provisioning Service.

  3. Envía un mensaje de telemetría de prueba al centro de IoT.

Para actualizar y ejecutar el ejemplo de aprovisionamiento con la información del dispositivo:

  1. En el menú principal de Device Provisioning Service, seleccione Información general.

  2. Copie los valores del Ámbito de id. y el Punto de conexión global del dispositivo.

    Captura de pantalla que muestra la información general de la instancia de servicio de aprovisionamiento de dispositivos, resaltando el punto de conexión de dispositivo global y los valores de ámbito de id. para la instancia.

  3. Abra un símbolo del sistema para ejecutar comandos de Node.js y vaya al siguiente directorio:

    cd azure-iot-sdk-node/provisioning/device/samples
    
  4. En la carpeta provisioning/device/samples, abra register_symkey.js y examine el código. Observe que el código de ejemplo establece una carga personalizada:

    provisioningClient.setProvisioningPayload({a: 'b'});
    

    Puede marcar este código como comentario, ya que no es necesario para este inicio rápido. Se necesitaría una carga personalizada si deseara utilizar una función de asignación personalizada para asignar el dispositivo a un centro de IoT. Para más información, consulte el Tutorial: Uso de directivas de asignación personalizadas.

    El método provisioningClient.register() intenta registrar el dispositivo.

    No se requieren más cambios.

  5. En el símbolo del sistema, ejecute los comandos siguientes para establecer las variables de entorno que usa el ejemplo:

    • Reemplace <provisioning-global-endpoint> con el Punto de conexión de dispositivo global que ha copiado en el paso 2.
    • Reemplace <id-scope> por el Ámbito de id. que ha copiado en el paso 2.
    • Reemplace <registration-id> por el Id. de registro que ha proporcionado para la inscripción del dispositivo.
    • Reemplace <primarykey> por la Clave principal que ha copiado de la inscripción del dispositivo.
    set PROVISIONING_HOST=<provisioning-global-endpoint>
    
    set PROVISIONING_IDSCOPE=<id-scope>
    
    set PROVISIONING_REGISTRATION_ID=<registration-id>
    
    set PROVISIONING_SYMMETRIC_KEY=<primarykey>
    
  6. Compile y ejecute el código de ejemplo mediante los siguientes comandos:

     npm install
    
    node register_symkey.js
    
  7. Debería ver algo parecido a los siguiente. Se envía la cadena "Hola mundo" al centro como mensaje de prueba.

    D:\azure-iot-samples-csharp\provisioning\device\samples>node register_symkey.js
    registration succeeded
    assigned hub=ExampleIoTHub.azure-devices.net
    deviceId=nodejs-device-01
    payload=undefined
    Client connected
    send status: MessageEnqueued
    

El código de aprovisionamiento de ejemplo realiza las siguientes tareas, en orden:

  1. Autentica el dispositivo en el recurso de Device Provisioning, para lo que usa los cuatro parámetros siguientes:

    • PROVISIONING_HOST
    • PROVISIONING_IDSCOPE
    • PROVISIONING_REGISTRATION_ID
    • PROVISIONING_SYMMETRIC_KEY
  2. Asigna el dispositivo al centro de IoT ya vinculado a la instancia de Device Provisioning Service.

  3. Envía un mensaje de telemetría de prueba al centro de IoT.

Para actualizar y ejecutar el ejemplo de aprovisionamiento con la información del dispositivo:

  1. En el menú principal de Device Provisioning Service, seleccione Información general.

  2. Copie los valores del Ámbito de id. y el Punto de conexión global del dispositivo.

    Captura de pantalla que muestra la información general de la instancia de servicio de aprovisionamiento de dispositivos, resaltando el punto de conexión de dispositivo global y los valores de ámbito de id. para la instancia.

  3. Abra un símbolo del sistema y vaya al directorio donde se encuentra el archivo de ejemplo provision_symmetric_key.py.

    cd azure-iot-sdk-python\samples\async-hub-scenarios
    
  4. En el símbolo del sistema, ejecute los comandos siguientes para establecer las variables de entorno que usa el ejemplo:

    • Reemplace <provisioning-global-endpoint> con el Punto de conexión de dispositivo global que ha copiado en el paso 2.
    • Reemplace <id-scope> por el Ámbito de id. que ha copiado en el paso 2.
    • Reemplace <registration-id> por el Id. de registro que ha proporcionado para la inscripción del dispositivo.
    • Reemplace <primarykey> por la Clave principal que ha copiado de la inscripción del dispositivo.
    set PROVISIONING_HOST=<provisioning-global-endpoint>
    
    set PROVISIONING_IDSCOPE=<id-scope>
    
    set PROVISIONING_REGISTRATION_ID=<registration-id>
    
    set PROVISIONING_SYMMETRIC_KEY=<primarykey>
    
  5. Instale la biblioteca azure-iot-device ejecutando el siguiente comando.

    pip install azure-iot-device
    
  6. Ejecute el código de ejemplo de Python en provision_symmetric_key.py.

    python provision_symmetric_key.py
    
  7. Debería ver algo parecido a los siguiente. También se envían al centro algunos ejemplos de mensajes de telemetría de velocidad del viento como prueba.

    D:\azure-iot-sdk-python\samples\async-hub-scenarios>python provision_symmetric_key.py
    RegistrationStage(RequestAndResponseOperation): Op will transition into polling after interval 2.  Setting timer.
    The complete registration result is
    python-device-008
    docs-test-iot-hub.azure-devices.net
    initialAssignment
    null
    Will send telemetry from the provisioned device
    sending message #8
    sending message #9
    sending message #3
    sending message #10
    sending message #4
    sending message #2
    sending message #6
    sending message #7
    sending message #1
    sending message #5
    done sending message #8
    done sending message #9
    done sending message #3
    done sending message #10
    done sending message #4
    done sending message #2
    done sending message #6
    done sending message #7
    done sending message #1
    done sending message #5
    

El código de aprovisionamiento de ejemplo realiza las siguientes tareas, en orden:

  1. Autentica el dispositivo en el recurso de Device Provisioning, para lo que usa los cuatro parámetros siguientes:

    • GLOBAL_ENDPOINT
    • SCOPE_ID
    • REGISTRATION_ID
    • SYMMETRIC_KEY
  2. Asigna el dispositivo al centro de IoT ya vinculado a la instancia de Device Provisioning Service.

  3. Envía un mensaje de telemetría de prueba al centro de IoT.

Para actualizar y ejecutar el ejemplo de aprovisionamiento con la información del dispositivo:

  1. En el menú principal de Device Provisioning Service, seleccione Información general.

  2. Copie los valores del Ámbito de id. y el Punto de conexión global del dispositivo. Estos valores son sus parámetros SCOPE_ID y GLOBAL_ENDPOINT, respectivamente.

    Captura de pantalla que muestra la información general de la instancia de servicio de aprovisionamiento de dispositivos, resaltando el punto de conexión de dispositivo global y los valores de ámbito de id. para la instancia.

  3. Abra el código de ejemplo del dispositivo Java para editarlo. La ruta de acceso completa al código de ejemplo del dispositivo es:

    azure-iot-sdk-java/provisioning/provisioning-device-client-samples/provisioning-symmetrickey-individual-sample/src/main/java/samples/com/microsoft/azure/sdk/iot/ProvisioningSymmetricKeyIndividualEnrollmentSample.java

  4. Establezca el valor de las variables siguientes para la inscripción de DPS y del dispositivo:

    • Reemplace <id-scope> por el Ámbito de id. que ha copiado en el paso 2.
    • Reemplace <provisioning-global-endpoint> con el Punto de conexión de dispositivo global que ha copiado en el paso 2.
    • Reemplace <registration-id> por el Id. de registro que ha proporcionado para la inscripción del dispositivo.
    • Reemplace <primarykey> por la Clave principal que ha copiado de la inscripción del dispositivo.
    private static final String SCOPE_ID = "<id-scope>";
    private static final String GLOBAL_ENDPOINT = "<provisioning-global-endpoint>";
    private static final String SYMMETRIC_KEY = "<primarykey>";
    private static final String REGISTRATION_ID = "<registration-id>";
    
  5. Abra el símbolo del sistema para la compilación. Vaya a la carpeta del proyecto de ejemplo de aprovisionamiento del repositorio del SDK de Java.

    cd azure-iot-sdk-java\provisioning\provisioning-device-client-samples\provisioning-symmetrickey-individual-sample
    
  6. Compile el ejemplo.

    mvn clean install
    
  7. Vaya a la carpeta target y ejecute el archivo .jar que se ha creado. En el comando java, reemplace el marcador de posición {version} por la versión en el nombre de archivo .jar de la máquina.

    cd target
    java -jar ./provisioning-symmetrickey-individual-sample-{version}-with-deps.jar
    
  8. Debería ver algo parecido a los siguiente.

    Starting...
    Beginning setup.
    Initialized a ProvisioningDeviceClient instance using SDK version 1.11.0
    Starting provisioning thread...
    Waiting for Provisioning Service to register
    Opening the connection to device provisioning service...
    Connection to device provisioning service opened successfully, sending initial device registration message
    Authenticating with device provisioning service using symmetric key
    Waiting for device provisioning service to provision this device...
    Current provisioning status: ASSIGNING
    Device provisioning service assigned the device successfully
    IotHUb Uri : <Your IoT hub name>.azure-devices.net
    Device ID : java-device-007
    Sending message from device to IoT Hub...
    Press any key to exit...
    Message received! Response status: OK_EMPTY
    

Confirmación del registro de aprovisionamiento de dispositivos

  1. Vaya a Azure Portal.

  2. En el menú de la izquierda o en la página del portal, seleccione Todos los recursos.

  3. Seleccione el centro de IoT al que se asignó el dispositivo.

  4. En el menú Administración de dispositivos, seleccione Dispositivos.

  5. Si el dispositivo se ha aprovisionado correctamente, el id. del dispositivo debe aparecer en la lista y el valor de Estado debería ser Habilitado. Si no ve el dispositivo, seleccione Actualizar en la parte superior de la página.

    Captura de pantalla que muestra que el dispositivo está registrado con el centro de IoT y habilitado para el ejemplo de C.

    Captura de pantalla que muestra que el dispositivo está registrado con el centro de IoT y habilitado para el ejemplo de C#.

    Captura de pantalla que muestra que el dispositivo está registrado con el centro de IoT y habilitado para el ejemplo de Node.js.

    Captura de pantalla que muestra que el dispositivo está registrado con el centro de IoT y habilitado para el ejemplo de Python.

    Captura de pantalla que muestra que el dispositivo está registrado con el centro de IoT y habilitado para el ejemplo de Java.

Nota

Si ha cambiado el valor predeterminado de Estado inicial del dispositivo gemelo en la entrada de inscripción para el dispositivo, el dispositivo puede extraer el estado gemelo deseado desde el centro y actuar en consecuencia. Para más información, consulte Información y uso de dispositivos gemelos en IoT Hub.

Limpieza de recursos

Si planea seguir trabajando con el ejemplo de cliente de dispositivo y explorándolo, no quite los recursos que se hayan creado en esta guía de inicio rápido. Si no va a continuar, use el siguiente comando para eliminar todos los recursos que se hayan creado en la guía de inicio rápido.

Eliminación de la inscripción de dispositivos

  1. Cierre la ventana de salida de ejemplo del cliente del dispositivo en su máquina.

  2. En Azure Portal, seleccione Todos los recursos en el menú de la izquierda.

  3. Seleccione la instancia de Device Provisioning Service.

  4. En el menú de Configuración, seleccione Administrar inscripciones.

  5. Seleccione la pestaña Inscripciones individuales.

  6. Active la casilla situada junto al campo Id. de registro del dispositivo que registró en este inicio rápido.

  7. En la parte superior de la página, seleccione Eliminar.

Elimine el registro del dispositivo de IoT Hub

  1. En Azure Portal, seleccione Todos los recursos en el menú de la izquierda.

  2. Seleccione IoT Hub.

  3. En el menú Exploradores, seleccione Dispositivos de IoT.

  4. Active la casilla situada junto al campo Id. de dispositivo del dispositivo que registró en este inicio rápido.

  5. En la parte superior de la página, seleccione Eliminar.

Pasos siguientes

En este inicio rápido, ha aprovisionado un único dispositivo en el centro de IoT mediante una inscripción individual. Luego, obtenga información sobre cómo aprovisionar múltiples dispositivos en varios centros.