Ejercicio: Configuración de la comunicación entre IoT Hub e IoT Edge

Completado

En este ejercicio se usa la CLI de Azure en Azure Cloud Shell para ejecutar los comandos necesarios.

Captura de pantalla que muestra cómo conectarse a Azure Cloud Shell.

Instalación de la extensión de Azure IoT

Agregue la extensión de Azure IoT a la CLI de Azure de la instancia de Cloud Shell.

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 comprobar qué extensiones están instaladas, ejecute az extension list.

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

Ejecute 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 denominado "IoTEdgeResources" mediante la ejecución del comando siguiente:

az group create --name IoTEdgeResources --location eastus2

La salida será similar a la siguiente:

Captura de pantalla de la creación de un grupo de recursos.

Creación de un centro de IoT

El siguiente código crea un centro de nivel F1 gratuito en el grupo de recursos "IoTEdgeResources." Reemplace {hub_name} con un nombre único para su IoT Hub.

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

Nota:

Si recibe un error porque ya hay un hub gratuito en su suscripción, cambie el SKU a S1. Cada suscripción no puede tener más de un centro de IoT gratuito. Si recibe un error que indica que el nombre del centro de IoT no está disponible, significa que otra persona ya tiene un centro con ese nombre.

Registro de un dispositivo de IoT Edge

En Azure Cloud Shell, siga estos pasos para crear un dispositivo denominado "myEdgeDevice" en el centro.

Creación de una identidad de dispositivo

Los dispositivos IoT Edge se comportan y se administran de forma diferente a los dispositivos IoT típicos. Use la --edge-enabled marca para declarar esta identidad como un dispositivo IoT Edge.

Importante

Si ve un error sobre las "claves de directiva de iothubowner", asegúrese de que Cloud Shell ejecuta la versión más reciente de la azure-iot extensión.

El comando siguiente crea la identidad del dispositivo:

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

Una ilustración está mostrando la creación de la identidad del dispositivo.

Recuperación de la cadena de conexión

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

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

La salida 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, que se usa para configurar el entorno de ejecución de IoT Edge en la sección siguiente.

Implementación de un dispositivo IoT Edge

Use este comando de la CLI para crear el dispositivo IoT Edge basado en la plantilla iotedge-vm-deploy precompilada. Copie el comando en un editor de texto, reemplace el texto del marcador de posición por la información y péguelo en la ventana de Bash o 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) tiene al menos 12 caracteres e incluye tres de los siguientes: caracteres en minúsculas, caracteres en mayúsculas, dígitos y caracteres especiales.

Puede tardar unos minutos en crear e iniciar la nueva máquina virtual. Una vez completada la implementación, recibirá una 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 SSH pública en la sección de salidas :

Captura de pantalla que muestra ssh público.

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

Use este comando para conectarse a la máquina virtual. Reemplace azureuser si usó un nombre de usuario diferente 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>

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

Para comprobar si el demonio de seguridad de IoT Edge se está ejecutando como un servicio del sistema, se usan los comandos iotedge.

Importante

Necesita privilegios elevados para ejecutar comandos iotedge.

Ejecute el comando siguiente para comprobar el estado del dispositivo IoT Edge:

sudo systemctl status iotedge

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

Recorte de pantalla que muestra el estado del demonio de Azure IoT Edge.

Captura de pantalla que muestra la lista de módulos que se ejecutan en el dispositivo virtual.

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

Para 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. Puesto que el servicio se acaba de iniciar por primera vez, solo se ejecuta el 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