Ejercicio: Configuración de la comunicación entre IoT Hub e IoT Edge
En este ejercicio se usa la CLI de Azure en Azure Cloud Shell para ejecutar los comandos necesarios.
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:
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
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 :
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:


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



