Integrazioni gestite Contenitore Docker Hub SDK su Raspberry Pi - Integrazioni gestite per AWS IoT Device Management

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.

Usa il contenitore Docker di Managed Integrations Hub SDK su Raspberry Pi

  1. Scarica Integrazioni gestite Raspberry Pi Hub SDK Docker.

  2. Copia il file su Raspberry Pi usando SCP:

    scp ~/path/to/IotMI-HubSDK-Docker-v1.0.0.tar.gz [username]@raspberrypi.local:~
  3. Connect al Raspberry Pi tramite SSH:

    ssh hub123456@raspberrypi.local
  4. Installa 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 again
  5. Installa Docker Compose se non è presente:

    # Install Docker Compose sudo apt-get update sudo apt-get install -y docker-compose-plugin
  6. Estrai 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.gz
  7. Vai alla directory hub-docker:

    cd IotMI-HubSDK-Docker
  8. Completa la configurazione di Hub onboarding per configurare l'autenticazione e le impostazioni.

    Nota

    Per eseguire questo passaggio devi YUL trovarti DUB nella nostra regione.

  9. 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 bash
  • Per riavviare il contenitore dopo il riavvio, esegui il seguente comando:

    docker compose up -d
  • Per aggiornare l'Hub SDK, sostituisci i file binari nella seguente cartella:

    hub-docker/iotmi
  • Per riavviare il contenitore in sicurezza preservando i dati, procedi:

    docker compose down docker compose up -d docker compose logs -f