Raspberry Pi 上的受管整合 Hub SDK Docker 容器 - 的受管整合 AWS IoT Device Management

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Raspberry Pi 上的受管整合 Hub SDK Docker 容器

注意

在 Raspberry Pi 上實作 AWS IoT Hub SDK 是一個示範專案,僅用於學習和測試目的,不適用於生產環境。基於本示範的目的,請設定下列組態以利開發:

AWS 登入資料儲存:僅供示範使用,登入資料和憑證會存放在可存取的位置,以便於測試和開發。生產環境必須使用安全儲存解決方案 AWS Secrets Manager,例如 或 Systems Manager 參數存放區。他們必須實作靜態加密,並遵循 AWS IoT 安全準則。

容器權限: 示範會以更高的權限執行,以允許不受限制地存取主機資源並簡化開發工作流程。在生產環境中,容器應以最低的必要權限運作。

網路橋接組態: 示範使用網路橋接組態來公開內部網路流量,以便於偵錯和監控。在生產環境中,實作適當的網路隔離和分割,以防止未經授權存取內部網路流量。

USB 裝置許可:啟用不受限制的 USB 裝置存取,以便輕鬆連接開發周邊裝置和測試裝置。針對生產環境,實作嚴格的 USB 裝置控制和驗證,以防止裝置詐騙攻擊。

這些組態可讓您直接進行測試,且不得用於生產環境。部署至生產環境時,請遵循安全最佳實務,以防止主機系統入侵和未經授權存取登入資料。

先決條件

Docker 容器需要下列先決條件。

在 Raspberry Pi 上使用受管整合 Hub SDK Docker 容器

  1. 下載受管整合 Raspberry Pi Hub SDK Docker

  2. 使用 SCP 將檔案複製到 Raspberry Pi:

    scp ~/path/to/IotMI-HubSDK-Docker-v1.0.0.tar.gz [username]@raspberrypi.local:~
  3. 透過 SSH 連線至 Raspberry Pi:

    ssh hub123456@raspberrypi.local
  4. 如果不存在,請安裝 Docker:

    # 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. 如果不存在,請安裝 Docker Compose:

    # Install Docker Compose sudo apt-get update sudo apt-get install -y docker-compose-plugin
  6. 解壓縮 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. 導覽至 hub-docker 目錄:

    cd IotMI-HubSDK-Docker
  8. 完成 Hub 加入設定以設定身分驗證和設定。

    注意

    您必須位於 YULDUB 區域才能執行此步驟。

  9. 啟動 Docker 容器:

    # The first time it's called, it will build the container docker compose up -d docker compose logs -f

預期的輸出:

[+] 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-\-\-\-

成功啟動 Hub SDK 後,請前往 繼續進行裝置加入和管理使用者引導設定以加入和操作裝置

注意
  • 若要存取 Docker 容器 bash shell,請執行下列命令:

    docker compose exec hubsdk bash
  • 若要在重新啟動後重新啟動容器,請執行下列命令:

    docker compose up -d
  • 若要更新 Hub SDK,請取代下列資料夾中的二進位檔:

    hub-docker/iotmi
  • 若要在保留資料時安全地重新啟動容器,請執行下列動作:

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