

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

# Integrasi Terkelola Hub SDK Docker container di Raspberry Pi
<a name="raspberrypi-container-docker-sdk"></a>

**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 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
<a name="required-hardware-software"></a>

Prasyarat berikut diperlukan untuk wadah docker.
+ Unduh dan instal [Raspberry Pi imager.](https://www.raspberrypi.com/software/)
+ Dapatkan [Kartu SD](https://www.amazon.com/dp/B0CWPPDS3D?ref=ppx_yo2ov_dt_b_fed_asin_title).
+ Siapkan [Raspberry Pi 5 dengan CPU quad-core 2.4Ghz 64-bit (](https://www.amazon.com/CanaKit-Raspberry-Starter-Kit-PRO/dp/B0CRSNCJ6Y/)RAM 8GB).
+ Hubungkan [Dongle USB Sonoff Zigbee](https://www.amazon.com/Plus-ZBDongle-Interface-Pre-Installed-Coordinated-Zigbee2MQTT/dp/B0B6P22YJC/).
+ [Flash firmware ke dongle USB Sonoff Zigbee](supported-raspberry.md#sonoff-zigbee-firmware-flashing).
+ Hubungkan Dongle [Silicon Labs SLUSB001A](https://www.digikey.com/en/products/detail/silicon-labs/SLUSB001A/9867108).
+ [Mendaftar untuk sebuah AWS akun](https://docs.aws.amazon.com/iot-mi/latest/devguide/setting-up.html#sign-up-for-aws).
+ Instal versi terbaru [AWS CLI dari Referensi AWS CLI Perintah Integrasi Terkelola](https://docs.aws.amazon.com/cli/latest/reference/iot-managed-integrations/).
+ Akses SSH ke Raspberry Pi dengan alamat IP atau nama host.

## Gunakan wadah SDK Docker Hub Integrasi Terkelola di Raspberry Pi
<a name="docker-container-deployment"></a>

1. Unduh [Integrasi Terkelola Raspberry Pi Hub SDK Docker](https://d2no7dt1utuyzo.cloudfront.net/IotMI-HubSDK-RaspberryPi/1.0.0/IotMI-HubSDK-Docker-v1.0.0.tar.gz).

1. Salin file ke Raspberry Pi menggunakan SCP:

   ```
   scp ~/path/to/IotMI-HubSDK-Docker-v1.0.0.tar.gz [username]@raspberrypi.local:~
   ```

1. Connect ke Raspberry Pi melalui SSH:

   ```
   ssh hub123456@raspberrypi.local
   ```

1. 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
   ```

1. Instal Docker Compose jika tidak ada:

   ```
   # Install Docker Compose
   sudo apt-get update
   sudo apt-get install -y docker-compose-plugin
   ```

1. 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
   ```

1. Arahkan ke direktori hub-docker:

   ```
   cd IotMI-HubSDK-Docker
   ```

1. Selesaikan [pengaturan orientasi Hub](https://docs.aws.amazon.com/iot-mi/latest/devguide/managedintegrations-sdk-v2-cookbook-hubsetup.html) untuk mengonfigurasi otentikasi dan pengaturan.
**catatan**  
Anda harus berada di `YUL` atau `DUB` wilayah untuk melakukan langkah ini.

1. 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](managedintegrations-sdk-v2-cookbook-ugs.md) 

**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 me-restart kontainer dengan aman sambil menyimpan data, lakukan:  

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