

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 3 (bagian 1): Fungsi Lambda aktif AWS IoT Greengrass
<a name="module3-I"></a>

Modul ini menunjukkan cara membuat dan menerapkan fungsi Lambda yang mengirimkan pesan MQTT dari perangkat inti Anda. AWS IoT Greengrass Modul ini menjelaskan konfigurasi fungsi Lambda, langganan yang digunakan untuk mengizinkan pesan MQTT, dan deployments ke perangkat core.

[Modul 3 (Bagian 2)](module3-II.md) mencakup perbedaan antara fungsi Lambda sesuai permintaan dan berumur panjang yang berjalan pada intinya. AWS IoT Greengrass 

Sebelum Anda mulai, pastikan bahwa Anda telah menyelesaikan [Modul 1](module1.md) dan [Modul 2](module2.md) dan memiliki perangkat AWS IoT Greengrass inti yang berjalan.

**Tip**  
Atau, untuk menggunakan skrip yang mengatur perangkat core untuk Anda, lihat [Quick start: penyiapan perangkat Greengrass](quick-start.md). Skrip juga dapat membuat dan men-deploy fungsi Lambda yang digunakan dalam modul ini.

Modul ini akan memakan waktu sekitar 30 menit untuk menyelesaikannya.

**Topics**
+ [Buat dan paketkan fungsi Lambda](create-lambda.md)
+ [Konfigurasikan fungsi Lambda untuk AWS IoT Greengrass](config-lambda.md)
+ [Men-deploy konfigurasi cloud ke perangkat core Greengrass](configs-core.md)
+ [Verifikasi fungsi Lambda berjalan pada perangkat core](lambda-check.md)

# Buat dan paketkan fungsi Lambda
<a name="create-lambda"></a>

Contoh fungsi Python Lambda dalam modul ini menggunakan [AWS IoT Greengrass Core SDK](lambda-functions.md#lambda-sdks-core) for Python untuk mempublikasikan pesan MQTT.

Dalam langkah ini, Anda:
+ Unduh AWS IoT Greengrass Core SDK untuk Python ke komputer Anda (bukan AWS IoT Greengrass perangkat inti).
+ Buat paket deployment fungsi Lambda sesuai dengan kode fungsi dan dependensinya.
+ Gunakan konsol Lambda untuk membuat fungsi Lambda dan mengunggah paket deployment.
+ Terbitkan versi fungsi Lambda dan buat alias yang menunjuk ke versi.

Untuk menyelesaikan modul ini, Python 3.7 harus diinstal pada perangkat core Anda.

 <a name="create-lambda-procedure"></a>

1. <a name="download-ggc-sdk"></a> Dari halaman unduhan [AWS IoT Greengrass Core SDK](what-is-gg.md#gg-core-sdk-download), unduh AWS IoT Greengrass Core SDK untuk Python ke komputer Anda.

1. Unzip paket download untuk mendapatkan kode fungsi Lambda dan SDK.

   Fungsi Lambda dalam modul ini menggunakan:
   + File `greengrassHelloWorld.py` di `examples\HelloWorld`. Ini kode fungsi Lambda Anda. Setiap lima detik, fungsi menerbitkan salah satu dari dua pesan yang mungkin ke `hello/world` topik.
   + Folder `greengrasssdk` ini. Ini SDK.

1. Salin folder `greengrasssdk` ke dalam folder `HelloWorld` yang berisi `greengrassHelloWorld.py`.

1. Untuk membuat paket deployment fungsi Lambda, simpan `greengrassHelloWorld.py` dan folder `greengrasssdk` ke sebuah file terkompresi `zip` bernama `hello_world_python_lambda.zip`. File `py` dan folder `greengrasssdk` harus berada di root direktori.  
![\[Screenshot menunjukkan isi zip dari hello_word_python_lambda.zip.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/gg-get-started-017.png)

   Pada sistem seperti Unix (termasuk terminal Mac), Anda dapat menggunakan perintah berikut untuk mengemas file dan folder:

   ```
   zip -r hello_world_python_lambda.zip greengrasssdk greengrassHelloWorld.py
   ```
**catatan**  
Tergantung pada distribusi Anda, Anda mungkin perlu menginstal `zip` terlebih dahulu (sebagai contoh, dengan menjalankan `sudo apt-get install zip`). Perintah penginstalan untuk distribusi Anda mungkin berbeda.

   Sekarang Anda siap untuk membuat fungsi Lambda Anda dan mengunggah paket deployment.

1. Buka konsol Lambda dan pilih **Buat fungsi**.

1. Pilih **Tulis dari awal**.

1. Beri nama fungsi Anda **Greengrass\$1HelloWorld**, 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**.

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 `hello_world_python_lambda.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 **greengrassHelloWorld.function\$1handler**  
![\[Bagian “Pengaturan runtime” dengan bidang “Runtime” disetel ke “Python 3.7" dan bidang “Handler” disetel ke ".function_handler”. greengrassHelloWorld\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/gg-get-started-023-2.png)

   1. <a name="lambda-console-save-config"></a>Pilih **Simpan**.
**catatan**  
Tombol **Uji** di AWS Lambda konsol tidak berfungsi dengan fungsi ini. AWS IoT Greengrass Core SDK tidak berisi modul yang diperlukan untuk menjalankan fungsi Greengrass Lambda Anda secara independen di konsol. AWS Lambda Modul-modul ini (sebagai contoh, `greengrass_common`) dipasok ke fungsi setelah mereka di-deploy ke core Greengrass Anda.

1. <a name="publish-function-version"></a>Publikasikan fungsi Lambda:

   1. Dari bagian atas halaman menu **Tindakan** ini, pilih **Terbitkan versi baru**.  
![\[Screenshot dari menu Tindakan dengan Publikasikan versi baru yang disorot.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/gg-get-started-026.png)

   1. Untuk **Deskripsi versi**, masukkan **First version**, lalu pilih **Publikasikan**.  
![\[Screenshot dengan bidang Deskripsi Versi diatur ke Versi pertama dan tombol Publikasikan disorot.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/gg-get-started-027.png)

1. <a name="create-version-alias"></a>Buat [alias](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) untuk fungsi Lambda [version](https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html):
**catatan**  
Grup Greengrass dapat mereferensi fungsi Lambda dengan alias (direkomendasikan) atau dengan versi. Menggunakan alias membuatnya lebih mudah untuk mengelola pembaruan kode karena Anda tidak perlu mengubah tabel langganan atau definisi grup ketika kode fungsi diperbarui. Sebaliknya, Anda hanya mengarahkan alias ke versi fungsi baru.

   1. Dari bagian atas halaman menu **Tindakan** ini, pilih **Buat alias**.  
![\[Screenshot dari menu Tindakan diatur ke Buat alias.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/gg-get-started-028.png)

   1. Beri nama alias **GG\$1HelloWorld**, atur versi ke **1** (yang sesuai dengan versi yang baru saja Anda publikasikan), lalu pilih **Simpan**.
**catatan**  
AWS IoT Greengrass **tidak mendukung alias Lambda untuk versi \$1LATEST.**

         
![\[Tangkapan layar dari Buat alias baru dengan bidang Nama disetel ke GG_HelloWorld, dan bidang Versi disetel ke 1.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/gg-get-started-029.png)

# Konfigurasikan fungsi Lambda untuk AWS IoT Greengrass
<a name="config-lambda"></a>

Anda sekarang siap untuk mengonfigurasi fungsi Lambda Anda untuk AWS IoT Greengrass.

Dalam langkah ini, Anda:
+ Gunakan AWS IoT konsol untuk menambahkan fungsi Lambda ke grup Greengrass Anda.
+ Mengonfigurasi pengaturan grup khusus untuk fungsi Lambda.
+ Menambahkan langganan ke grup yang mengizinkan fungsi Lambda untuk mempublikasikan pesan MQTT ke AWS IoT.
+ Mengonfigurasi pengaturan log lokal untuk grup.

 

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 yang Anda buat di [Modul 2](module2.md).

1. **Pada halaman konfigurasi grup, pilih tab **fungsi Lambda**, lalu gulir ke bawah ke bagian Fungsi **Lambda Saya dan pilih Tambahkan fungsi Lambda**.**

1. Pilih nama fungsi Lambda yang Anda buat pada langkah sebelumnya (**Greengrass\$1 HelloWorld**, bukan nama alias).

1. Untuk versinya, pilih **Alias: HelloWorld GG\$1**.

1. Di bagian **konfigurasi fungsi Lambda**, buat perubahan berikut:
   + Setel **pengguna dan grup Sistem ke Guna** **grup default**.
   + **Setel **containerization fungsi Lambda** ke Use group default.**
   + Atur **Timeout** ke 25 detik. Fungsi Lambda ini tidur selama 5 detik sebelum setiap pengaktifan.
   + Untuk **Pinned**, pilih **True**.

    
**catatan**  
<a name="long-lived-lambda"></a>Fungsi Lambda yang *berumur panjang* (atau *disematkan*) dimulai secara otomatis setelah AWS IoT Greengrass dimulai dan terus berjalan di wadahnya sendiri. Hal ini berbeda dengan fungsi Lambda *sesuai permintaan* ini, yang dimulai ketika diaktifkan dan berhenti ketika tidak ada tugas yang tersisa untuk dijalankan. Untuk informasi selengkapnya, lihat [Konfigurasi siklus hidup untuk fungsi Greengrass Lambda](lambda-functions.md#lambda-lifecycle).

1. Pilih **Tambahkan fungsi Lambda** untuk menyimpan perubahan Anda. Untuk informasi tentang properti fungsi Lambda, lihat [Mengontrol eksekusi fungsi Greengrass Lambda dengan menggunakan konfigurasi grup khusus](lambda-group-config.md).

   Selanjutnya, buat langganan yang mengizinkan fungsi Lambda untuk mengirim pesan [MQTT](http://mqtt.org/) ke AWS IoT Core.

   Sebuah fungsi Lambda Greengrass dapat bertukar pesan MQTT dengan:
   + [Perangkat](what-is-gg.md#greengrass-devices) dalam grup Greengrass.
   + [Konektor](connectors.md) dalam grup.
   + Fungsi Lambda lainnya dalam grup.
   + AWS IoT Core.
   + Layanan bayangan lokal. Untuk informasi selengkapnya, lihat [Modul 5: Berinteraksi dengan bayangan perangkat](module5.md).

   Grup menggunakan langganan untuk mengontrol cara entitas ini dapat berkomunikasi satu sama lain. Langganan menyediakan interaksi yang dapat diprediksi dan lapisan keamanan.

   Langganan terdiri dari sumber, target, dan topik. Sumber adalah pencetus pesan. Target adalah tujuan pesan. Topik ini mengizinkan Anda untuk memfilter data yang dikirim dari sumber ke target. Sumber atau target dapat berupa perangkat Greengrass, fungsi Lambda, konektor, bayangan perangkat, atau AWS IoT Core.
**catatan**  
Langganan diarahkan dalam arti bahwa pesan mengalir ke arah tertentu: dari sumber ke target. Untuk mengizinkan komunikasi dua arah, Anda harus menyiapkan dua langganan.
**catatan**  
 Saat ini, filter topik langganan tidak mengizinkan lebih dari satu `+` karakter di dalam sebuah topik. Filter topik hanya mengizinkan satu karakter `#` di akhir topik. 

   Fungsi `Greengrass_HelloWorld` Lambda mengirim pesan hanya ke `hello/world` topik di AWS IoT Core, jadi Anda hanya perlu membuat satu langganan dari fungsi Lambda ke. AWS IoT Core Anda membuat ini di dalam langkah selanjutnya.

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

   Untuk contoh yang menunjukkan cara membuat langganan menggunakan AWS CLI, lihat [create-subscription-definition](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrass/create-subscription-definition.html)di *Referensi AWS CLI Perintah*.

1. **Dalam **tipe Sumber**, pilih **fungsi Lambda** dan, untuk **Sumber**, pilih Greengrass\$1. HelloWorld**

1. Untuk **jenis Target**, pilih **Layanan** dan, untuk **Target** pilih **IoT Cloud**.

1. Untuk **filter Topik****hello/world**, masukkan, lalu pilih **Buat langganan**.

1. Konfigurasi pengaturan pencatatan grup. Untuk tutorial ini, Anda mengonfigurasi AWS IoT Greengrass komponen sistem dan fungsi Lambda yang ditentukan pengguna untuk menulis log ke sistem file perangkat inti.

   1. Pada halaman konfigurasi grup, pilih tab **Log**.

   1. Di bagian **konfigurasi log lokal**, pilih **Edit**.

   1. Pada kotak dialog **Edit konfigurasi log lokal**, simpan nilai default untuk tingkat log dan ukuran penyimpanan, lalu pilih **Simpan**.

   Anda dapat menggunakan catatan untuk memecahkan masalah yang mungkin Anda alami ketika menjalankan tutorial ini. Saat memecahkan masalah, Anda dapat mengubah sementara tingkat pendataan ke **Debug**. Untuk informasi selengkapnya, lihat [Mengakses log sistem file](greengrass-logs-overview.md#gg-logs-local).

1. <a name="disable-stream-manager-no-java"></a>Jika waktu aktif Java 8 tidak diinstal pada perangkat core Anda, Anda harus menginstalnya atau menonaktifkan pengelola pengaliran.
**catatan**  
Tutorial ini tidak menggunakan pengelola pengaliran, tetapi menggunakan alur kerja **Pembuatan Grup Default** yang mengaktifkan pengelola pengaliran secara default. Jika pengelola pengaliran diaktifkan tetapi Java 8 tidak diinstal, deployment grup gagal. Untuk informasi lebih lanjut, lihat bagian [persyaratan pengelola pengaliran](stream-manager.md#stream-manager-requirements).

   Untuk menonaktifkan pengelola pengaliran:

   1. Pada halaman pengaturan grup, pilih tab **Fungsi Lambda**.

   1. **Di bawah bagian **Fungsi Lambda Sistem**, pilih **Manajer aliran** dan pilih Edit.**

   1. Pilih **Nonaktifkan**, lalu pilih **Simpan**.

# Men-deploy konfigurasi cloud ke perangkat core Greengrass
<a name="configs-core"></a>

1. Pastikan bahwa perangkat core Greengrass Anda terhubung ke internet. Sebagai contoh, coba berhasil menavigasi ke halaman web.

1. Pastikan bahwa Greengrass daemon berjalan pada perangkat core Anda. Di terminal perangkat core Anda, jalankan perintah berikut untuk memeriksa apakah daemon sedang berjalan dan memulainya, jika diperlukan.

   1. Untuk memeriksa apakah daemon sedang berjalan:

      ```
      ps aux | grep -E 'greengrass.*daemon'
      ```

      Jika output berisi `root` entri untuk `/greengrass/ggc/packages/1.11.6/bin/daemon`, maka daemon sedang berjalan.

   1. Untuk memulai daemon:

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

   Sekarang Anda siap untuk men-deploy fungsi Lambda dan konfigurasi langganan ke perangkat core 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 yang Anda buat di [Modul 2](module2.md).

1. Pada halaman konfigurasi grup, pilih **Deploy**.

1. **Pada tab **Fungsi Lambda, di bagian Fungsi** **Sistem Lambda**, pilih detektor IP.**

1. Pilih **Edit** dan pilih **Deteksi dan ganti titik akhir broker MQTT secara otomatis**. Hal ini mengaktifkan perangkat untuk secara otomatis memperoleh informasi konektivitas untuk core, seperti alamat IP, DNS, dan nomor port. Deteksi otomatis direkomendasikan, namun AWS IoT Greengrass juga support titik akhir yang ditentukan secara manual. Anda hanya diminta untuk metode penemuan pertama kalinya bahwa grup di-deploy.

Deployment pertama mungkin memerlukan waktu beberapa menit. Ketika deploymen selesai, Anda akan melihat **Berhasil diselesaikan** di kolom **Status** pada halaman **Deployment** ini:

**catatan**  
Status Deployment juga ditampilkan di bawah nama grup pada header halaman.

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

# Verifikasi fungsi Lambda berjalan pada perangkat core
<a name="lambda-check"></a>

1. Dari panel navigasi [AWS IoT konsol](https://console.aws.amazon.com/iot/), di bawah **Uji, pilih klien pengujian** **MQTT**.

1. Pilih tab **Berlangganan topik**.

1. Masuk **hello/world** ke **filter Topik** dan perluas **konfigurasi Tambahan**.

1. Masukkan informasi yang tercantum di masing-masing bidang berikut:
   + Untuk **Kualitas Layanan**, pilih **0**.
   + Untuk **Tampilan muatan MQTT**, pilih **Tampilkan muatan sebagai string**.

    

1. Pilih **Langganan**.

Dengan asumsi fungsi Lambda berjalan pada perangkat Anda, ia akan menerbitkan pesan yang mirip dengan yang berikut ke `hello/world` topik:

![\[Tangkapan layar pesan yang dikirim ke hello/world topik dengan pesan yang disorot.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/gg-get-started-045.png)


Meskipun fungsi Lambda terus mengirim pesan MQTT ke `hello/world` topik, jangan hentikan daemon. AWS IoT Greengrass Modul yang tersisa ditulis dengan asumsi bahwa itu berjalan.

Anda dapat menghapus fungsi dan langganan dari grup:
+ **Pada halaman konfigurasi grup, di bawah tab **fungsi Lambda, pilih fungsi** Lambda yang ingin Anda hapus dan pilih Hapus.**
+ Pada halaman konfigurasi grup, di bawah tab **Langganan**, pilih langganan, lalu pilih **Hapus**.

Fungsi dan langganan dihapus dari core selama deployment grup selanjutnya.