

Pemberitahuan akhir dukungan: Pada 7 Oktober 2026, AWS akan menghentikan dukungan untuk. AWS IoT Greengrass Version 1 Setelah 7 Oktober 2026, Anda tidak akan lagi dapat mengakses sumber daya. AWS IoT Greengrass V1 Untuk informasi lebih lanjut, silakan kunjungi [Migrasi dari AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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

# Modul 5: Berinteraksi dengan bayangan perangkat
<a name="module5"></a>

Modul lanjutan ini menunjukkan kepada Anda bagaimana perangkat klien dapat berinteraksi dengan [bayangan AWS IoT perangkat](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html) dalam AWS IoT Greengrass grup. *Bayangan* adalah dokumen JSON yang digunakan untuk menyimpan informasi keadaan saat ini atau yang diinginkan untuk suatu hal. Dalam modul ini, Anda menemukan bagaimana satu perangkat klien (`GG_Switch`) dapat mengubah status perangkat klien lain (`GG_TrafficLight`) dan bagaimana status ini dapat disinkronkan ke AWS IoT Greengrass cloud:

![\[AWS IoT Greengrass inti terhubung ke bayangan perangkat lampu lalu lintas dan perangkat sakelar lampu.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/gg-get-started-077.5.png)


Sebelum Anda memulai, jalankan skrip [Pengaturan perangkat Greengrass](quick-start.md) ini, atau pastikan bahwa Anda telah menyelesaikan [Modul 1](module1.md) dan [Modul 2](module2.md). Anda juga harus memahami cara menghubungkan perangkat klien ke AWS IoT Greengrass inti ([Modul 4](module4.md)). Anda tidak memerlukan komponen atau perangkat lain.

Modul ini akan memakan waktu sekitar 30 menit untuk menyelesaikannya.

**Topics**
+ [Konfigurasikan perangkat dan langganan](config-dev-subs.md)
+ [Unduh file yang diperlukan](file-download.md)
+ [Uji komunikasi (sinkronisasi perangkat dinonaktifkan)](comms-disabled.md)
+ [Uji komunikasi (sinkronisasi perangkat diaktifkan)](comms-enabled.md)

# Konfigurasikan perangkat dan langganan
<a name="config-dev-subs"></a>

Bayangan dapat disinkronkan AWS IoT ketika AWS IoT Greengrass inti terhubung ke internet. Dalam modul ini, Anda pertama kali menggunakan bayangan lokal tanpa menyinkronkan ke cloud. Kemudian, Anda mengaktifkan sinkronisasi cloud.

Setiap perangkat klien memiliki bayangannya sendiri. Untuk informasi lebih lanjut, lihat [Layanan bayangan perangkat untuk AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html) di *AWS IoT Panduan Developer*.

1. Pada halaman konfigurasi grup, pilih tab **Perangkat klien**.

1. Dari tab **Perangkat klien**, tambahkan dua perangkat klien baru di AWS IoT Greengrass grup Anda. Untuk langkah-langkah rinci tentang proses ini, lihat [Membuat perangkat klien dalam AWS IoT Greengrass grup](device-group.md).
   + Beri nama perangkat klien **GG\$1Switch** dan**GG\$1TrafficLight**.
   + Hasilkan dan unduh sumber daya keamanan untuk kedua perangkat klien.
   + Catat ID sertifikat dalam nama file sumber daya keamanan untuk perangkat klien. Anda menggunakan nilai-nilai ini kemudian.

1. Buat folder di komputer Anda untuk kredensi keamanan perangkat klien ini. Salin sertifikat dan kunci ke folder ini.

1. Pastikan bahwa perangkat klien diatur untuk menggunakan bayangan lokal dan tidak disinkronkan dengan AWS Cloud. Jika tidak, pilih perangkat klien, pilih **Sinkronkan bayangan**, lalu pilih **Nonaktifkan sinkronisasi bayangan dengan cloud**.

1. <a name="module5-subscriptions"></a>Tambahkan langganan dalam tabel berikut ke grup Anda. Sebagai contoh, untuk membuat langganan pertama:

   1. Pada halaman konfigurasi grup, pilih tab **Langganan**, lalu pilih **Tambah**.

   1. Untuk **jenis Sumber**, pilih **Perangkat klien**, lalu pilih **GG\$1Switch**.

   1. Untuk **jenis Target**, pilih **Layanan**, lalu pilih **Layanan Bayangan Lokal**.

   1. Untuk **Filter topik**, masukkan **\$1aws/things/GG\$1TrafficLight/shadow/update**

   1. Pilih **Buat langganan**.

   Topik harus dimasukkan persis seperti yang ditunjukkan pada tabel. Meskipun mengizinkan untuk menggunakan wildcard untuk mengonsolidasikan beberapa langganan, kami tidak menyarankan praktik ini. Untuk informasi lebih lanjut, lihat [topik Bayangan MQTT](https://docs.aws.amazon.com/iot/latest/developerguide/device-shadow-mqtt.html) di *AWS IoT Panduan Developer*.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/config-dev-subs.html)

   Langganan baru ditampilkan di tab **Langganan**.
**catatan**  
Untuk informasi tentang `$` karakter, lihat [topik yang Dipesan](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html#reserved-topics).

1. <a name="enable-automatic-detection"></a>Pastikan bahwa deteksi otomatis diaktifkan sehingga core Greengrass dapat menerbitkan daftar alamat IP-nya. Perangkat klien menggunakan informasi ini untuk menemukan intinya. Lakukan hal-hal berikut:

   1. Pada halaman konfigurasi grup, pilih tab **fungsi Lambda**.

   1. **Di bawah **fungsi Sistem Lambda**, pilih **detektor IP**, lalu pilih Edit.**

   1. **Dalam **pengaturan Edit detektor IP**, pilih **Deteksi dan ganti titik akhir broker MQTT secara otomatis**, lalu pilih Simpan.**

1. Pastikan bahwa Greengrass daemon berjalan, seperti yang dijelaskan dalam [Men-deploy konfigurasi cloud ke perangkat core](configs-core.md).

1. <a name="console-actions-deploy"></a>Pada halaman konfigurasi grup, pilih **Deploy**.

# Unduh file yang diperlukan
<a name="file-download"></a>

1. Jika Anda belum melakukannya, instal AWS IoT Device SDK untuk Python. Untuk petunjuk, lihat langkah 1 dalam [Instal AWS IoT Device SDK untuk Python](IoT-SDK.md).

   SDK ini digunakan oleh perangkat klien untuk berkomunikasi dengan AWS IoT dan dengan perangkat AWS IoT Greengrass inti.

1. Dari folder [ TrafficLight](https://github.com/aws/aws-greengrass-core-sdk-python/tree/master/examples/TrafficLight)contoh GitHub, unduh `trafficLight.py` file `lightController.py` dan file ke komputer Anda. Simpan di folder yang berisi sertifikat dan kunci perangkat TrafficLight klien GG\$1Switch dan GG\$1.

   `lightController.py`Skrip sesuai dengan perangkat klien GG\$1Switch, dan `trafficLight.py` skrip sesuai dengan perangkat klien GG\$1TrafficLight .   
![\[Screenshot dari file termasuk dua skrip Python dan sertifikat perangkat dan kunci.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/gg-get-started-082.png)
**catatan**  
Contoh file Python disimpan di AWS IoT Greengrass Core SDK untuk repositori Python untuk kenyamanan, tetapi mereka tidak menggunakan Core SDK. AWS IoT Greengrass 

# Uji komunikasi (sinkronisasi perangkat dinonaktifkan)
<a name="comms-disabled"></a>

1. <a name="ping-device"></a>Pastikan komputer Anda dan perangkat AWS IoT Greengrass inti terhubung ke internet menggunakan jaringan yang sama.

   1. Pada perangkat AWS IoT Greengrass inti, jalankan perintah berikut untuk menemukan alamat IP-nya.

      ```
      hostname -I
      ```

   1. Dalam komputer Anda, jalankan perintah berikut menggunakan alamat IP core. Anda dapat menggunakan Ctrl \$1 C untuk menghentikan perintah **ping** ini.

      ```
      ping IP-address
      ```

      Output yang mirip dengan berikut ini menunjukkan komunikasi yang berhasil antara komputer dan perangkat AWS IoT Greengrass inti (0% packet loss):  
![\[Output perintah ping yang berhasil.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/gg-get-started-075.5.png)
**catatan**  
Jika Anda tidak dapat melakukan ping ke EC2 instance yang sedang berjalan AWS IoT Greengrass, pastikan bahwa aturan grup keamanan masuk untuk instance mengizinkan lalu lintas ICMP untuk pesan permintaan [Echo](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-ping). Untuk informasi selengkapnya, lihat [Menambahkan aturan ke grup keamanan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#adding-security-group-rule) di *Panduan EC2 Pengguna Amazon*.  
Pada komputer host Windows, di Windows Firewall dengan aplikasi Keamanan Lanjutan, Anda mungkin juga perlu mengaktifkan aturan masuk yang memungkinkan permintaan gema masuk (misalnya, **Berbagi File dan Printer (Permintaan Gema - ICMPv4 -In))**, atau buat satu.

1. Dapatkan AWS IoT titik akhir Anda.

   1. <a name="iot-settings"></a>Dari panel navigasi [AWS IoT konsol](https://console.aws.amazon.com/iot/), pilih **Pengaturan**.

   1. <a name="iot-settings-endpoint"></a>Di bawah **titik akhir data perangkat**, catat nilai **Endpoint**. Anda menggunakan nilai ini untuk mengganti *AWS\$1IOT\$1ENDPOINT* placeholder dalam perintah dalam langkah-langkah berikut.
**catatan**  
Pastikan bahwa [titik akhir Anda sesuai dengan jenis sertifikat Anda](gg-core.md#certificate-endpoints).

1. <a name="repeated-step"></a>Di komputer Anda (bukan perangkat AWS IoT Greengrass inti), buka dua jendela [baris perintah](https://en.wikipedia.org/wiki/Command-line_interface) (terminal atau command prompt). Satu jendela mewakili perangkat klien GG\$1Switch dan yang lainnya mewakili perangkat klien GG\$1TrafficLight .

   1. <a name="run-switch-device"></a>Dari jendela perangkat klien GG\$1Switch, jalankan perintah berikut.
      + Ganti *path-to-certs-folder* dengan path ke folder yang berisi sertifikat, kunci, dan file Python.
      + Ganti *AWS\$1IOT\$1ENDPOINT* dengan endpoint Anda.
      + Ganti dua *switchCertId* instance dengan ID sertifikat dalam nama file untuk perangkat klien GG\$1Switch Anda.

      ```
      cd path-to-certs-folder
      python lightController.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert switchCertId-certificate.pem.crt --key switchCertId-private.pem.key --thingName GG_TrafficLight --clientId GG_Switch
      ```

   1. <a name="run-trafficlight-device"></a>Dari jendela perangkat TrafficLight klien GG\$1, jalankan perintah berikut.
      + Ganti *path-to-certs-folder* dengan path ke folder yang berisi sertifikat, kunci, dan file Python.
      + Ganti *AWS\$1IOT\$1ENDPOINT* dengan endpoint Anda.
      + Ganti dua *lightCertId* instance dengan ID sertifikat di nama file untuk perangkat TrafficLight klien GG\$1 Anda.

      ```
      cd path-to-certs-folder
      python trafficLight.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert lightCertId-certificate.pem.crt --key lightCertId-private.pem.key --thingName GG_TrafficLight --clientId GG_TrafficLight
      ```

      Setiap 20 detik, switch memperbarui keadaan bayangan untuk G, Y, dan R, dan light menampilkan keadaan baru, seperti yang ditunjukkan selanjutnya.

      Output GG\$1Switch:  
![\[Screenshot dari output yang terkait dengan GG_switch.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/gg-get-started-083.png)

      TrafficLight Keluaran GG\$1:  
![\[Tangkapan layar dari output yang terkait dengan GG_TrafficLight.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/gg-get-started-084.png)

   Ketika dijalankan untuk pertama kalinya, setiap skrip perangkat klien menjalankan layanan AWS IoT Greengrass penemuan untuk terhubung ke AWS IoT Greengrass inti (melalui internet). Setelah perangkat klien ditemukan dan berhasil terhubung ke AWS IoT Greengrass inti, operasi future dapat dijalankan secara lokal.
**catatan**  
<a name="check-connection-info"></a> Skrip `lightController.py` dan `trafficLight.py` menyimpan informasi koneksi di `groupCA` folder, yang dibuat dalam folder yang sama sebagai skrip. Jika Anda menerima eror koneksi, pastikan bahwa alamat IP di file `ggc-host` cocok dengan titik akhir alamat IP untuk core Anda.

1. Di AWS IoT konsol, pilih AWS IoT Greengrass grup Anda, pilih tab **Perangkat klien**, lalu pilih **GG\$1 TrafficLight** untuk membuka halaman detail AWS IoT hal perangkat klien.

1. Pilih tab **Device Shadows**. Setelah GG\$1Switch mengubah status, seharusnya tidak ada pembaruan apa pun pada bayangan ini. Itu karena GG\$1 TrafficLight diatur ke **Nonaktifkan sinkronisasi bayangan dengan cloud**.

1. Tekan Ctrl \$1 C di jendela perangkat klien gg\$1switch (`lightController.py`). Anda akan melihat bahwa jendela GG\$1 TrafficLight (`trafficLight.py`) berhenti menerima pesan perubahan status.

   Jaga jendela ini terbuka sehingga Anda dapat menjalankan perintah di bagian selanjutnya.

# Uji komunikasi (sinkronisasi perangkat diaktifkan)
<a name="comms-enabled"></a>

Untuk pengujian ini, Anda mengonfigurasi bayangan TrafficLight perangkat GG\$1 untuk disinkronkan AWS IoT. Anda menjalankan perintah yang sama seperti pada pengujian sebelumnya, tetapi kali ini status bayangan di cloud diperbarui ketika GG\$1Switch mengirimkan permintaan pembaruan.

1. Di AWS IoT konsol, pilih AWS IoT Greengrass grup Anda, lalu pilih tab **Perangkat klien**.

1. Pilih TrafficLight perangkat GG\$1, pilih **Sinkronkan bayangan**, lalu pilih **Aktifkan sinkronisasi bayangan dengan cloud**.

   Anda akan menerima pemberitahuan bahwa status sinkronisasi bayangan perangkat telah diperbarui.

1. <a name="console-actions-deploy"></a>Pada halaman konfigurasi grup, pilih **Deploy**.

1. [Di dua jendela baris perintah Anda, jalankan perintah dari pengujian sebelumnya untuk perangkat klien [GG\$1Switch dan GG\$1](comms-disabled.md#run-switch-device). TrafficLight](comms-disabled.md#run-trafficlight-device)

1. Sekarang, periksa status bayangan di AWS IoT konsol. Pilih AWS IoT Greengrass grup Anda, pilih tab **Perangkat klien**, pilih **GG\$1 TrafficLight**, pilih tab **Device Shadows**, lalu pilih **Classic Shadow**.

   Karena Anda mengaktifkan sinkronisasi TrafficLight bayangan GG\$1 ke AWS IoT, status bayangan di cloud harus diperbarui setiap kali GG\$1Switch mengirim pembaruan. Fungsionalitas ini dapat digunakan untuk mengekspos status perangkat klien. AWS IoT
**catatan**  
Jika perlu, Anda dapat memecahkan masalah dengan melihat log AWS IoT Greengrass inti, khususnya: `runtime.log`  

   ```
   cd /greengrass/ggc/var/log
   sudo cat system/runtime.log | more
   ```
 Anda juga dapat melihat `GGShadowSyncManager.log` dan `GGShadowService.log`. Untuk informasi selengkapnya, lihat [Pemecahan masalah AWS IoT Greengrass](gg-troubleshooting.md). 

Tetap siapkan perangkat klien dan langganan. Anda menggunakannya di modul selanjutnya. Anda juga menjalankan perintah yang sama.