

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 6: Mengakses layanan lain AWS
<a name="module6"></a>

Modul lanjutan ini menunjukkan kepada Anda bagaimana AWS IoT Greengrass core dapat berinteraksi dengan AWS layanan lain di cloud. Ini dibangun di atas contoh lampu lalu lintas dari [Modul 5](module5.md) dan menambahkan fungsi Lambda yang memproses keadaan bayangan dan mengunggah ringkasan ke tabel Amazon DynamoDB.

![\[AWS IoT terhubung ke AWS IoT Greengrass inti, yang terhubung ke perangkat sakelar lampu dan bayangan perangkat lampu lalu lintas. Lampu lalu lintas bayangan perangkat terhubung ke fungsi Lambda, yang terhubung ke tabel DynamoDB.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/gg-get-started-089.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 menyelesaikan [Modul 5](module5.md). Anda tidak memerlukan komponen atau perangkat lain.

Modul ini akan memakan waktu sekitar 30 menit untuk menyelesaikannya.

**catatan**  
Modul ini membuat dan memperbarui tabel di DynamoDB. Meskipun sebagian besar operasi kecil dan termasuk dalam Amazon Web Services tingkat gratis, melakukan beberapa langkah dalam modul ini mungkin mengakibatkan biaya ke akun Anda. Untuk informasi tentang harga, lihat [dokumentasi Harga DynamoDB](https://aws.amazon.com/dynamodb/pricing/).

**Topics**
+ [Mengonfigurasi peran grup](config-iam-roles.md)
+ [Buat fungsi Lambda dengan konsol](create-config-lambda.md)
+ [Konfigurasi langganan](config_subs.md)
+ [Uji komunikasi](comms-test.md)

# Mengonfigurasi peran grup
<a name="config-iam-roles"></a>

Peran grup adalah [IAM role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) yang Anda buat dan lampirkan ke grup Greengrass Anda. Peran ini berisi izin yang digunakan oleh fungsi Lambda (dan AWS IoT Greengrass fitur lainnya) untuk mengakses layanan. AWS Untuk informasi selengkapnya, lihat [Peran grup Greengrass](group-role.md).

Anda menggunakan langkah-langkah tingkat tinggi berikut untuk membuat peran grup di konsol IAM.

1. Buat kebijakan yang mengizinkan atau menolak tindakan pada satu atau lebih sumber daya.

1. Buat peran yang menggunakan layanan Greengrass sebagai entitas terpercaya.

1. Lampirkan kebijakan Anda ke peran tersebut.

Kemudian, di AWS IoT konsol, Anda menambahkan peran ke grup Greengrass.

**catatan**  
Sebuah grup Greengrass memiliki satu peran grup. Jika Anda ingin menambahkan izin, Anda dapat mengedit kebijakan terlampir atau melampirkan kebijakan lainnya.

 

Untuk tutorial ini, Anda membuat kebijakan izin yang mengizinkan menjelaskan, membuat, dan memperbarui tindakan pada tabel Amazon DynamoDB. Kemudian, Anda melampirkan kebijakan untuk peran baru dan mengasosiasikan peran dengan grup Greengrass Anda.

Pertama, buat kebijakan yang dikelola pelanggan yang memberikan izin yang diperlukan oleh fungsi Lambda dalam modul ini.

1. Dalam kolom IAM, dalam panel navigas, pilih **Kebijakan**, lalu pilih **Buat kebijakan**.

1. Pada tab **JSON** ini, ganti konten placeholder dengan kebijakan berikut. Fungsi Lambda dalam modul ini menggunakan izin ini untuk membuat dan memperbarui tabel DynamoDB bernama `CarStats`.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PermissionsForModule6",
               "Effect": "Allow",
               "Action": [
                   "dynamodb:DescribeTable",
                   "dynamodb:CreateTable",
                   "dynamodb:PutItem"
               ],
               "Resource": "arn:aws:dynamodb:*:*:table/CarStats"
           }
       ]
   }
   ```

------

1. Pilih **Selanjutnya: Tags**, lalu pilih **Selanjutnya: Tinjau**. Tag tidak digunakan di tutorial ini.

1. Untuk **Nama**, masukkan **greengrass\$1CarStats\$1Table**, lalu pilih **Buat kebijakan**.

    

   Selanjutnya, buat peran yang menggunakan kebijakan baru.

1. Di panel navigasi, pilih **Peran**, lalu pilih **Buat peran**.

1. Di bawah **Jenis entitas tepercaya**, pilih **AWS layanan**.

1. **Di bawah **Kasus penggunaan****, Kasus penggunaan untuk AWS layanan lain** pilih **Greengrass**, **pilih Greengrass, lalu pilih** Berikutnya.**

1. Di bawah **Kebijakan izin**, pilih **greengrass\$1CarStats\$1Table** kebijakan baru, lalu pilih **Berikutnya**.

1. Untuk **Nama peran**, masukkan **Greengrass\$1Group\$1Role**.

1. Untuk **Deskripsi**, masukkan **Greengrass group role for connectors and user-defined Lambda functions**.

1. Pilih **Buat peran**.

   Sekarang, tambahkan peran ke grup Greengrass Anda.

1. <a name="console-gg-groups"></a>**Di panel navigasi AWS IoT konsol, di bawah **Kelola**, perluas perangkat **Greengrass**, lalu pilih Grup (V1).**

1. Di bawah **grup Greengrass**, pilih grup Anda.

1. Pilih **Pengaturan**, lalu pilih **Peran asosiasi**.

1. Pilih **Greengrass\$1Group\$1Role**dari daftar peran Anda, lalu pilih **Peran asosiasi**.

# Buat fungsi Lambda dengan konsol
<a name="create-config-lambda"></a>

Dalam langkah ini, Anda membuat fungsi Lambda yang melacak jumlah mobil yang melewati lampu lalu lintas. Setiap kali bahwa `GG_TrafficLight` keadaan bayangan mengubah ke `G`, fungsi Lambda mensimulasikan berlalunya sejumlah mobil acak (dari 1 sampai 20). Pada setiap perubahan cahaya `G` ketiga, fungsi Lambda mengirimkan statistik dasar, seperti min dan max, ke meja DynamoDB.

1. Di komputer Anda, buat folder dengan nama `car_aggregator`.

1. Dari folder [TrafficLight ](https://github.com/aws/aws-greengrass-core-sdk-python/tree/master/examples/TrafficLight)contoh GitHub, unduh `carAggregator.py` file ke `car_aggregator` folder. Ini kode fungsi Lambda Anda.
**catatan**  
Contoh file Python ini disimpan di repositori AWS IoT Greengrass Core SDK untuk kenyamanan, tetapi tidak menggunakan Core SDK. AWS IoT Greengrass 

1. Jika Anda tidak bekerja di Wilayah AS Timur (N. Virgina), buka `carAggregator.py` dan ubah `region_name` baris berikut ke baris Wilayah AWS yang saat ini dipilih di konsol. AWS IoT Untuk daftar Wilayah AWS s yang didukung, lihat [AWS IoT Greengrass](https://docs.aws.amazon.com/general/latest/gr/greengrass.html)di *Referensi Umum Amazon Web Services*.

   ```
   dynamodb = boto3.resource('dynamodb', region_name='us-east-1')
   ```

1. Jalankan perintah berikut di jendela [baris perintah](https://en.wikipedia.org/wiki/Command-line_interface) untuk menginstal [AWS SDK untuk Python (Boto3)](https://github.com/boto/boto3/blob/develop/README.rst) dan dependensinya dalam `car_aggregator` folder. Fungsi Greengrass Lambda menggunakan SDK untuk mengakses layanan lain. AWS AWS (Untuk Windows, gunakan sebuah [prompt perintah ditinggikan](https://technet.microsoft.com/en-us/library/cc947813(v=ws.10).aspx).)

   ```
   pip install boto3 -t path-to-car_aggregator-folder
   ```

   Hal ini menyebabkan daftar direktori yang serupa dengan berikut ini:  
![\[Screenshot dari daftar direktori yang menunjukkan carAggregator.py.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/gg-get-started-095.png)

1. Kompres isi `car_aggregator` folder ke dalam folder `.zip` file bernama `car_aggregator.zip`. (Kompres isi folder, bukan folder.) Ini adalah paket deployment fungsi Lambda Anda.

1. Dalam konsol Lambda, buat fungsi bernama **GG\$1Car\$1Aggregator**, dan atur bidang yang tersisa sebagai berikut:
   + Untuk **Waktu aktif**, pilih **Python 3.7**.
   + Untuk **Izin**, pertahankan pengaturan default. Hal ini menciptakan peran eksekusi yang memberikan izin Lambda basic. Peran ini tidak digunakan oleh AWS IoT Greengrass

   Pilih **Buat fungsi**.  
![\[Bagian informasi dasar dengan Fungsi nama diatur ke GG_Car_Aggregator dan Waktu aktif diatur ke Python 3.7.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/gg-get-started-095.5.png)

1. Unggah paket deployment fungsi Lambda Anda:

   1. <a name="lambda-console-upload"></a>Pada tab **Kode** ini, di bawah **Sumber kode**, pilih **Unggah dari**. Dari dropdown, pilih **file .zip**.  
![\[Unggah dari dropdown dengan file .zip disorot.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/lra-console/upload-deployment-package.png)

   1. Pilih Unggah, lalu pilih paket deployment `car_aggregator.zip` Anda. Lalu, pilih **Simpan**.

   1. <a name="lambda-console-runtime-settings-para"></a>Pada tab **Kode** fungsi, di bawah **Pengaturan waktu aktif**, pilih **Edit**, dan kemudian masukkan nilai-nilai berikut.
      + Untuk **Waktu pengoperasian**, pilih **Python 3.7**.
      + Untuk **Handler**, masukkan **carAggregator.function\$1handler**

   1. Pilih **Simpan**.

1. Terbitkan fungsi Lambda, lalu membuat alias bernama **GG\$1CarAggregator**. Untuk step-by-step petunjuk, lihat langkah-langkah untuk [mempublikasikan fungsi Lambda](create-lambda.md#publish-function-version) dan [membuat alias](create-lambda.md#create-version-alias) di Modul 3 (Bagian 1).

1. Di AWS IoT konsol, tambahkan fungsi Lambda yang baru saja Anda buat ke grup Anda AWS IoT Greengrass :

   1. **Pada halaman konfigurasi grup, pilih fungsi **Lambda, dan kemudian di bawah fungsi** **Lambda Saya**, pilih Tambah.**

   1. **Untuk **fungsi Lambda**, pilih GG\$1Car\$1Aggregator.**

   1. Untuk **versi fungsi Lambda**, pilih alias ke versi yang Anda terbitkan.

   1. Untuk **Batas memori**, masukkan **64 MB**.

   1. Untuk **Pinned**, pilih **True**.

   1. Pilih **Tambahkan fungsi Lambda**.
**catatan**  
Anda dapat menghapus fungsi Lambda lainnya dari modul sebelumnya.

# Konfigurasi langganan
<a name="config_subs"></a>

Pada langkah ini, Anda membuat langganan yang memungkinkan TrafficLight bayangan GG\$1 mengirim informasi status yang diperbarui ke fungsi Lambda GG\$1CAR\$1Aggregator. Langganan ini ditambahkan ke langganan yang Anda buat di [Modul 5](module5.md), yang semuanya diperlukan untuk modul ini.

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

1. Pada halaman **Buat langganan**, lakukan hal berikut:

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

   1. Untuk **tipe Target**, pilih **fungsi Lambda**, lalu pilih **GG\$1Car\$1Aggregator**.

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

   1. Pilih **Buat langganan**.

   Modul ini memerlukan langganan baru dan [langganan](config-dev-subs.md#module5-subscriptions) yang Anda buat di Modul 5.

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**.

# Uji komunikasi
<a name="comms-test"></a>

1. Di komputer Anda, buka dua [jendela](https://en.wikipedia.org/wiki/Command-line_interface) baris perintah. Sama seperti di [Modul 5](module5.md), satu jendela untuk perangkat klien GG\$1Switch dan yang lainnya untuk perangkat klien GG\$1TrafficLight . Anda menggunakannya untuk menjalankan perintah yang sama yang Anda jalankan di modul 5.

   Jalankan perintah berikut untuk perangkat klien GG\$1Switch:

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

   Jalankan perintah berikut untuk perangkat TrafficLight klien GG\$1:

   ```
   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 lampu menampilkan keadaan baru.

1. Fungsi handler dari fungsi Lambda dipicu pada setiap lampu hijau ketiga (setiap tiga menit), dan catatan DynamoDB baru dibuat. Setelah `lightController.py` dan `trafficLight.py` telah berjalan selama tiga menit, pergi ke Konsol Manajemen AWS, dan buka konsol DynamoDB.

1. Pilih **US East (Virginia N.)** di Wilayah AWS menu. Ini adalah Wilayah di mana `GG_Car_Aggregator` fungsi membuat tabel.

1. Di panel navigasi, pilih **Tabel**, lalu pilih **CarStats**tabel. 

1. Pilih **Lihat item** untuk melihat entri dalam tabel.

   Anda akan melihat entri dengan statistik dasar tentang mobil yang dilewati (satu entri untuk setiap tiga menit). Anda mungkin butuh memilih tombol refresh untuk melihat pembaruan pada tabel.

1. Jika uji tidak berhasil, Anda dapat mencari informasi pemecahan masalah dalam catatan Greengrass.

   1. <a name="root-access-logs"></a>Beralih ke pengguna root dan arahkan ke `log` direktori. Akses ke AWS IoT Greengrass log memerlukan izin root.

      ```
      sudo su
      cd /greengrass/ggc/var/log
      ```

   1. Periksa `runtime.log` untuk kesalahan.

      ```
      cat system/runtime.log | grep 'ERROR'
      ```

   1. Periksa log yang dihasilkan oleh fungsi Lambda.

      ```
      cat user/region/account-id/GG_Car_Aggregator.log
      ```

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

   Untuk informasi selengkapnya, lihat [Pemecahan masalah AWS IoT Greengrass](gg-troubleshooting.md).

Ini adalah akhir dari tutorial dasar. Anda sekarang harus memahami model AWS IoT Greengrass pemrograman dan konsep dasarnya, termasuk AWS IoT Greengrass inti, grup, langganan, perangkat klien, dan proses penyebaran untuk fungsi Lambda yang berjalan di tepi.

Anda dapat menghapus tabel DynamoDB dan fungsi Greengrass Lambda dan langganan. Untuk menghentikan komunikasi antara perangkat AWS IoT Greengrass inti dan AWS IoT cloud, buka terminal pada perangkat inti dan jalankan salah satu perintah berikut:
+ Untuk mematikan perangkat AWS IoT Greengrass inti:

  ```
  sudo halt
  ```
+ Untuk menghentikan AWS IoT Greengrass daemon:

  ```
  cd /greengrass/ggc/core/
  sudo ./greengrassd stop
  ```