Uso de Visual Studio 2022 para desarrollar y depurar módulos para Azure IoT Edge

Se aplica a:marca de verificación de IoT Edge 1.1 IoT Edge 1.1 marca de verificación de IoT Edge 1.2 IoT Edge 1.2 marca de verificación de IoT Edge 1.3 IoT Edge 1.3 marca de verificación de IoT Edge 1.4 IoT Edge 1.4

En este artículo se muestra cómo usar Visual Studio 2022 para desarrollar y depurar módulos de Azure IoT Edge.

La extensión Azure IoT Edge Tools para Visual Studio proporciona las siguientes ventajas:

  • Creación, edición, compilación y ejecución de soluciones y módulos de IoT Edge en su equipo de desarrollo local.
  • Programación de los módulos de Azure IoT en C o C# con las ventajas de desarrollo en Visual Studio.
  • Implementación de la solución de IoT Edge en un dispositivo de IoT Edge mediante Azure IoT Hub.
  • Administración de dispositivos de IoT Edge y módulos con la interfaz de usuario.

Visual Studio 2022 proporciona compatibilidad con módulos escritos en C y C#. Las arquitecturas de dispositivo compatibles son Windows x64 y Linux x64 o ARM32, mientras que ARM64 está en versión preliminar. Para obtener más información sobre los sistemas operativos, los lenguajes y las arquitecturas compatibles, consulte Compatibilidad de lenguaje y arquitectura.

Requisitos previos

En este artículo se da por hecho que usa una máquina que ejecuta Windows como máquina de desarrollo.

  • En equipos Windows, puede desarrollar módulos de Windows o Linux.

    • Para desarrollar módulos con contenedores de Windows, use un equipo Windows que ejecute la versión 1809 y la compilación 17763, o una más reciente.
    • Para desarrollar módulos con contenedores de Linux, use un equipo Windows que cumpla los requisitos de Docker Desktop.
  • Instale Visual Studio en la máquina de desarrollo. Asegúrese de incluir las cargas de trabajo de desarrollo de Azure y desarrollo de escritorio con C++ en la instalación de Visual Studio 2022. Como alternativa, puede modificar Visual Studio 2022 para agregar las cargas de trabajo necesarias, si Visual Studio ya está instalado en el equipo.

  • Instale Azure IoT Edge Tools desde Marketplace o desde Visual Studio:

    • Descargue e instale Azure IoT Edge Tools desde Visual Studio Marketplace.

      Sugerencia

      Si usa Visual Studio 2019, descargue e instale Azure IoT Edge Tools para VS 2019 desde Visual Studio Marketplace.

    • O bien, en Visual Studio, vaya a Extensions > Administrar extensiones. Se abrirá la ventana emergente de Administrar extensiones. En el cuadro de búsqueda de la esquina superior derecha, agregue el texto Azure IoT Edge Tools for VS 2022 y seleccione Descargar. Cierre el elemento emergente cuando termine.

      Si solo necesita actualizar las herramientas, vaya a la ventana Administrar extensiones, expanda Actualizaciones > Visual Studio Marketplace, seleccione Azure IoT Edge Tools y, a continuación, seleccione Actualizar.

      Una vez completada la actualización, seleccione Cerrar y reinicie Visual Studio.

  • Descargue e instale un sistema de administración de contenedores compatible con Docker en la máquina de desarrollo para implementar y ejecutar las imágenes de los módulos. Configure el motor de contenedor para que se ejecute en el modo de contenedor de Linux o en el modo de contenedor de Windows, en función del tipo de módulos que desarrolle.

  • Configure el entorno local de desarrollo para depurar, ejecutar y probar la solución de IoT Edge mediante la instalación de la herramienta de desarrollo de Azure IoT EdgeHub. Instale Python (3.5/3.6/3.7/3.8) y Pip y, a continuación, el paquete iotedgehubdev. Para ello, ejecute el siguiente comando en el terminal.

    pip install --upgrade iotedgehubdev
    

    Sugerencia

    Asegúrese de que la versión de la herramienta de desarrollo de Azure IoT EdgeHub es posterior a la 0.3.0. Deberá contar con un dispositivo de IoT Edge preexistente en Azure Portal y tener preparada la cadena de conexión durante la instalación.

    Puede que deba reiniciar Visual Studio para completar la instalación.

  • Instale el administrador de bibliotecas Vcpkg

    git clone https://github.com/Microsoft/vcpkg
    cd vcpkg
    bootstrap-vcpkg.bat
    

    Instale el paquete azure-iot-sdk-c para Windows

    vcpkg.exe install azure-iot-sdk-c:x64-windows
    vcpkg.exe --triplet x64-windows integrate install
    
  • Cree una instancia de Azure Container Registry o Docker Hub para almacenar las imágenes de los módulos.

    Sugerencia

    Puede usar un registro de Docker local con fines de prototipo y prueba en lugar de un registro en la nube.

  • Para probar el módulo en un dispositivo, necesitará una instancia de IoT Hub con al menos un dispositivo IoT Edge. Para crear un dispositivo IoT Edge con el fin de realizar pruebas, puede crear uno en Azure Portal o con la CLI:

    • La creación de uno en Azure Portal es el método más rápido. En Azure Portal, vaya hasta su recurso de IoT Hub. Seleccione Dispositivos en el menú Administración de dispositivos y, luego, elija Agregar dispositivo.

      En Crear un dispositivo, asigne un nombre al dispositivo mediante Id. de dispositivo, active Dispositivo IoT Edge y, luego, elija Guardar en la parte inferior izquierda.

      Por último, confirme que el nuevo dispositivo existe en su IoT Hub, en el menú Administración de dispositivos > Dispositivos. Para más información sobre cómo crear un dispositivo IoT Edge a través del Azure Portal, lea Creación y aprovisionamiento de un dispositivo IoT Edge en Linux mediante claves simétricas.

    • Para crear un dispositivo IoT Edge con la CLI, siga los pasos descritos en el inicio rápido para Linux o Windows. En el proceso de registrar un dispositivo IoT Edge, se crea un dispositivo IoT Edge.

    Si ejecuta el demonio de IoT Edge en su equipo de desarrollo, es posible que deba detener EdgeHub y EdgeAgent para empezar el desarrollo en Visual Studio.

Creación de un proyecto de Azure IoT Edge

La plantilla de proyecto de IoT Edge en Visual Studio crea una solución que se puede implementar en dispositivos IoT Edge. En primer lugar, creará una solución de Azure IoT Edge y, luego, generará el primer módulo en esa solución. Cada solución de IoT Edge puede contener más de un módulo.

En total, vamos a compilar tres proyectos en nuestra solución. El módulo principal que contiene EdgeAgent y EdgeHub, además del módulo del sensor de temperatura, agregará dos módulos más de IoT Edge.

Sugerencia

La estructura del proyecto de IoT Edge creada por Visual Studio no es igual que la de Visual Studio Code.

  1. En Visual Studio, cree un nuevo proyecto.

  2. En la ventana Crear un proyecto, busque Azure IoT Edge. Seleccione el proyecto que coincida con la plataforma y la arquitectura del dispositivo IoT Edge y haga clic en Siguiente.

    Creación de un proyecto

  3. En la ventana Configurar el nuevo proyecto, escriba un nombre para el proyecto y especifique la ubicación y, luego, seleccione Crear.

  4. En la ventana Agregar módulo, seleccione el tipo de módulo que quiere desarrollar. También puede seleccionar Existing module (Módulo existente) para agregar un módulo de IoT Edge ya existente a la implementación. Especifique el nombre y el repositorio de imágenes del módulo.

    Visual Studio completa automáticamente la dirección URL del repositorio con localhost:5000/nombre del módulo>. Si usa un registro de Docker local para realizar pruebas, localhost puede valer. Si va a usar Azure Container Registry, reemplace localhost:5000 por el servidor de inicio de sesión de la configuración del registro.

    El servidor de inicio de sesión se parece a <nombre de registro>.azurecr.io. El resultado final debería parecerse a <nombre de registro>.azurecr.io/<nombre de módulo> por ejemplo, my-registry-name.azurecr.io/my-module-name.

    Seleccione Agregar para agregar el módulo al proyecto.

    Adición de la aplicación y el módulo

    Nota:

    Si tiene un proyecto de IoT Edge existente, puede cambiar la dirección URL del repositorio abriendo el archivo module.json. La dirección URL del repositorio se encuentra en la propiedad "repository" del archivo JSON.

Ahora tiene un proyecto y un módulo de IoT Edge en la solución Visual Studio.

Estructura del proyecto

En la solución es una carpeta de proyecto principal y una sola carpeta de módulos. Ambos están en el nivel de proyecto. La carpeta principal del proyecto contiene el manifiesto de implementación.

La carpeta del proyecto del módulo contiene un archivo para el código del módulo, denominado program.cs o main.c según el lenguaje que haya elegido. Esta carpeta también contiene un archivo denominado module.json que describe los metadatos del módulo. Varios archivos de Docker, que se incluyen aquí, proporcionan la información necesaria para crear el módulo como un contenedor de Windows o Linux.

Manifiesto de implementación del proyecto

El manifiesto de implementación que editará se denomina deployment.debug.template.json. Este archivo es una plantilla de un manifiesto de implementación de IoT Edge, que define todos los módulos que se ejecutan en un dispositivo y cómo se comunican entre sí. Para más información sobre los manifiestos de implementación, consulte Obtenga información sobre cómo implementar módulos y establecer rutas.

Si abre esta plantilla de implementación, podrá ver que los dos módulos del entorno de ejecución, edgeAgent y edgeHub están incluidos, junto con el módulo personalizado que creó en este proyecto de Visual Studio. Un cuarto módulo, denominado SimulatedTemperatureSensor también está incluido. Este módulo predeterminado es el que genera los datos simulados que puede usar para probar los módulos o eliminar si no es necesario. Para ver cómo funciona el sensor de temperatura simulado, vea el código fuente de SimulatedTemperatureSensor.csproj.

Establecimiento de la versión del entorno de ejecución de IoT Edge

La extensión de IoT Edge adopta como predeterminada la versión estable más reciente del entorno de ejecución de IoT Edge cuando crea los recursos de implementación. Actualmente, esta versión es la 1.2. Si va a desarrollar módulos para dispositivos que ejecutan la versión de compatibilidad a largo plazo 1.1 o la versión 1.0 anterior, actualice la versión del entorno de ejecución de IoT Edge en Visual Studio para que coincidan.

  1. En el Explorador de soluciones, haga clic con el botón derecho en el nombre del proyecto principal y seleccione Establecer la versión del entorno de ejecución de Azure IoT Edge.

    Captura de pantalla de cómo encontrar y seleccionar el elemento de menú denominado

  2. Use el menú desplegable para elegir la versión del entorno de ejecución en la que se ejecutan los dispositivos IoT Edge y, a continuación, seleccione Aceptar para guardar los cambios. Si no se realizó ningún cambio, seleccione Cancelar para salir.

  3. Si ha cambiado la versión, vuelva a generar el manifiesto de implementación; para ello, haga clic con el botón derecho en el nombre del proyecto y seleccione Generar implementación para IoT Edge. Esto generará un manifiesto de implementación basado en la plantilla de implementación y aparecerá en la carpeta config del proyecto de Visual Studio.

Infraestructura del módulo y opciones de desarrollo

Al agregar un nuevo módulo, este viene con un código predeterminado que está listo para crearse e implementarse en un dispositivo para que pueda empezar a realizar pruebas sin tener que modificar ningún código. El código del módulo se encuentra en la carpeta del módulo en un archivo denominado Program.cs (para C#) o main.c (para C).

La solución predeterminada se ha creado para que los datos simulados del módulo SimulatedTemperatureSensor se enruten hacia el módulo, el cual recibe la entrada y, a continuación, la envía a IoT Hub.

Cuando tenga todo listo para personalizar la plantilla del módulo con su propio código, use los SDK de Azure IoT Hub para compilar módulos que aborden las necesidades principales de las soluciones de IoT, como la seguridad, la administración de dispositivos y la fiabilidad.

Configuración de la herramienta de pruebas iotedgehubdev

La herramienta de desarrollo de Azure IoT EdgeHub proporciona una experiencia de desarrollo y depuración local. La herramienta ayuda a iniciar los módulos IoT Edge sin el runtime de IoT Edge para que pueda crear, desarrollar, probar, ejecutar y depurar módulos y soluciones de IoT Edge de forma local. Para realizar las pruebas, no es necesario insertar imágenes en un registro de contenedor e implementarlas en un dispositivo.

Para más información, consulte el artículo sobre la herramienta de desarrollo de Azure IoT EdgeHub.

Para inicializar la herramienta en Visual Studio:

  1. Recupere la cadena de conexión del dispositivo IoT Edge (que se encuentra en su IoT Hub) desde Azure Portal o desde la CLI de Azure.

    Si usa la CLI para recuperar la cadena de conexión, use este comando, reemplazando "[device_id]" y "[hub_name]" por sus propios valores:

    az iot hub device-identity connection-string show --device-id [device_id] --hub-name [hub_name]
    
  2. Vaya al menú Herramientas en Visual Studio, seleccione Azure IoT Edge Tools>Configurar el simulador de IoT Edge.

  3. Pegue la cadena de conexión y haga clic en Aceptar.

Nota

Debe seguir estos pasos solo una vez en el equipo de desarrollo, ya que los resultados se aplican automáticamente a todas las soluciones de Azure IoT Edge posteriores. Puede realizar nuevamente este procedimiento si necesita cambiar a una cadena de conexión diferente.

Compilación y depuración de un solo módulo

Por lo general, querrá probar y depurar los módulos antes de que se ejecuten en una solución entera con varios de ellos.

Sugerencia

Según el tipo de módulo de IoT Edge que esté desarrollando, es posible que tenga que habilitar el modo de contenedor de Docker correcto: Linux o Windows. En el menú Escritorio de Docker, puede alternar entre los dos tipos de modos. Seleccione Cambiar a contenedores Windows o Cambiar a contenedores Linux. En este tutorial, utilizamos Linux.

Captura de pantalla de cómo encontrar y seleccionar el elemento de menú denominado

  1. En Explorador de soluciones, haga clic con el botón derecho en la carpeta del proyecto del módulo y seleccione Establecer como proyecto de inicio en el menú.

    Captura de pantalla de cómo establecer el proyecto como proyecto de inicio.

  2. Pulse F5 o haz clic en el botón Ejecutar de la barra de herramientas para ejecutar el módulo. La primera vez que lo haga, puede tardar entre 10 y 20 segundos. Asegúrese de que no tiene otros contenedores de Docker en ejecución que puedan enlazar el puerto que necesita para este proyecto.

    Captura de pantalla de cómo ejecutar un módulo.

  3. Si el módulo se inicializa correctamente, debe ver que aparece una ventana de la aplicación de consola de .NET Core.

  4. Establezca un punto de interrupción para inspeccionar el módulo.

    • Si desarrolla en C#, establezca un punto de interrupción en la función PipeMessage() de PipeMessage().
    • Si usa C, establezca un punto de interrupción en la función InputQueue1Callback() de main.c.
  5. Pruebe el módulo con el envío de un mensaje mediante la ejecución del comando siguiente en un shell de Git Bash o WSL Bash. No puede ejecutar el comando curl en PowerShell ni desde el símbolo del sistema.

    curl --header "Content-Type: application/json" --request POST --data '{"inputName": "input1","data":"hello world"}' http://localhost:53000/api/v1/messages
    

    Si recibe el error sin coincidencia de llave o corchete en la dirección URL, en su lugar, pruebe el siguiente comando:

    curl --header "Content-Type: application/json" --request POST --data "{\"inputName\": \"input1\", \"data\", \"hello world\"}"  http://localhost:53000/api/v1/messages
    

    Captura de pantalla de la consola de salida, del proyecto de Visual Studio y de la ventana de Bash.

    Debe desencadenarse el punto de interrupción. Puede ver las variables en la ventana Variables locales de Visual Studio, que se encuentran cuando se ejecuta el depurador. Vaya a Depurar > Windows > Variables locales.

    En bash o shell, debería ver una confirmación {"message":"accepted"}.

    En la consola de .NET debería ver:

    IoT Hub module client initialized.
    Received message: 1, Body: [hello world]
    

    Sugerencia

    También puede usar PostMan u otras herramientas de API para enviar mensajes en lugar de curl.

  6. Presione Ctrl + F5 o haga clic en el botón Detener para detener la depuración.

Creación y depuración de varios módulos

Cuando haya terminado de desarrollar el módulo, querrá ejecutar y depurar una solución completa de varios módulos.

  1. En el Explorador de soluciones, agregue un segundo módulo a la solución haciendo clic con el botón derecho en la carpeta del proyecto. En el menú, seleccione Agregar>New IoT Edge Module (Nuevo módulo de IoT Edge).

    Captura de pantalla de cómo agregar un

  2. En la ventana Add module, asigne un nombre al nuevo módulo y reemplace la parte localhost:5000 de la dirección URL del repositorio por el servidor de inicio de sesión de Azure Container Registry, como hizo antes.

  3. Abra el archivo deployment.debug.template.json para ver que el nuevo módulo se ha agregado a la sección modules. También se ha agregado una nueva ruta a la sección routes en EdgeHub para enviar mensajes desde el nuevo módulo a IoT Hub. Para enviar datos desde el sensor de temperatura simulado al nuevo módulo, agregue otra ruta con la línea siguiente de JSON. Reemplace <NewModuleName> (en dos lugares) por el nombre de su propio módulo.

    "sensorTo<NewModuleName>": "FROM /messages/modules/SimulatedTemperatureSensor/outputs/temperatureOutput INTO BrokeredEndpoint(\"/modules/<NewModuleName>/inputs/input1\")"
    
  4. Haga clic con el botón derecho en el proyecto principal (por ejemplo, IoTEdgeProject) y seleccione Establecer como proyecto de inicio.

  5. Cree puntos de interrupción en cada módulo y luego presione F5 para ejecutar y depurar varios módulos a la vez. Verá varias ventanas de aplicación de consola de .NET Core; cada una de ellas representa un módulo distinto.

    Captura de pantalla de Visual Studio con dos consolas de salida.

  6. Presione Ctrl + F5 o seleccione el botón Detener para detener la depuración.

Compilación e inserción de imágenes

  1. Asegúrese de que el proyecto de IoT Edge sea el proyecto de inicio, no uno de los módulos individuales. Seleccione Depurar o Versión como configuración para compilar las imágenes del módulo.

    Nota:

    Al elegir Depurar, Visual Studio usará para compilar las imágenes de Docker. Esto incluye el depurador de la línea de comandos de .NET Core VSDBG en la imagen de contenedor al realizar la compilación. Para los módulos de IoT Edge listos para producción, se recomienda usar la configuración de Versión que usa Dockerfile.(amd64|windows-amd64) sin VSDBG.

  2. Si usa un registro privado como Azure Container Registry (ACR), use el siguiente comando de Docker para iniciar sesión en él. Puede obtener el nombre de usuario y la contraseña en la página Claves de acceso del registro en Azure Portal.

    docker login -u <ACR username> -p <ACR password> <ACR login server>
    
  3. Vamos a agregar la información de inicio de sesión de Azure Container Registry a la configuración del entorno de ejecución que se encuentra en el archivo deployment.debug.template.json. Existen dos formas de hacerlo. Puede agregar las credenciales del Registro al archivo .env (más seguro) o agregarlas directamente al archivo deployment.debug.template.json.

    Agregue las credenciales al archivo .env:

    En el Explorador de soluciones, haga clic en el botón Mostrar todos los archivos. Aparecerá el archivo .env. Agregue su nombre de usuario y contraseña de Azure Container Registry al archivo .env. Estas credenciales se pueden encontrar en la página Claves de acceso de Azure Container Registry en Azure Portal.

    Captura de pantalla del botón que mostrará todos los archivos en Explorador de soluciones.

        DEFAULT_RT_IMAGE=1.2
        CONTAINER_REGISTRY_USERNAME_myregistry=<my-registry-name>
        CONTAINER_REGISTRY_PASSWORD_myregistry=<my-registry-password>
    

    Agregue credenciales directamente a deployment.debug.template.json:

    Si prefiere agregar las credenciales directamente a la plantilla de implementación, reemplace los marcadores de posición por el nombre de usuario de administrador de ACR real, la contraseña y el nombre del Registro.

          "settings": {
            "minDockerVersion": "v1.25",
            "loggingOptions": "",
            "registryCredentials": {
              "registry1": {
                "username": "<username>",
                "password": "<password>",
                "address": "<registry name>.azurecr.io"
              }
            }
          }
    

    Nota:

    En este artículo se usan credenciales de inicio de sesión de administrador de Azure Container Registry, que son prácticas para escenarios de desarrollo y pruebas. Cuando esté listo para escenarios de producción, se recomienda una opción de autenticación con privilegios mínimos, como las entidades de servicio. Para más información, consulte Administración del acceso al registro de contenedor.

  4. Si usa un registro local, puede ejecutar un registro local.

  5. Por último, en el Explorador de soluciones, haga clic con el botón derecho en la carpeta del proyecto principal y seleccione Compilación e inserción de módulos IoT Edge para compilar e insertar la imagen de Docker para cada módulo. Esta operación puede tardar un minuto. Cuando vea Finished Build and Push IoT Edge Modules. en la consola de salida de Visual Studio, ya habrá terminado.

Implementación de la solución

En el artículo de la guía de inicio rápido que siguió para configurar el dispositivo de IoT Edge, implementó un módulo mediante Azure Portal. También puede implementar módulos mediante la CLI de Visual Studio. Ya tiene una plantilla de manifiesto de implementación que ha estado observando en este tutorial. Vamos a generar un manifiesto de implementación a partir de eso y, a continuación, usaremos un comando de la CLI de Azure para implementar los módulos en el dispositivo IoT Edge en Azure.

  1. Haga clic con el botón derecho en el proyecto principal en el Explorador de soluciones de Visual Studio y elija Generar implementación para IoT Edge.

    Captura de pantalla de la ubicación del elemento de menú

  2. Vaya a la carpeta local del proyecto principal de Visual Studio y busque en la carpeta config. La ruta de acceso del archivo podría tener el aspecto siguiente: C:\Users\<YOUR-USER-NAME>\source\repos\<YOUR-IOT-EDGE-PROJECT-NAME>\config. Aquí encontrará el manifiesto de implementación generado, como deployment.amd64.debug.json.

  3. Compruebe el archivo deployment.amd64.debug.json para confirmar que la versión del esquema edgeHub está establecida en 1.2.

     "$edgeHub": {
         "properties.desired": {
           "schemaVersion": "1.2",
           "routes": {
             "IotEdgeModule2022ToIoTHub": "FROM /messages/modules/IotEdgeModule2022/outputs/* INTO $upstream",
             "sensorToIotEdgeModule2022": "FROM /messages/modules/SimulatedTemperatureSensor/outputs/temperatureOutput INTO BrokeredEndpoint(\"/modules/IotEdgeModule2022/inputs/input1\")",
             "IotEdgeModule2022bToIoTHub": "FROM /messages/modules/IotEdgeModule2022b/outputs/* INTO $upstream"
           },
           "storeAndForwardConfiguration": {
             "timeToLiveSecs": 7200
           }
         }
       }
    

    Sugerencia

    La plantilla de implementación para Visual Studio 2022 requiere la versión 1.2 del esquema. Si necesita que sea 1.1 o 1.0, espere hasta que se genere la implementación (no lo cambie en deployment.debug.template.json). La generación de una implementación creará un esquema 1.2 de forma predeterminada. Sin embargo, puede cambiar manualmente deployment.amd64.debug.json, el manifiesto generado, si es necesario, antes de implementarlo en Azure.

    Importante

    Una vez implementado el dispositivo IoT Edge, actualmente no se mostrará de forma correcta en Azure Portal con la versión 1.2 del esquema (pero sí con la versión 1.1). Se trata de un error conocido y se corregirá próximamente. Sin embargo, no afectará al dispositivo, ya que todavía está conectado en IoT Hub y se puede establecer comunicación con él en cualquier momento mediante la CLI de Azure.

    Captura de pantalla del error de Azure Portal en la página del dispositivo IoT Edge.

  4. Ahora vamos a implementar nuestro manifiesto con un comando de la CLI de Azure. Abra el Símbolo del sistema para desarrolladores de Visual Studio y vaya al directorio config.

        cd config
    
  5. Implemente el manifiesto del dispositivo IoT Edge en IoT Hub. El comando configura el dispositivo para usar módulos que se desarrollan en la solución. El manifiesto de implementación se creó en el paso anterior y se almacenó en la carpeta config. En la carpeta config, ejecute el siguiente comando de implementación. Reemplace [device id], [hub name] y [file path] con sus propios valores. Si el id. de dispositivo IoT Edge no existe en IoT Hub, deberá crearse.

        az iot edge set-modules --device-id [device id] --hub-name [hub name] --content [file path]
    

    Por ejemplo, el comando podría tener el siguiente aspecto:

    az iot edge set-modules --device-id my-device-name --hub-name my-iot-hub-name --content deployment.amd64.debug.json
    
  6. Después de ejecutar el comando, verá una confirmación de la implementación impresa en JSON en el símbolo del sistema.

Confirmación de la implementación en el dispositivo

Para comprobar que los módulos de IoT Edge se implementaron en Azure, inicie sesión en el dispositivo (o máquina virtual), por ejemplo mediante SSH o Azure Bastion, y ejecute el comando list de IoT Edge.

   iotedge list

Debería ver una lista de los módulos que se ejecutan en el dispositivo o la máquina virtual.

   NAME                        STATUS           DESCRIPTION      CONFIG
   SimulatedTemperatureSensor  running          Up a day         mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0
   edgeAgent                   running          Up a day         mcr.microsoft.com/azureiotedge-agent:1.2
   edgeHub                     running          Up a day         mcr.microsoft.com/azureiotedge-hub:1.2
   myIotEdgeModule             running          Up 2 hours       myregistry.azurecr.io/myiotedgemodule:0.0.1-amd64.debug
   myIotEdgeModule2            running          Up 2 hours       myregistry.azurecr.io/myiotedgemodule2:0.0.1-amd64.debug

Visualización de los datos generados

Para supervisar los mensajes del dispositivo a la nube (D2C) para un dispositivo IoT Edge específico, revise Tutorial: Supervisión de dispositivos IoT Edge para empezar.

Pasos siguientes

Para desarrollar módulos personalizados para los dispositivos IoT Edge, consulte Información y uso de los SDK de Azure IoT Hub.