Jalankan fungsi Lambda pada AWS IoT Greengrass core - 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.

Jalankan fungsi Lambda pada AWS IoT Greengrass core

AWS IoT Greengrass menyediakan lingkungan waktu aktif Lambda terkontainerisasi untuk kode yang ditetapkan pengguna yang Anda tulis di AWS Lambda. Fungsi Lambda yang di-deploy ke AWS IoT Greengrass core berjalan di waktu aktif Lambda lokal Core. Fungsi Lambda lokal dapat dipicu oleh peristiwa lokal, pesan dari cloud, dan sumber lain, yang membawa fungsionalitas komputasi lokal ke perangkat klien. Sebagai contoh, Anda dapat menggunakan fungsi Greengrass Lambda untuk memfilter data perangkat sebelum mengirimkan data ke cloud.

Untuk men-deploy fungsi Lambda ke core, Anda menambahkan fungsi ke grup Greengrass (dengan referensi fungsi Lambda yang ada), mengonfigurasi pengaturan khusus grup untuk fungsi, dan kemudian men-deploy grup. Jika fungsi mengakses AWS layanan, Anda juga harus menambahkan izin yang diperlukan untuk peran grup Greengrass.

Anda dapat mengonfigurasi parameter yang menentukan bagaimana fungsi Lambda berjalan, termasuk izin, isolasi, batas memori, dan banyak lagi. Untuk informasi selengkapnya, lihat Mengontrol eksekusi fungsi Greengrass Lambda dengan menggunakan konfigurasi grup khusus.

catatan

Pengaturan ini juga memungkinkan untuk menjalankan AWS IoT Greengrass dalam kontainer Docker. Untuk informasi selengkapnya, lihat Menjalankan AWS IoT Greengrass di kontainer Docker.

Tabel berikut mencantumkan data yang didukung AWS Lambda waktu aktif dan versi AWS IoT Greengrass perangkat lunak Core yang dapat mereka jalankan.

Bahasa atau platform Versi GGC
Python 3.8 1.11
Python 3.7 1.9 atau yang lebih baru
Python 2.7 * 1.0 atau yang lebih baru
Java 8 1.1 atau yang lebih baru
Node.js 12.x * 1.10 atau yang lebih baru
Node.js 8.10 * 1.9 atau yang lebih baru
Node.js 6.10 * 1.1 atau yang lebih baru
C, C ++ 1.6 atau yang lebih baru

* Anda dapat menjalankan fungsi Lambda yang menggunakan waktu aktif ini pada versi yang didukung dari AWS IoT Greengrass, tetapi Anda tidak dapat membuatnya di AWS Lambda. Jika runtime pada perangkat Anda berbeda dari runtime AWS Lambda yang ditentukan untuk fungsi tersebut, Anda dapat memilih runtime sendiri dengan menggunakan in. FunctionRuntimeOverride FunctionDefintionVersion Untuk informasi lebih lanjut, lihat CreateFunctionDefinition. Untuk informasi selengkapnya tentang runtime yang didukung, lihat Kebijakan dukungan Runtime di Panduan AWS LambdaPengembang.

SDK untuk fungsi Greengrass Lambda

AWS menyediakan tiga SDK yang dapat digunakan oleh fungsi Greengrass Lambda yang berjalan pada AWS IoT Greengrass core. SDK ini terkandung dalam paket yang berbeda, sehingga fungsi dapat menggunakannya secara bersamaan. Untuk menggunakan SDK dalam fungsi Greengrass Lambda, memasukkannya ke dalam paket deployment fungsi Lambda yang Anda upload ke AWS Lambda.

AWS IoT GreengrassSDK inti

Mengaktifkan fungsi Lambda lokal untuk berinteraksi dengan core untuk:

  • Pertukaran pesan MQTT dengan AWS IoT Core.

  • Tukar pesan MQTT dengan konektor, perangkat klien, dan fungsi Lambda lainnya di grup Greengrass.

  • Berinteraksi dengan layanan bayangan lokal.

  • Meminta fungsi Lambda lokal lainnya.

  • Akses Sumber daya rahasia.

  • Berinteraksi dengan Pengelola aliran.

AWS IoT Greengrassmenyediakan AWS IoT Greengrass Core SDK dalam bahasa dan platform berikut di GitHub.

Untuk menyertakan AWS IoT Greengrass Core SDK depedensi dalam paket deployment fungsi Lambda:

  1. Mengunduh bahasa atau platform AWS IoT Greengrass paket Core SDK yang cocok dengan waktu aktif fungsi Lambda Anda.

  2. Unzip paket unduhan untuk mendapatkan SDK. SDK adalah greengrasssdk folder.

  3. Sertakan greengrasssdk dalam paket deployment fungsi Lambda yang berisi kode fungsi Anda. Ini adalah paket yang Anda unggah ke AWS Lambda ketika Anda membuat fungsi Lambda.

 

StreamManagerClient

Hanya AWS IoT Greengrass Core SDK core berikut yang dapat digunakan untuk operasi pengelola pengaliran ini:

  • SDK Java (v1.4.0 atau yang lebih baru)

  • Python SDK (v1.5.0 atau yang lebih baru)

  • Node.js SDK (v1.6.0 atau yang lebih baru)

Untuk menggunakan AWS IoT Greengrass Core SDK for Python untuk berinteraksi dengan pengelola pengaliran, Anda harus menginstal Python 3.7 atau yang lebih baru. Anda juga harus mengmasang dependensi untuk disertakan dalam paket deployment fungsi Python Lambda Anda:

  1. Arahkan ke direktori SDK yang berisi file requirements.txt ini. File ini berisi daftar dependensi.

  2. Instal dependensi SDK. Misalnya, jalankan perintah berikut pip untuk memasangnya di direktori ketika ini:

    pip install --target . -r requirements.txt

 

Instal AWS IoT Greengrass Core SDK for Python pada perangkat core

Jika Anda menjalankan fungsi Python Lambda, Anda juga dapat menggunakan pip untuk menginstal AWS IoT Greengrass Core SDK for Python pada perangkat core. Kemudian Anda dapat men-deploy fungsi Anda tanpa memasukkan SDK dalam paket deployment fungsi Lambda. Untuk informasi lebih lanjut, lihat greengrasssdk.

Dukungan ini ditujukan untuk core dengan pengukuran terbatas. Kami merekomendasikan Anda menyertakan SDK dalam paket deployment fungsi Lambda Anda bila memungkinkan.

 

AWS IoT GreengrassSDK Machine Learning

Mengaktifkan fungsi Lambda lokal untuk mengonsumsi model machine learning (ML) yang di-deploy ke Greengrass core sebagai sumber daya ML. Fungsi Lambda dapat menggunakan SDK untuk memanggil dan berinteraksi dengan layanan kesimpulan lokal yang di-deploy ke core sebagai konektor. fungsi Lambda dan konektor ML juga dapat menggunakan SDK untuk mengirim data ke konektor ML Feedback untuk mengunggah dan menerbitkan. Untuk informasi lebih lanjut, termasuk contoh kode yang menggunakan SDK, lihat Konektor Klasifikasi Citra ML, konektor Deteksi Objek ML, dan Konektor Umpan balik ML.

Tabel berikut mencantumkan bahasa yang didukung atau platform untuk versi SDK dan versi perangkat lunak AWS IoT Greengrass core yang dapat mereka jalankan.

Versi SDK Bahasa atau platform Versi GGC yang diperlukan Changelog
1.1.0 Python 3.7 atau 2.7 1.9.3 atau yang lebih baru Ditambahkan dukungan Python 3.7 dan klien feedback baru.
1.0.0 Python 2.7 1.7 atau yang lebih baru Pelepasan awal.

Untuk informasi unduhan, lihat AWS IoT Greengrass Perangkat lunak SDK SDK.

AWS SDK

Mengaktifkan fungsi Lambda lokal untuk membuat panggilan langsung ke layanan AWS ini, seperti Amazon S3, DynamoDB, AWS IoT, dan AWS IoT Greengrass. Untuk menggunakan sebuah perangkat AWS SDK dalam fungsi Greengrass Lambda, Anda harus memasukkannya dalam paket deployment Anda. Saat Anda menggunakan AWS SDK dalam paket yang sama dengan AWS IoT Greengrass Core SDK, pastikan bahwa fungsi Lambda Anda menggunakan namespace yang benar. Fungsi Greengrass Lambda tidak dapat berkomunikasi dengan layanan cloud ketika core-nya offline.

Mengunduh SDK AWS dari Pusat Sumber Daya Memulai.

Untuk informasi lebih lanjut tentang cara membuat paket deployment, lihat Buat dan paketkan fungsi Lambda dalam tutorial Memulai atau Membuat paket deployment dalam AWS Lambda Panduan Developer.

Memigrasi fungsi Lambda berbasis cloud

SDK Core AWS IoT Greengrass mengikuti model pemrograman AWS SDK, yang membuatnya mudah untuk port fungsi Lambda yang dikembangkan untuk cloud pada fungsi Lambda yang berjalan dengan AWS IoT Greengrass core.

Sebagai contoh, fungsi Python Lambda berikut menggunakan AWS SDK for Python (Boto3) untuk mempublikasikan pesan ke topik some/topic di cloud:

import boto3 iot_client = boto3.client("iot-data") response = iot_client.publish( topic="some/topic", qos=0, payload="Some payload".encode() )

Untuk port fungsi pada AWS IoT Greengrass core, di pernyataan import dan client inisialisasi, mengubah nama modul boto3 ke greengrasssdk, seperti yang ditunjukkan dalam contoh berikut:

import greengrasssdk iot_client = greengrasssdk.client("iot-data") iot_client.publish(topic="some/topic", qos=0, payload="Some payload".encode())
catatan

SDK Core AWS IoT Greengrass mendukung pengiriman pesan MQTT dengan QoS = 0 saja. Untuk informasi selengkapnya, lihat Kualitas layanan pesan.

Kesamaan antara model pemrograman juga memungkinkan Anda untuk mengembangkan fungsi Lambda Anda di cloud dan kemudian memigrasikannya ke AWS IoT Greengrass dengan sedikit usaha. Lambda yang dapat di eksekusi tidak berjalan di cloud, sehingga Anda tidak dapat menggunakan AWS SDK untuk mengembangkannya di cloud sebelum deployment.

Fungsi Referensi Lambda dengan alias atau versi

Grup Greengrass dapat referensi 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. Alias menyelesaikan ke nomor versi selama deployment grup. Ketika Anda menggunakan alias, versi yang diselesaikan telah diperbarui ke versi di mana alias menunjuk ke ketika deployment.

AWS IoT Greengrass tidak mendukung alias Lambda untuk versi $TERBARU ini. $TERBARU versi tidak terikat untuk tetap, versi fungsi diterbitkan dan dapat diubah setiap ketika, yang bertentangan dengan prinsip AWS IoT Greengrass versi tetap.

Sebuah praktek umum untuk menjaga fungsi Greengrass Lambda Anda diperbarui dengan perubahan kode adalah dengan menggunakan alias bernama PRODUCTION dalam grup Greengrass dan langganan Anda. Ketika Anda mempromosikan versi baru dari fungsi Lambda Anda ke dalam produksi, arahkan alias ke versi stabil terbaru dan kemudian redeploy grupnya. Anda juga dapat menggunakan metode ini untuk kembali ke versi sebelumnya.

Arus komunikasi untuk fungsi Greengrass Lambda

Fungsi Greengrass Lambda mendukung beberapa metode komunikasi dengan anggota lain dari grup AWS IoT Greengrass ini, layanan lokal, dan layanan cloud (layanan AWS sudah termasuk).

Komunikasi menggunakan pesan MQTT

fungsi Lambda dapat mengirim dan menerima pesan MQTT menggunakan pola mempublikasikan-berlangganan yang dikendalikan oleh langganan.

Aliran komunikasi ini memungkinkan fungsi Lambda untuk bertukar pesan dengan entitas berikut:

  • Perangkat klien dalam grup.

  • Konektor dalam grup.

  • Fungsi Lambda lainnya dalam grup.

  • AWS IoT.

  • Layanan Bayangan Perangkat Lokal.

Langganan menentukan sumber pesan, target pesan, dan topik (atau subjek) yang digunakan untuk mengarahkan pesan dari sumber ke target. Pesan yang dipublikasikan ke fungsi Lambda dilewatkan ke handler terdaftar fungsi ini. Langganan memungkinkan lebih banyak keamanan dan memberikan interaksi yang dapat diprediksi. Untuk informasi selengkapnya, lihat Langganan yang dikelola di dalam alur kerja pesan MQTT.

catatan

Ketika inti sedang offline, fungsi Greengrass Lambda dapat bertukar pesan dengan perangkat klien, konektor, fungsi lain, dan bayangan lokal, tetapi pesan ke antri. AWS IoT Untuk informasi selengkapnya, lihat Antrean pesan MQTT untuk target cloud.

Arus komunikasi lainnya

  • Untuk berinteraksi dengan perangkat lokal dan sumber daya volume dan model machine learning pada perangkat core, fungsi Greengrass Lambda menggunakan antarmuka dari sistem operasi platform spesifik. Misalnya, Anda dapat menggunakan metode open pada modul os dalam fungsi Python. Untuk memungkinkan fungsi dapat mengakses sumber daya, fungsi harus berafiliasi dengan sumber daya dan diberikan izin read-only atau read-write ini. Untuk informasi lebih lanjut, termasuk ketersediaan AWS IoT Greengrass versi core, lihat Akses sumber daya lokal dengan fungsi dan konektor Lambda dan Mengakses sumber daya machine learning dari kode fungsi Lambda.

    catatan

    Jika Anda menjalankan fungsi Lambda Anda tanpa kontainerisasi, Anda tidak dapat menggunakan perangkat lokal terlampir dan sumber daya volume dan harus mengakses sumber daya tersebut secara langsung.

  • Fungsi Lambda dapat menggunakan klien Lambda di AWS IoT Greengrass Core SDK untuk memanggil fungsi Lambda lainnya dalam grup Greengrass.

  • fungsi Lambda dapat menggunakan AWS SDK untuk berkomunikasi dengan layanan AWS ini. Untuk informasi lebih lanjut, lihat AWS SDK.

  • Fungsi Lambda dapat menggunakan antarmuka pihak ketiga untuk berkomunikasi dengan layanan cloud eksternal, mirip dengan fungsi Lambda berbasis cloud.

catatan

Fungsi Greengrass Lambda tidak dapat berkomunikasi dengan AWS atau layanan cloud lainnya ketika core sedang offline.

Mengambil input topik MQTT (atau subjek)

AWS IoT Greengrassmenggunakan langganan untuk mengontrol pertukaran pesan MQTT antara perangkat klien, fungsi Lambda, dan konektor dalam grup, dan dengan AWS IoT atau layanan bayangan lokal. Langganan menentukan sumber pesan, target pesan, dan topik MQTT yang digunakan untuk rute pesan. Ketika target adalah fungsi Lambda, handler fungsi dipanggil ketika sumber menerbitkan pesan. Untuk informasi selengkapnya, lihat Komunikasi menggunakan pesan MQTT.

Contoh berikut menunjukkan bagaimana fungsi Lambda bisa mendapatkan input topik dari context yang diteruskan ke handler. Hal ini dilakukan dengan mengakses kunci subject dari hierarki konteks (context.client_context.custom['subject']). Contoh ini juga mengurai input pesan JSON dan kemudian menerbitkan topik dan pesan yang diurai.

catatan

Di API AWS IoT Greengrass ini, topik langganan diwakili oleh properti subject ini.

import greengrasssdk import logging client = greengrasssdk.client('iot-data') OUTPUT_TOPIC = 'test/topic_results' def get_input_topic(context): try: topic = context.client_context.custom['subject'] except Exception as e: logging.error('Topic could not be parsed. ' + repr(e)) return topic def get_input_message(event): try: message = event['test-key'] except Exception as e: logging.error('Message could not be parsed. ' + repr(e)) return message def function_handler(event, context): try: input_topic = get_input_topic(context) input_message = get_input_message(event) response = 'Invoked on topic "%s" with message "%s"' % (input_topic, input_message) logging.info(response) except Exception as e: logging.error(e) client.publish(topic=OUTPUT_TOPIC, payload=response) return

Untuk menguji fungsi, tambahkan ke grup Anda menggunakan pengaturan konfigurasi default. Kemudian, tambahkan langganan berikut dan deploy grupnya. Untuk petunjuk, lihat Modul 3 (bagian 1): Fungsi Lambda padaAWS IoT Greengrass.

Sumber Target Filter topik
IoT Cloud Fungsi ini test/input_message
Fungsi ini IoT Cloud test/topic_results

Setelah deployment selesai, mengaktifkan fungsi.

  1. Di AWS IoT konsol, buka halaman klien pengujian MQTT.

  2. Berlangganan test/topic_results topik dengan memilih tab Berlangganan ke topik.

  3. Publikasikan pesan ke test/input_message topik dengan memilih tab Publikasikan ke topik. Untuk contoh ini, Anda harus menyertakan properti test-key di pesan JSON.

    { "test-key": "Some string value" }

    Jika berhasil, fungsi menerbitkan input topik dan string pesan ke topik test/topic_results ini.

Konfigurasi siklus hidup untuk fungsi Greengrass Lambda

Siklus hidup fungsi Greengrass Lambda menentukan kapan fungsi dimulai dan bagaimana menciptakan dan menggunakan kontainer. Siklus hidup juga menentukan bagaimana variabel dan logika preprocessing yang berada di luar fungsi handler dipertahankan.

AWS IoT Greengrass dukungan siklus hidup sesuai permintaan (default) atau berumur panjang:

  • Fungsi Sesuai permintaan mulai ketika mereka dipanggil dan berhenti ketika tidak ada tugas yang tersisa untuk dieksekusi. Pemanggilan fungsi membuat kontainer (atau sandbox) terpisah untuk memproses pemanggilan, kecuali jika kontainer yang ada dapat digunakan kembali. Data yang dikirim ke fungsi mungkin ditarik oleh salah satu kontainer.

    Beberapa pemanggilan fungsi sesuai permintaan dapat berjalan secara paralel.

    Variabel dan logika preprocessing yang didefinisikan di luar fungsi handler tidak dipertahankan ketika kontainer baru dibuat.

  • Fungsi yang Berumur panjang (atau disematkan) mulai secara otomatis ketika core AWS IoT Greengrass dimulai dan berjalan dalam kontainer tunggal. Semua data yang dikirim ke fungsi ditarik oleh kontainer yang sama.

    Beberapa pemanggilan diantrekan hingga pemanggilan sebelumnya dieksekusi.

    Variabel dan logika preprocessing yang didefinisikan di luar fungsi handler dipertahankan untuk setiap pemanggilan handler.

    Fungsi Lambda yang berumur panjang berguna ketika Anda harus mulai melakukan pekerjaan tanpa input awal. Misalnya, fungsi yang berumur panjang dapat memuat dan mulai memproses model ML agar siap ketika fungsi mulai menerima data perangkat.

    catatan

    Ingat bahwa fungsi yang berumur panjang memiliki timeout yang terkait dengan pemanggilan dari handler-nya. Jika Anda ingin menjalankan kode tanpa batas waktu, Anda harus memulainya di luar handler. Pastikan bahwa tidak ada kode pemblokiran di luar handler yang mungkin mencegah fungsi menyelesaikan inisialisasi.

    Fungsi-fungsi ini berjalan kecuali core berhenti (misalnya, selama deployment grup atau perangkat reboot) atau fungsi memasuki status error (seperti timeout handler, tidak masuk pengecualian, atau ketika fungsi melebihi batas memori).

Untuk informasi lebih lanjut tentang penggunaan kembali kontainer, lihat Memahami Penggunaan Kembali Kontainer di AWS Lambda dalam Blog Komputasi AWS ini.

Lambda yang dapat dieksekusi

Fitur ini tersedia untuk AWS IoT Greengrass Core v1.6 dan yang lebih baru.

Sebuah Lambda yang dapat dieksekusi adalah jenis fungsi Greengrass Lambda yang dapat Anda gunakan untuk menjalankan kode biner di lingkungan core. Ini memungkinkan Anda menjalankan fungsionalitas khusus perangkat secara asli dan mendapat manfaat dari jejak kode kompilasi yang lebih kecil. Lambda yang dapat dieksekusi dapat dipanggil oleh beberapa peristiwa, memanggil fungsi lainnya, dan mengakses sumber daya lokal.

Lambda yang dapat dieksekusi mendukung jenis encoding biner saja (tidak JSON), tetapi jika tidak, anda dapat mengelola mereka dalam kelompok Greengrass Anda dan menyebarkan mereka seperti fungsi Greengrass Lambda lainnya. Namun, proses menciptakan Lambda yang dapat dieksekusi berbeda dari menciptakan Python, Java, dan Node.js Lambda fungsi:

  • Anda tidak dapat menggunakan konsol AWS Lambda untuk membuat (atau mengelola) Lambda yang dapat dieksekusi. Anda dapat membuat Lambda yang dapat dieksekusi hanya dengan menggunakan API AWS Lambda ini.

  • Anda mengunggah kode fungsi ke AWS Lambda sebagai kompilasi yang dapat dieksekusi yang mencakup AWS IoT Greengrass Core SDK for C.

  • Anda menentukan nama yang dapat dieksekusi sebagai fungsi handler.

Lambda yang dapat dieksekusi harus menerapkan panggilan tertentu dan pola pemrograman dalam kode fungsi mereka. Misalnya, metode main harus:

  • Panggilan gg_global_init untuk menginisialisasi variabel global internal Greengrass. Fungsi ini harus dipanggil sebelum membuat thread apapun, dan sebelum memanggil fungsi AWS IoT Greengrass Core SDK yang lain.

  • Panggilan gg_runtime_start untuk mendaftarkan fungsi handler dengan waktu aktif Greengrass Lambda. Fungsi ini harus dipanggil selama inisialisasi. Memanggil fungsi ini menyebabkan thread digunakan oleh waktu aktif. Opsional parameter GG_RT_OPT_ASYNC memberitahu fungsi ini untuk tidak memblokir, melainkan untuk membuat thread baru untuk waktu aktif. Fungsi ini menggunakan handler SIGTERM ini.

Cuplikan berikut adalah main metode dari contoh kode simple_handler.c pada. GitHub

int main() { gg_error err = GGE_SUCCESS; err = gg_global_init(0); if(err) { gg_log(GG_LOG_ERROR, "gg_global_init failed %d", err); goto cleanup; } gg_runtime_start(handler, 0); cleanup: return -1; }

Untuk informasi lebih lanjut tentang persyaratan, kendala, dan rincian implementasi lainnya, lihat AWS IoT Greengrass Core SDK for C.

Buat Lambda yang dapat dieksekusi

Setelah Anda mengkompilasi kode Anda bersama dengan SDK, gunakan API AWS Lambda untuk membuat fungsi Lambda dan mengunggah kompilasi yang dapat dieksekusi milik Anda.

catatan

Fungsi Anda harus dikompilasi dengan compiler C89 yang kompatibel.

Contoh berikut menggunakan perintah CLI buat fungsi untuk membuat Lambda yang dapat dieksekusi. Perintah menentukan:

  • Nama eksekusi untuk handler. Hal ini harus menjadi nama yang tepat dari kompilasi yang dapat dieksekusi milik Anda.

  • Jalur ke file .zip yang berisi kompilasi yang dapat dieksekusi.

  • arn:aws:greengrass:::runtime/function/executable untuk waktu aktif. Ini adalah waktu aktif untuk semua Lambda yang dapat dieksekusi.

catatan

Untuk role, Anda dapat menentukan ARN dari setiap peran eksekusi Lambda. AWS IoT Greengrass tidak menggunakan peran ini, tetapi parameter diperlukan untuk membuat fungsi. Untuk informasi lebih lanjut tentang peran eksekusi Lambda, lihat AWS Lambda model izin dalam AWS Lambda Panduan Developer.

aws lambda create-function \ --region aws-region \ --function-name function-name \ --handler executable-name \ --role role-arn \ --zip-file fileb://file-name.zip \ --runtime arn:aws:greengrass:::runtime/function/executable

Selanjutnya, gunakan API AWS Lambda untuk menerbitkan versi dan membuat alias.

  • Gunakan publikasikan versi untuk mempublikasikan versi fungsi.

    aws lambda publish-version \ --function-name function-name \ --region aws-region
  • Gunakan Buat alias alias untuk membuat alias poin ke versi yang baru saja Anda publikasikan. Kami menyarankan Anda mereferensi fungsi Lambda dengan alias ketika Anda menambahkannya ke grup Greengrass.

    aws lambda create-alias \ --function-name function-name \ --name alias-name \ --function-version version-number \ --region aws-region
catatan

Konsol AWS Lambda tidak menampilkan Lambda yang dapat dieksekusi. Untuk memperbarui kode fungsi, Anda harus menggunakan API AWS Lambda ini.

Kemudian, menambahkan Lambda yang dapat dieksekusi untuk grup Greengrass, mengonfigurasinya untuk menerima data input biner dalam pengaturan grup tertentu, dan men-deploy grup. Anda dapat melakukannya di konsol AWS IoT Greengrass tersebut atau menggunakan API AWS IoT Greengrass ini.