Ejercicio: Configuración de IoT Edge para IoT Hub

Completado

Uso de Azure Cloud Shell

Para usar Azure Cloud Shell, inicie Cloud Shell desde la barra de navegación superior de Azure Portal.

An illustration is showing how to open Azure Cloud Shell.

Es necesario instalar la extensión IoT de Azure para la CLI de Azure mediante el comando siguiente. Esta extensión administra recursos de Azure, como IoT Hub.

az extension add --name azure-iot

Nota

En este artículo se usa la versión más reciente de la extensión de Azure IoT, denominada azure-iot. La versión heredada se denomina azure-cli-iot-ext. Solo debe tener instalada una versión a la vez. Para ver las extensiones que ha instalado, use az extension list.

Use az extension remove --name azure-cli-iot-ext para eliminar la versión heredada de la extensión.

Use az extension add --name azure-iot para agregar la nueva versión de la extensión.

Creación de un grupo de recursos

Cree un grupo de recursos en eastus2 con el siguiente comando. Asigne un nombre al grupo de recursos.

az group create --name <resource-group> --location eastus2

Creación de un centro de IoT

En el siguiente código se crea un centro F1 gratis en el grupo de recursos. Reemplace {hub_name} por un nombre único de la instancia de IoT Hub, y reemplace también <resource-group> por el nombre del grupo de recursos.

az iot hub create --resource-group <resource-group> --name {hub_name} --sku F1 --partition-count 2

Registro de un dispositivo IoT Edge en el centro de IoT

Cree una identidad de dispositivo para el dispositivo IoT Edge.

Como los dispositivos IoT Edge se comportan y se pueden administrar de manera diferente a los dispositivos IoT típicos, declare que esta identidad es para un dispositivo IoT Edge con la marca --edge-enabled.

Nota:

Si se produce un error porque ya hay un centro gratis en la suscripción, cambie la SKU a S1. Cada suscripción no puede tener más de un centro de IoT gratuito. Si recibe un error con respecto a que el nombre del centro de IoT no está disponible, significa que otro usuario ya tiene un centro con ese nombre.

En Azure Cloud Shell, escriba el siguiente comando para crear un dispositivo denominado myEdgeDevice en el centro.

az iot hub device-identity create --hub-name {hub_name} --device-id myEdgeDevice --edge-enabled

Recuperación de la cadena de conexión del dispositivo

Para recuperar la cadena de conexión del dispositivo, la cual vincula el dispositivo físico con su identidad en IoT Hub, use el siguiente comando:

az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name} --output table

La salida resultante debería ser similar a la siguiente:

HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyNodeDevice;SharedAccessKey={YourSharedAccessKey}

Copie el valor de la clave connectionString desde la salida JSON y guárdelo. Este valor es la cadena de conexión del dispositivo. La usará para configurar el entorno de ejecución de Azure IoT Edge en la sección siguiente.

Implementación de un dispositivo IoT Edge

Use el siguiente comando de la CLI para crear un dispositivo IoT Edge basado en la plantilla pregenerada iotedge-vm-deploy. Copie el comando siguiente en un editor de texto, reemplace el texto del marcador de posición por su información y, después, cópielo en la ventana de Bash o de Cloud Shell:

az deployment group create \
--resource-group IoTEdgeResources \
--template-uri "https://aka.ms/iotedge-vm-deploy" \
--parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' \
--parameters adminUsername='azureuser' \
--parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name
<REPLACE_WITH_HUB_NAME> -o tsv) \
--parameters authenticationType='password' \
--parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"

Asegúrese de que la contraseña (adminPasswordOrKey) tenga una longitud mínima de 12 caracteres y, al menos, tres de los siguientes: caracteres en minúsculas, caracteres en mayúsculas, dígitos y caracteres especiales.

La nueva máquina virtual puede tardar unos minutos en crearse e iniciarse. Una vez completada la implementación, debe recibir la salida con formato JSON en la CLI que contiene la información de SSH para conectarse a la máquina virtual. Copie el valor de la entrada de public SSH de la sección outputs.

Importante

El módulo de detección de idioma de IoT Edge requiere que la máquina virtual tenga al menos 8 GB de memoria y 16 GB de almacenamiento en disco. Se producirá un error en el módulo si usa el tamaño de VM predeterminado definido en la plantilla de implementación. Cambie el tamaño de la máquina virtual al tamaño mínimo de D2s_v3. Para obtener información sobre cómo cambiar el tamaño de las máquinas virtuales, consulte Cambio del tamaño de una máquina virtual. Para obtener más información sobre cómo expandir el almacenamiento en disco, consulte Cómo expandir discos duros virtuales conectados a una máquina virtual de Windows.

Visualización del estado del entorno de ejecución de Azure IoT Edge

Use el siguiente comando para conectarse a la máquina virtual. Reemplace azureuser si ha usado un nombre de usuario diferente al sugerido durante la implementación de la máquina virtual. Reemplace {DNS name} por el nombre DNS de la máquina.

ssh {admin username}@{DNS name}

Para buscar el nombre DNS:

  1. Vaya al grupo de recursos que ha creado.
  2. Seleccione el recurso de máquina virtual.
  3. En la página Información general encontrará el nombre DNS.

Comprobación de si el dispositivo IoT Edge está configurado

Usando comandos iotedge, comprobaremos que el demonio de seguridad de IoT Edge se ejecuta como un servicio del sistema. Necesitaremos privilegios elevados para ejecutar comandos iotedge.

Importante

Necesita privilegios elevados para ejecutar los comandos iotedge.

Ejecute los siguientes comandos para probar el estado del dispositivo IoT Edge:

sudo systemctl status iotedge

La salida resultante debería ser similar a la siguiente:

An illustration is showing status of Azure IoT Edge Deamon.

El dispositivo IoT Edge está ya configurado. Está preparado para ejecutar módulos implementados en la nube.

Si necesita solucionar problemas del servicio, recupere los registros del servicio.

journalctl -u iotedge

Vea todos los módulos que se ejecutan en el dispositivo IoT Edge. Como el servicio se acaba de iniciar por primera vez, solo verá la ejecución del módulo edgeAgent. El módulo edgeAgent se ejecuta de forma predeterminada y le ayuda a instalar e iniciar todos los módulos adicionales que implemente en el dispositivo.

sudo iotedge list