托管集成树莓派上的 Hub SDK Docker 容器 - 的托管集成 AWS IoT Device Management

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

托管集成树莓派上的 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 上使用托管集成中心 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 外壳,请运行以下命令:

    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