Implementación de una máquina virtual Linux habilitada para IoT Edge

Completado

Para probar la configuración de IoT Edge, tiene que implementar el entorno de ejecución de Azure IoT Edge en una máquina virtual (VM).

Antes de implementar dispositivos de IoT Edge reales en las tiendas, querrá comprobar que los dispositivos funcionen según lo previsto. Para probar el escenario, tiene previsto implementar el entorno de ejecución de Azure IoT Edge en una VM Linux de Azure y, a continuación, implementar los módulos de IoT Edge en esta VM.

Aquí, revisará algunos conceptos básicos de IoT Edge, aprenderá cómo se conecta un dispositivo de IoT Edge a una aplicación de IoT Central, y cómo IoT Central implementa los módulos de IoT Edge en el entorno de ejecución de Azure IoT Edge.

¿Qué es el entorno de ejecución de Azure IoT Edge?

El entorno de tiempo de ejecución de Azure IoT Edge permite lógica de la nube y personalizada en dispositivos de IoT Edge. El entorno en tiempo de ejecución se encuentra en el dispositivo de IoT Edge y realiza operaciones de administración y comunicación. Entorno de ejecución:

  • Instala y actualiza las cargas de trabajo en el dispositivo.
  • Mantiene los estándares de seguridad de Azure IoT Edge en el dispositivo.
  • Garantiza que los módulos de IoT Edge están siempre en ejecución.
  • Informa del estado de los módulos a la nube para realizar la supervisión remota.
  • Administra la comunicación entre los dispositivos de bajada y un dispositivo IoT Edge, entre los módulos de un dispositivo IoT Edge, entre un dispositivo IoT Edge y la nube, y entre dispositivos IoT Edge.

¿Qué son módulos de IoT Edge?

Los módulos de IoT Edge son unidades de ejecución que pueden ejecutar su lógica de negocios en los dispositivos perimetrales. Los módulos se implementan como contenedores compatibles con Docker. Se pueden configurar varios módulos para que se comuniquen entre sí al crear una canalización de procesamiento de datos. Puede desarrollar módulos personalizados o empaquetar determinados servicios de Azure en módulos que proporcionen información sin conexión y en el dispositivo perimetral. Dado que los módulos se ejecutan en contenedores de Docker, se comportan de la misma manera si están instalados tanto en una VM como en un dispositivo real.

En la siguiente unidad, instalará el entorno de ejecución de Azure IoT Edge e implementará un módulo personalizado que recopila datos ambientales para enviarlos a IoT Central. Un operador de IoT Central puede supervisar las condiciones ambientales en las tiendas mediante la visualización de la telemetría en los paneles de la aplicación.

¿Cómo se conecta un dispositivo de IoT Edge a IoT Central?

Los dispositivos IoT Edge, al igual que otros, usan IoT Hub Device Provisioning Service (DPS) para conectarse a la aplicación de IoT Central. En la unidad anterior, al agregar un dispositivo a la aplicación de IoT Central, ha anotado el id. de ámbito, el id. de dispositivo y la clave del dispositivo. Agregue estos valores al archivo de configuración de IoT Edge en el dispositivo de IoT Edge. La sección pertinente de este archivo TOML es similar a la siguiente. registration_id la identidad del dispositivo:

[provisioning]
source = "dps"
global_endpoint = "https://global.azure-devices-provisioning.net"
id_scope = "YOUR_ID_SCOPE"

[provisioning.attestation]
method = "symmetric_key"
registration_id = "YOUR_DEVICE_ID"
symmetric_key = { value = "YOUR_DEVICE_KEY" }

En la unidad siguiente, el script de implementación que usa para el dispositivo de IoT Edge edita el archivo de configuración automáticamente.

¿De qué manera IoT Central implementa los módulos en un entorno de ejecución de Azure IoT Edge?

En la unidad anterior, cuando creó la plantilla de dispositivo para el sensor ambiental, cargó un manifiesto de implementación en la plantilla. Cuando el entorno de ejecución de Azure IoT Edge se conecta a la aplicación de IoT Central, descarga el manifiesto de implementación. El entorno de ejecución usa la información del manifiesto de implementación para determinar qué módulos instalar y cómo configurarlos. Los módulos se descargan de un registro de contenedor, como Azure Container Registry o Docker Hub.

El manifiesto de implementación que usó instala los dos módulos del sistema obligatorios, edgeAgent y edgeHub, y un módulo SimulatedTemperatureSensor personalizado. Este módulo personalizado envía telemetría del ambiente y de la máquina a IoT Central y tiene dos propiedades, SendData y SendInterval, que un operador puede usar para configurar el módulo:

{
  "modulesContent": {
    "$edgeAgent": {
      "properties.desired": {
        "schemaVersion": "1.0",
        "runtime": {
          "type": "docker",
          "settings": {
            "minDockerVersion": "v1.25",
            "loggingOptions": "",
            "registryCredentials": {}
          }
        },
        "systemModules": {
          "edgeAgent": {
            "type": "docker",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-agent:1.4",
              "createOptions": "{}"
            }
          },
          "edgeHub": {
            "type": "docker",
            "status": "running",
            "restartPolicy": "always",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-hub:1.4",
              "createOptions": "{}"
            }
          }
        },
        "modules": {
          "SimulatedTemperatureSensor": {
            "version": "1.0",
            "type": "docker",
            "status": "running",
            "restartPolicy": "always",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.4.6",
              "createOptions": "{}"
            }
          }
        }
      }
    },
    "$edgeHub": {
      "properties.desired": {
        "schemaVersion": "1.0",
        "routes": {
            "route": "FROM /* INTO $upstream"
        },
        "storeAndForwardConfiguration": {
          "timeToLiveSecs": 7200
        }
      }
    },
    "SimulatedTemperatureSensor": {
      "properties.desired": {
           "SendData": true,
           "SendInterval": 10
      }
    }
  }
}

Implementación IoT Edge en una VM

1.

¿Cómo se conecta un dispositivo de IoT Edge a IoT Central?

2.

¿Desde dónde descarga los módulos un dispositivo de IoT Edge?