Integrasi terkelola wadah Hub SDK Docker di Raspberry Pi - Integrasi terkelola untuk AWS IoT Device Management

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Integrasi terkelola wadah Hub SDK Docker di Raspberry Pi

catatan

Implementasi AWS IoT Hub SDK pada Raspberry Pi ini adalah proyek demonstrasi yang ditujukan untuk tujuan pembelajaran dan pengujian saja dan tidak dimaksudkan untuk digunakan di lingkungan produksi. Untuk keperluan demo ini, atur konfigurasi berikut untuk kemudahan pengembangan:

AWS penyimpanan kredensial: Hanya untuk tujuan demo, kredensional dan sertifikat disimpan di lokasi yang dapat diakses untuk pengujian dan pengembangan yang lebih mudah. Lingkungan produksi harus menggunakan solusi penyimpanan yang aman seperti AWS Secrets Manager, atau Systems Manager Parameter Store. Mereka harus menerapkan enkripsi saat istirahat, dan mengikuti pedoman AWS IoT keamanan.

Hak istimewa kontainer: Demo berjalan dengan hak istimewa yang ditingkatkan untuk memungkinkan akses tidak terbatas ke sumber daya host dan menyederhanakan alur kerja pengembangan. Dalam produksi, kontainer harus beroperasi dengan hak istimewa minimal yang diperlukan.

Konfigurasi jembatan jaringan: Demo menggunakan konfigurasi jembatan jaringan yang mengekspos lalu lintas jaringan internal untuk memudahkan debugging dan pemantauan. Dalam lingkungan produksi, terapkan isolasi dan segmentasi jaringan yang tepat untuk mencegah akses tidak sah ke lalu lintas jaringan internal.

Izin perangkat USB: Akses perangkat USB yang tidak dibatasi diaktifkan untuk memudahkan koneksi periferal pengembangan dan perangkat pengujian. Untuk produksi, terapkan kontrol dan validasi perangkat USB yang ketat untuk mencegah serangan spoofing perangkat.

Konfigurasi ini memungkinkan pengujian langsung dan tidak boleh digunakan di lingkungan produksi. Saat menerapkan ke produksi, ikuti praktik terbaik keamanan untuk mencegah kompromi sistem host dan akses tidak sah ke kredensi.

Prasyarat

Prasyarat berikut diperlukan untuk wadah docker.

Gunakan integrasi terkelola wadah Hub SDK Docker di Raspberry Pi

  1. Unduh integrasi terkelola Raspberry Pi Hub SDK Docker.

  2. Salin file ke Raspberry Pi menggunakan SCP:

    scp ~/path/to/IotMI-HubSDK-Docker-v1.0.0.tar.gz [username]@raspberrypi.local:~
  3. Connect ke Raspberry Pi melalui SSH:

    ssh hub123456@raspberrypi.local
  4. Instal Docker jika tidak ada:

    # 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. Instal Docker Compose jika tidak ada:

    # Install Docker Compose sudo apt-get update sudo apt-get install -y docker-compose-plugin
  6. Ekstrak file 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. Arahkan ke direktori hub-docker:

    cd IotMI-HubSDK-Docker
  8. Selesaikan pengaturan orientasi Hub untuk mengonfigurasi otentikasi dan pengaturan.

    catatan

    Anda harus berada di YUL atau DUB wilayah untuk melakukan langkah ini.

  9. Mulai wadah Docker:

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

Output yang diharapkan:

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

Setelah berhasil memulai Hub SDK, lanjutkan dengan orientasi dan pengelolaan perangkat di. Penyiapan yang dipandu pengguna untuk onboard dan mengoperasikan perangkat

catatan
  • Untuk mengakses shell bash container Docker, jalankan perintah berikut:

    docker compose exec hubsdk bash
  • Untuk me-restart wadah setelah reboot, jalankan perintah berikut:

    docker compose up -d
  • Untuk memperbarui Hub SDK, ganti binari di folder berikut:

    hub-docker/iotmi
  • Untuk memulai ulang kontainer dengan aman sambil menyimpan data, lakukan:

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