Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Contenedor Docker de Hub SDK para integraciones gestionadas en Raspberry Pi
nota
Esta implementación del SDK de AWS IoT Hub en Raspberry Pi es un proyecto de demostración destinado únicamente a fines de aprendizaje y pruebas y no está destinado a ser utilizado en entornos de producción. Para esta demostración, defina las siguientes configuraciones para facilitar el desarrollo:
AWS almacenamiento de credenciales: solo con fines de demostración, las credenciales y los certificados se almacenan en un lugar accesible para facilitar las pruebas y el desarrollo. Los entornos de producción deben utilizar soluciones de almacenamiento seguras AWS Secrets Manager, como Systems Manager Parameter Store. Deben implementar el cifrado en reposo y seguir las pautas AWS IoT de seguridad.
Privilegios de contenedor: la demostración se ejecuta con privilegios elevados para permitir el acceso sin restricciones a los recursos del host y simplificar los flujos de trabajo de desarrollo. En producción, los contenedores deben funcionar con los privilegios mínimos requeridos.
Configuración de puente de red: la demostración utiliza una configuración de puente de red que expone el tráfico de red interno para facilitar la depuración y la supervisión. En los entornos de producción, implemente el aislamiento y la segmentación adecuados de la red para evitar el acceso no autorizado al tráfico de la red interna.
Permisos de dispositivos USB: se permite el acceso sin restricciones a los dispositivos USB para facilitar la conexión de los periféricos de desarrollo y los dispositivos de prueba. Para la producción, implemente controles y valide estrictos dispositivos USB para evitar ataques de suplantación de identidad.
Estas configuraciones permiten realizar pruebas sencillas y no deben utilizarse en entornos de producción. Al realizar la implementación en producción, siga las mejores prácticas de seguridad para evitar que el sistema anfitrión se vea comprometido y el acceso no autorizado a las credenciales.
Requisitos previos
Se requieren los siguientes requisitos previos para el contenedor docker.
-
Descargue e instale el generador de imágenes Raspberry Pi
. -
Obtenga una tarjeta SD.
-
Configura una Raspberry Pi 5 con una CPU de cuatro núcleos y 64 bits a 2,4 GHz (8
GB de RAM). -
Conecta un dongle USB Sonoff Zigbee
. -
Conecte un dongle SLUSB001A de Silicon Labs
. -
Instale la última versión de AWS CLI desde la Referencia de AWS CLI comandos de integraciones gestionadas.
Acceso SSH a la Raspberry Pi con dirección IP o nombre de host.
Utilice el contenedor Docker del SDK Hub de integraciones administradas en Raspberry Pi
Descarga las integraciones gestionadas Raspberry Pi Hub SDK Docker
. Copia el archivo a la Raspberry Pi usando SCP:
scp ~/path/to/IotMI-HubSDK-Docker-v1.0.0.tar.gz [username]@raspberrypi.local:~Conéctese a la Raspberry Pi a través de SSH:
ssh hub123456@raspberrypi.localInstale Docker si no está presente:
# Install Docker cd curl -fsSL https://get.docker.com | sudo sh # Add your user to docker group sudo usermod -aG docker $USER exit # exit ssh # Log in againInstale Docker Compose si no está presente:
# Install Docker Compose sudo apt-get update sudo apt-get install -y docker-compose-pluginExtraiga los archivos del SDK de Hub:
# Navigate to the home directory cd # Extract the hub-docker.tar.gz file tar -xzf IotMI-HubSDK-Docker-v1.0.0.tar.gzNavegue hasta el directorio hub-docker:
cd IotMI-HubSDK-DockerComplete la configuración de incorporación de Hub para configurar la autenticación y los ajustes.
nota
Debes estar en nuestra
YULDUBregión para realizar este paso.Inicie el contenedor Docker:
# The first time it's called, it will build the container docker compose up -d docker compose logs -f
Resultado esperado:
[+] Running 1/1 ✔ Container iotmi-hubsdk-docker-hubsdk-1 Started hubsdk-1 | -\-\-\-\-\-\-Checking USB dongles-\-\-\-\-\-\-\-\-\-\-\-\- hubsdk-1 | -\-\-\-\-\-\-Stopping SDK running processes-\-\- hubsdk-1 | iotmi_mqtt_proxy: no process found hubsdk-1 | ace_eventmgr: no process found hubsdk-1 | ace_zigbee_service: no process found hubsdk-1 | zwave_svc: no process found hubsdk-1 | iotmi_cdmb: no process found hubsdk-1 | iotmi_device_agent: no process found hubsdk-1 | iotmi_lpw_provisioner: no process found hubsdk-1 | iotmi_log_daemon: no process found hubsdk-1 | -\-\-\-\-\-\-Starting Hub SDK-\-\-\-\-\-\-\-\-\-\-\-\- hubsdk-1 | -\-\-\-\-\-\-Creating logs directory-\-\-\-\-\-\-\-\-\- hubsdk-1 | Logs directory created. hubsdk-1 | -\-\-\-\-\-\-Verifying Middleware paths-\-\-\-\-\-\- hubsdk-1 | All middleware libraries exist hubsdk-1 | -\-\-\-\-\-\-Verifying Middleware pre reqs-\-\- hubsdk-1 | AIPC and KVstroage directories exist hubsdk-1 | -\-\-\-\-\-\-Starting HubOnboarding-\-\-\-\-\-\-\-\-\-\- hubsdk-1 | -\-\-\-\-\-\-Starting MQTT Proxy-\-\-\-\-\-\-\-\-\-\- hubsdk-1 | -\-\-\-\-\-\-Staring Log Daemon-\-\- hubsdk-1 | -\-\-\-\-\-\-Starting Event Manager-\-\-\-\-\-\-\-\-\-\- hubsdk-1 | -\-\-\-\-\-\-Starting Zigbee Service-\-\-\-\-\-\-\-\-\- hubsdk-1 | -\-\-\-\-\-\-Starting Zwave Service-\-\-\-\-\-\-\-\-\- hubsdk-1 | /data/aws/iotmi/middleware/AceZwave/bin /data/aws/iotmi hubsdk-1 | /data/aws/iotmi hubsdk-1 | -\-\-\-\-\-\-Starting CDMB-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- hubsdk-1 | -\-\-\-\-\-\-Starting Agent-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- hubsdk-1 | -\-\-\-\-\-\-Starting Provisioner-\-\-\-\-\-\-\-\-\-\-\-\-\- hubsdk-1 | -\-\-\-\-\-\-Checking SDK status-\-\-\-\-\-\-\-\-\-\-\-\-\-\- hubsdk-1 | root 105 0.2 0.2 1093488 16608 ? Sl 20:51 0:00 ./iotmi_mqtt_proxy -C /data/aws/iotmi/config/iotmi_config.json hubsdk-1 | Process 'iotmi_mqtt_proxy' is running. hubsdk-1 | root 183 0.0 0.0 236272 3152 ? Sl 20:51 0:00 ./middleware/AceCommon/bin/ace_eventmgr hubsdk-1 | Process 'ace_eventmgr' is running. hubsdk-1 | root 190 12.0 0.1 319264 8352 ? Sl 20:51 0:04 ./middleware/AceZigbee/bin/ace_zigbee_service hubsdk-1 | Process 'ace_zigbee_service' is running. hubsdk-1 | root 200 0.0 0.1 1365792 12480 ? Sl 20:51 0:00 ./zwave_svc hubsdk-1 | Process 'zwave_svc' is running. hubsdk-1 | root 233 0.0 0.0 1198704 5760 ? Sl 20:51 0:00 ./iotmi_cdmb hubsdk-1 | Process 'iotmi_cdmb' is running. hubsdk-1 | root 268 0.2 0.2 2017424 21968 ? Sl 20:51 0:00 ./iotmi_device_agent hubsdk-1 | Process 'iotmi_device_agent' is running. hubsdk-1 | root 311 0.1 0.1 1523072 13008 ? Sl 20:51 0:00 ./iotmi_lpw_provisioner hubsdk-1 | Process 'iotmi_lpw_provisioner' is running. hubsdk-1 | root 132 0.0 0.0 875024 7232 ? Sl 20:51 0:00 ./iotmi_log_daemon hubsdk-1 | Process 'iotmi_log_daemon' is running. hubsdk-1 | -\-\-\-\-\-Successfully Started Hub SDK-\-\-\-
Tras iniciar correctamente el SDK de Hub, continúe con la integración y la administración del dispositivo enConfiguración guiada por el usuario para incorporar y operar dispositivos.
nota
Para acceder al shell bash del contenedor de Docker, ejecuta el siguiente comando:
docker compose exec hubsdk bashPara reiniciar el contenedor después de reiniciarlo, ejecuta el siguiente comando:
docker compose up -dPara actualizar el SDK de Hub, reemplaza los archivos binarios en la siguiente carpeta:
hub-docker/iotmiPara reiniciar el contenedor de forma segura y conservar los datos, haz lo siguiente:
docker compose down docker compose up -d docker compose logs -f