Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwaltete Integrationen Hub SDK Docker-Container auf Raspberry Pi
Anmerkung
Diese Implementierung des AWS IoT Hub SDK auf Raspberry Pi ist ein Demonstrationsprojekt, das nur zu Lern- und Testzwecken bestimmt ist und nicht für den Einsatz in Produktionsumgebungen vorgesehen ist. Stellen Sie für diese Demo die folgenden Konfigurationen ein, um die Entwicklung zu vereinfachen:
AWS Speicherung von Anmeldeinformationen: Nur zu Demo-Zwecken werden Anmeldeinformationen und Zertifikate an einem Ort gespeichert, auf den Zugriff zugegriffen werden kann, um das Testen und Entwickeln zu erleichtern. Produktionsumgebungen müssen sichere Speicherlösungen wie AWS Secrets Manager Systems Manager Parameter Store verwenden. Sie müssen Verschlüsselung im Ruhezustand implementieren und AWS IoT Sicherheitsrichtlinien einhalten.
Container-Rechte: Die Demo wird mit erhöhten Rechten ausgeführt, um uneingeschränkten Zugriff auf Host-Ressourcen zu ermöglichen und die Entwicklungsabläufe zu vereinfachen. In der Produktion sollten Container mit minimalen erforderlichen Rechten betrieben werden.
Konfiguration der Netzwerkbrücke: Die Demo verwendet eine Netzwerkbrückenkonfiguration, die internen Netzwerkverkehr für einfacheres Debuggen und Überwachen verfügbar macht. Implementieren Sie in Produktionsumgebungen eine angemessene Netzwerkisolierung und -segmentierung, um unbefugten Zugriff auf den internen Netzwerkverkehr zu verhindern.
USB-Geräteberechtigungen: Der uneingeschränkte Zugriff auf USB-Geräte ist aktiviert, um den einfachen Anschluss von Entwicklungsperipheriegeräten und Testgeräten zu ermöglichen. Implementieren Sie für die Produktion strenge Kontrollen und Validierungen von USB-Geräten, um Geräte-Spoofing-Angriffe zu verhindern.
Diese Konfigurationen ermöglichen unkomplizierte Tests und dürfen nicht in Produktionsumgebungen verwendet werden. Beachten Sie bei der Bereitstellung in der Produktionsumgebung die bewährten Sicherheitsmethoden, um eine Beeinträchtigung des Hostsystems und den unbefugten Zugriff auf Anmeldeinformationen zu verhindern.
Voraussetzungen
Für den Docker-Container sind die folgenden Voraussetzungen erforderlich.
-
Laden Sie den Raspberry Pi Imager
herunter und installieren Sie ihn. -
Besorgen Sie sich eine SD-Karte.
-
Richten Sie einen Raspberry Pi 5 mit einer 2,4-GHz-64-Bit-Quad-Core-CPU (8
GB RAM) ein. -
Connect einen Sonoff ZigBee USB-Dongle
an. -
Connect einen SLUSB001A-Dongle von Silicon Labs
an. -
Installieren Sie die neueste Version von AWS CLI aus der AWS CLI Befehlsreferenz für verwaltete Integrationen.
SSH-Zugriff auf den Raspberry Pi mit IP-Adresse oder Hostname.
Verwenden Sie den Docker-Container Managed Integrations Hub SDK auf dem Raspberry Pi
Laden Sie verwaltete Integrationen Raspberry Pi Hub SDK Docker
herunter. Kopieren Sie die Datei mit SCP auf den Raspberry Pi:
scp ~/path/to/IotMI-HubSDK-Docker-v1.0.0.tar.gz [username]@raspberrypi.local:~Stellen Sie über SSH Connect zum Raspberry Pi her:
ssh hub123456@raspberrypi.localInstallieren Sie Docker, falls nicht vorhanden:
# 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 againInstallieren Sie Docker Compose, falls nicht vorhanden:
# Install Docker Compose sudo apt-get update sudo apt-get install -y docker-compose-pluginExtrahieren Sie die Hub SDK-Dateien:
# Navigate to the home directory cd # Extract the hub-docker.tar.gz file tar -xzf IotMI-HubSDK-Docker-v1.0.0.tar.gzNavigieren Sie zum Hub-Docker-Verzeichnis:
cd IotMI-HubSDK-DockerSchließen Sie das Hub-Onboarding-Setup ab, um die Authentifizierung und die Einstellungen zu konfigurieren.
Anmerkung
Sie müssen sich in
YULoder in derDUBRegion befinden, um diesen Schritt ausführen zu können.Starten Sie den Docker-Container:
# The first time it's called, it will build the container docker compose up -d docker compose logs -f
Erwartete Ausgabe:
[+] 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-\-\-\-
Nachdem Sie das Hub-SDK erfolgreich gestartet haben, fahren Sie mit dem Onboarding und der Verwaltung von Geräten fort unterBenutzergeführte Einrichtung zur Einbindung und Bedienung von Geräten.
Anmerkung
Führen Sie den folgenden Befehl aus, um auf die Docker-Container-Bash-Shell zuzugreifen:
docker compose exec hubsdk bashFühren Sie den folgenden Befehl aus, um den Container nach dem Neustart neu zu starten:
docker compose up -dUm das Hub-SDK zu aktualisieren, ersetzen Sie die Binärdateien im folgenden Ordner:
hub-docker/iotmiGehen Sie wie folgt vor, um den Container sicher neu zu starten und gleichzeitig die Daten beizubehalten:
docker compose down docker compose up -d docker compose logs -f