Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Integrazioni gestite Contenitore Docker Hub SDK su Raspberry Pi
Nota
Questa implementazione di AWS IoT Hub SDK su Raspberry Pi è un progetto dimostrativo destinato esclusivamente a scopi di apprendimento e test e non è destinata all'uso in ambienti di produzione. Ai fini di questa demo, imposta le seguenti configurazioni per facilitare lo sviluppo:
AWS archiviazione delle credenziali: solo a scopo dimostrativo, le credenziali e i certificati vengono archiviati in una posizione accessibile per facilitare i test e lo sviluppo. Gli ambienti di produzione devono utilizzare soluzioni di storage sicure come AWS Secrets Manager Systems Manager Parameter Store. Devono implementare la crittografia a riposo e seguire le linee guida AWS IoT di sicurezza.
Privilegi dei container: la demo viene eseguita con privilegi elevati per consentire l'accesso illimitato alle risorse dell'host e semplificare i flussi di lavoro di sviluppo. In produzione, i container devono funzionare con i privilegi minimi richiesti.
Configurazione del bridge di rete: la demo utilizza una configurazione di bridge di rete che espone il traffico di rete interno per facilitare il debug e il monitoraggio. Negli ambienti di produzione, implementa l'isolamento e la segmentazione della rete adeguati per impedire l'accesso non autorizzato al traffico di rete interno.
Autorizzazioni per dispositivi USB: l'accesso illimitato ai dispositivi USB è abilitato per facilitare il collegamento di periferiche di sviluppo e dispositivi di test. Per la produzione, implementa controlli e convalida rigorosi dei dispositivi USB per prevenire attacchi di spoofing dei dispositivi.
Queste configurazioni consentono test semplici e non devono essere utilizzate negli ambienti di produzione. Durante l'implementazione in produzione, segui le migliori pratiche di sicurezza per evitare la compromissione del sistema host e l'accesso non autorizzato alle credenziali.
Prerequisiti
I seguenti prerequisiti sono richiesti per il contenitore docker.
-
Scarica e installa Raspberry Pi imager
. -
Procurati una scheda SD
. -
Configura un Raspberry Pi 5 con CPU quad-core a 64 bit da 2,4 Ghz (8 GB
di RAM). -
Collega un dongle USB Sonoff Zigbee
. -
Connect un dongle SLUSB001A di Silicon Labs.
-
Installa la versione più recente di AWS CLI da Managed Integrations AWS CLI Command Reference.
Accesso SSH al Raspberry Pi con indirizzo IP o nome host.
Usa il contenitore Docker di Managed Integrations Hub SDK su Raspberry Pi
Copia il file su Raspberry Pi usando SCP:
scp ~/path/to/IotMI-HubSDK-Docker-v1.0.0.tar.gz [username]@raspberrypi.local:~Connect al Raspberry Pi tramite SSH:
ssh hub123456@raspberrypi.localInstalla Docker se non è 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 againInstalla Docker Compose se non è presente:
# Install Docker Compose sudo apt-get update sudo apt-get install -y docker-compose-pluginEstrai i file Hub SDK:
# Navigate to the home directory cd # Extract the hub-docker.tar.gz file tar -xzf IotMI-HubSDK-Docker-v1.0.0.tar.gzVai alla directory hub-docker:
cd IotMI-HubSDK-DockerCompleta la configurazione di Hub onboarding per configurare l'autenticazione e le impostazioni.
Nota
Per eseguire questo passaggio devi
YULtrovartiDUBnella nostra regione.Avvia il contenitore Docker:
# The first time it's called, it will build the container docker compose up -d docker compose logs -f
Output previsto:
[+] 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-\-\-\-
Dopo aver avviato con successo l'Hub SDK, procedi con l'onboarding e la gestione del dispositivo all'indirizzo. Configurazione guidata dall'utente per l'installazione e il funzionamento dei dispositivi
Nota
Per accedere alla shell bash del contenitore Docker, esegui il seguente comando:
docker compose exec hubsdk bashPer riavviare il contenitore dopo il riavvio, esegui il seguente comando:
docker compose up -dPer aggiornare l'Hub SDK, sostituisci i file binari nella seguente cartella:
hub-docker/iotmiPer riavviare il contenitore in sicurezza preservando i dati, procedi:
docker compose down docker compose up -d docker compose logs -f