Implementación de módulos de Azure IoT Edge con la CLI de Azure
Se aplica a: IoT Edge 1.5 IoT Edge 1.4
Importante
IoT Edge 1.5 LTS e IoT Edge 1.4 LTS son versiones compatibles. IoT Edge 1.4 LTS finaliza el ciclo de vida el 12 de noviembre de 2024. Si está usando una versión anterior, consulte Actualización de IoT Edge.
Una vez que ha creado módulos de Azure IoT Edge con su lógica de negocios, querrá implementarlos en sus dispositivos para usarlos en el perímetro. Si tiene varios módulos que funcionan conjuntamente para recopilar y procesar datos, puede implementarlos todos a la vez. También puede declarar las reglas de enrutamiento que los conectan.
La CLI de Azure es una herramienta de la línea de comandos multiplataforma y de código abierto para la administración de recursos de Azure, como IoT Edge. Esta permite administrar recursos de Azure IoT Hub, instancias de servicio de aprovisionamiento de dispositivos y centros vinculados listos para usar. La extensión de IoT enriquece la CLI de Azure con características como administración de dispositivos y funcionalidad completa de IoT Edge.
En este artículo se muestra cómo crear un manifiesto de implementación de JSON y, luego, usar ese archivo para insertar la implementación en un dispositivo IoT Edge. Para información sobre la creación de una implementación dirigida a varios dispositivos en función de sus etiquetas compartidas, consulte Implementación y supervisión de módulos de IoT Edge a escala.
Requisitos previos
Una instancia de IoT Hub en la suscripción de Azure.
Un dispositivo IoT Edge.
Si no tiene un dispositivo IoT Edge configurado, puede crear uno en una máquina virtual de Azure. Siga los pasos de alguno de los artículos de inicio rápido para Crear un dispositivo virtual Linux o Crear un dispositivo virtual Windows.
La CLI de Azure en su entorno. Como mínimo, la versión de la CLI de Azure debe ser la 2.0.70 o posterior. Use
az --version
para asegurarse. Esta versión admite comandos az extension e introduce la plataforma de comandos de Knack.
Configuración de un manifiesto de implementación
Un manifiesto de implementación es un documento JSON que describe qué módulos se van a implementar, cómo fluyen los datos entre los módulos y las propiedades deseadas de los módulos gemelos. Para más información sobre los manifiestos de implementación y cómo crearlos, consulte Descripción de cómo se pueden utilizar, configurar y reutilizar los módulos de IoT Edge.
Para implementar módulos con la CLI de Azure, guarde el manifiesto de implementación localmente como un archivo .json. Use la ruta de acceso al archivo de la siguiente sección cuando ejecute el comando para aplicar la configuración al dispositivo.
Este es un manifiesto de implementación básico con un módulo como ejemplo:
Nota:
Este manifiesto de implementación de ejemplo usa la versión de esquema 1.1 para el centro y el agente de IoT Edge. La versión de esquema 1.1 se publicó junto con la versión 1.0.10 de IoT Edge y habilita características como el orden de inicio y la priorización de rutas del módulo.
{
"content": {
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"schemaVersion": "1.1",
"runtime": {
"type": "docker",
"settings": {
"minDockerVersion": "v1.25",
"loggingOptions": "",
"registryCredentials": {}
}
},
"systemModules": {
"edgeAgent": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.5",
"createOptions": "{}"
}
},
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.5",
"createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}],\"443/tcp\":[{\"HostPort\":\"443\"}]}}}"
}
}
},
"modules": {
"SimulatedTemperatureSensor": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5",
"createOptions": "{}"
}
}
}
}
},
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.1",
"routes": {
"upstream": "FROM /messages/* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
},
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 5
}
}
}
}
}
Implementación en el dispositivo
Para implementar los módulos en el dispositivo, aplique el manifiesto de implementación que configuró con la información del módulo.
Cambie los directorios a la carpeta en la que guardó el manifiesto de implementación. Si ha usado una de las plantillas de IoT Edge para Visual Studio Code, use el archivo deployment.json
de la carpeta config del directorio de la solución y no el archivo deployment.template.json
.
Utilice el siguiente comando para aplicar la configuración a un dispositivo IoT Edge:
az iot edge set-modules --device-id [device id] --hub-name [hub name] --content [file path]
El parámetro del id. de dispositivo distingue mayúsculas y minúsculas. El parámetro "content" apunta al archivo del manifiesto de implementación que guardó.
Visualización de módulos en el dispositivo
Una vez que los módulos se han implementado en el dispositivo, puede verlos todos con el siguiente comando:
Vea los módulos en el dispositivo de IoT Edge:
az iot hub module-identity list --device-id [device id] --hub-name [hub name]
El parámetro del id. de dispositivo distingue mayúsculas y minúsculas.
Pasos siguientes
Aprenda a implementar y supervisar módulos de IoT Edge a escala