Buat dan paketkan fungsi Lambda - AWS IoT Greengrass

AWS IoT Greengrass Version 1 memasuki fase umur panjang pada 30 Juni 2023. Untuk informasi selengkapnya, lihat kebijakan AWS IoT Greengrass V1 pemeliharaan. Setelah tanggal ini, tidak AWS IoT Greengrass V1 akan merilis pembaruan yang menyediakan fitur, penyempurnaan, perbaikan bug, atau patch keamanan. Perangkat yang berjalan AWS IoT Greengrass V1 tidak akan terganggu dan akan terus beroperasi dan terhubung ke cloud. Kami sangat menyarankan Anda bermigrasi ke AWS IoT Greengrass Version 2, yang menambahkan fitur baru yang signifikan dan dukungan untuk platform tambahan.

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

Buat dan paketkan fungsi Lambda

Contoh fungsi Python Lambda dalam modul ini menggunakan AWS IoT Greengrass Core SDK for Python untuk mempublikasikan pesan MQTT.

Dalam langkah ini, Anda:

  • Unduh AWS IoT Greengrass Core SDK for Python ke komputer anda (bukan AWS IoT Greengrass perangkat core).

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

 

  1. Dari halaman unduh AWS IoT Greengrass SDK Core ini, unduh AWS IoT Greengrass Core SDK for Python ke komputer Anda.

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

  3. Salin folder greengrasssdk ke dalam folder HelloWorld yang berisi greengrassHelloWorld.py.

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

    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.

  5. Buka konsol Lambda dan pilih Buat fungsi.

  6. Pilih Penulis dari scratch.

  7. Beri nama fungsi Anda Greengrass_HelloWorld, 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.

  8. Unggah paket deployment fungsi Lambda Anda:

    1. Pada tab Kode ini, di bawah Sumber kode, pilih Unggah dari. Dari dropdown, pilih file .zip.

      Unggah dari dropdown dengan file .zip disorot.
    2. Pilih Unggah, lalu pilih paket deployment hello_world_python_lambda.zip Anda. Lalu, pilih Simpan.

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

      Bagian “Pengaturan waktu aktif” dengan bidang “Waktu aktif” diatur ke “Python 3.7" dan bidang “Handler” diatur ke”greengrassHelloWorld.function_handler”.
    4. Pilih Save (Simpan).

      catatan

      Tombol Tes pada konsol AWS Lambda tidak bekerja dengan fungsi ini. Pada AWS IoT Greengrass Core SDK tidak berisi modul yang diperlukan untuk menjalankan fungsi Greengrass Lambda Anda secara independen di konsol AWS Lambda tersebut. Modul-modul ini (sebagai contoh, greengrass_common) dipasok ke fungsi setelah mereka di-deploy ke core Greengrass Anda.

  9. 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.
    2. Untuk Deskripsi versi, masukkan First version, lalu pilih Publikasikan.

      Screenshot dengan bidang Deskripsi Versi diatur ke Versi pertama dan tombol Publikasikan disorot.
  10. Buat alias untuk fungsi Lambda version:

    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.
    2. Beri nama alias GG_HelloWorld, 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 $TERBARU versi.

       

      Screenshot Buat alias baru dengan bidang Nama diatur ke GG_HelloWorld, dan bidang Version diatur ke 1.