本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 成像器
。 -
取得 SD 卡
。 -
AWS CLI 從 受管整合 AWS CLI 命令參考安裝最新版本的 。
使用 IP 地址或主機名稱對 Raspberry Pi 的 SSH 存取。
在 Raspberry Pi 上使用受管整合 Hub SDK Docker 容器
使用 SCP 將檔案複製到 Raspberry Pi:
scp ~/path/to/IotMI-HubSDK-Docker-v1.0.0.tar.gz [username]@raspberrypi.local:~透過 SSH 連線至 Raspberry Pi:
ssh hub123456@raspberrypi.local如果不存在,請安裝 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如果不存在,請安裝 Docker Compose:
# Install Docker Compose sudo apt-get update sudo apt-get install -y docker-compose-plugin解壓縮 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導覽至 hub-docker 目錄:
cd IotMI-HubSDK-Docker完成 Hub 加入設定以設定身分驗證和設定。
注意
您必須位於
YUL或DUB區域才能執行此步驟。啟動 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