本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
托管集成树莓派上的 Hub SDK Docker 容器
注意
Raspberry Pi 上的 AWS IoT Hub SDK 的实现是一个演示项目,仅用于学习和测试目的,不打算在生产环境中使用。在本演示中,为了便于开发,请设置以下配置:
AWS 凭证存储:仅出于演示目的,凭证和证书存储在可访问的位置,便于测试和开发。生产环境必须使用安全的存储解决方案 AWS Secrets Manager,例如或 Systems Manager Parameter Store。他们必须实现静态加密,并遵循 AWS IoT 安全准则。
容器权限:该演示以提升的权限运行,允许不受限制地访问主机资源并简化开发工作流程。在生产环境中,容器应以最低要求的权限运行。
网桥配置:该演示使用网络桥接配置,该配置可公开内部网络流量,便于调试和监控。在生产环境中,实施适当的网络隔离和分段,以防止未经授权访问内部网络流量。
USB 设备权限:启用不受限制的 USB 设备访问权限,便于轻松连接开发外围设备和测试设备。在生产环境中,实施严格的 USB 设备控制和验证,以防止设备欺骗攻击。
这些配置支持直接测试,不得在生产环境中使用。部署到生产环境时,请遵循安全最佳实践,以防止主机系统受损和未经授权访问凭证。
先决条件
docker 容器需要满足以下先决条件。
-
下载并安装 Raspberry Pi 成像器。
-
获取 S D 卡
。 -
连接 Sonoff Zigbee
USB 加密狗。 -
安装托管集成 AWS CLI 命令参考AWS CLI 中的最新版本的。
使用 IP 地址或主机名通过 SSH 访问树莓派。
在 Raspberry Pi 上使用托管集成中心 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 外壳,请运行以下命令:
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