Akses sumber daya lokal dengan fungsi dan konektor 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.

Akses sumber daya lokal dengan fungsi dan konektor Lambda

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

Dengan AWS IoT Greengrass, Anda dapat fungsi AWS Lambda penulis dan mengonfigurasi konektor di cloud dan men-deploy mereka ke perangkat core untuk eksekusi lokal. Pada core Greengrass yang menjalankan Linux, fungsi Lambda yang men-deploy secara lokal dan konektor dapat mengakses sumber daya lokal yang secara fisik hadir pada perangkat core Greengrass. Sebagai contoh, untuk berkomunikasi dengan perangkat yang terhubung melalui Modbus atau CanBus, Anda dapat mengaktifkan fungsi Lambda Anda untuk mengakses port serial pada perangkat core. Untuk mengonfigurasi akses aman ke sumber daya lokal, Anda harus menjamin keamanan perangkat keras fisik Anda dan core Greengrass perangkat OS Anda.

Untuk mulai mengakses sumber daya lokal, lihat tutorial berikut:

Jenis sumber daya yang mendukung

Anda dapat mengakses dua jenis sumber daya lokal: sumber daya volume dan sumber daya perangkat.

Sumber daya volume

File atau direktori pada sistem root file (kecuali di bawah /sys, /dev, atau /var). Ini termasuk:

  • Folder atau file yang digunakan untuk membaca atau menulis informasi di seluruh fungsi Lambda Greengrass (sebagai contoh, /usr/lib/python2.x/site-packages/local).

  • Folder atau file di bawah sistem file/proc host (misalnya, /proc/net atau /proc/stat). Didukung di v1.6 atau versi lebih baru. Untuk keperluan tambahan, lihat Sumber daya volume di bawah direktori /proc.

Tip

Untuk mengonfigurasi /var, /var/run, dan /var/lib direktori sebagai sumber volume, pertama-tama pasang direktori di folder lain dan kemudian konfigurasikan folder sebagai sumber daya volume.

Bila Anda mengonfigurasi sumber daya volume, tentukan jalur sumber dan jalur tujuan Anda. Path sumber adalah path absolut dari sumber daya pada host. Jalur tujuan adalah path absolut dari sumber daya di dalam lingkungan namespace Lambda. Ini adalah kontainer yang fungsi Lambda Greengrass atau konektor berjalan di. Setiap perubahan ke jalur tujuan tercermin di jalur sumber pada sistem file host.

catatan

File di jalur tujuan terlihat di namespace Lambda saja. Anda tidak dapat melihatnya di namespace Linux biasa.

Sumber daya perangkat

File di bawah /dev. Hanya perangkat karakter atau perangkat blok di bawah /dev diizinkan untuk sumber daya perangkat. Ini termasuk:

  • Port serial yang digunakan untuk berkomunikasi dengan perangkat yang terhubung melalui port serial (sebagai contoh, /dev/ttyS0, /dev/ttyS1).

  • USB yang digunakan untuk meghubungkan periferal USB (sebagai contoh, /dev/ttyUSB0 atau /dev/bus/usb).

  • GPIO digunakan untuk sensor dan aktuator melalui GPIO (sebagai contoh, /dev/gpiomem).

  • GPU digunakan untuk mempercepat pembelajaran machine learning menggunakan GPU on-board (sebagai contoh, /dev/nvidia0).

  • Kamera yang digunakan untuk menangkap gambar dan video (sebagai contoh, /dev/video0).

catatan

/dev/shm adalah pengecualian. Hal ini dapat dikonfigurasi sebagai sumber daya volume saja. Sumber daya di bawah /dev/shm harus diberikan rw izin.

AWS IoT Greengrass juga mendukung jenis sumber daya yang digunakan untuk melakukan inference machine learning. Untuk informasi selengkapnya, lihat Lakukan inferensi machine learning.

Persyaratan

Persyaratan berikut berlaku untuk mengonfigurasi akses aman ke sumber daya lokal:

  • Anda harus menggunakan AWS IoT Greengrass Core Software v1.3 atau yang lebih baru. Untuk membuat sumber daya untuk host direktori/proc, Anda harus menggunakan v1.6 atau yang lebih baru.

  • Sumber daya lokal (termasuk driver yang diperlukan dan perpustakaan) harus diinstal dengan benar pada perangkat core Greengrass dan secara konsisten tersedia selama penggunaan.

  • Operasi yang diinginkan dari sumber daya, dan akses ke sumber daya, tidak harus memerlukan hak istimewa root.

  • Hanya read atau read and write izin tersedia. Fungsi Lambda tidak dapat melakukan operasi istimewa pada sumber daya.

  • Anda harus menyediakan jalur lengkap sumber daya lokal pada sistem operasi perangkat core Greengrass.

  • Nama sumber daya atau ID memiliki panjang maksimal 128 karakter dan harus menggunakan pola [a-zA-Z0-9:_-]+.

Sumber daya volume di bawah direktori /proc

Pertimbangan berikut berlaku untuk sumber daya volume yang berada di bawah host direktori /proc.

  • Anda harus menggunakan AWS IoT Greengrass Core Software v1.6 atau yang lebih baru.

  • Anda dapat mengizinkan akses hanya-baca untuk fungsi Lambda, tetapi tidak akses baca-tulis. Tingkat akses ini dikelola oleh AWS IoT Greengrass.

  • Anda mungkin juga harus memberikan izin grup OS untuk mengaktifkan akses baca di sistem file. Sebagi contoh, andaikan direktori sumber atau file Anda memiliki 660 file izin, yang berarti bahwa hanya pemilik atau pengguna di kgrup telah membaca (dan menulis) akses. Dalam hal ini, Anda harus menambahkan izin pemilik grup OS ke sumber daya. Untuk informasi selengkapnya, lihat Izin akses file pemilik grup.

  • Lingkungan host dan namespace Lambda keduanya berisi direktori /proc, jadi pastikan untuk menghindari penamaan konflik ketika Anda menentukan jalur tujuan. Misalnya, jika /proc adalah jalur sumber, Anda dapat menentukan /host-proc sebagai jalur tujuan (atau nama jalur selain "/proc").

Izin akses file pemilik grup

Proses AWS IoT Greengrass fungsi Lambda biasanya berjalan sebagai ggc_user dan ggc_group. Namun, Anda dapat memberikan izin akses file tambahan untuk proses fungsi Lambda dalam definisi sumber daya lokal, sebagai berikut:

  • Untuk menambahkan izin dari grup Linux yang memiliki sumber daya, gunakan opsi konsol sumberGroupOwnerSetting#AutoAddGroupOwner daya atau Secara otomatis tambahkan izin sistem file dari grup sistem yang memiliki opsi konsol sumber daya.

  • Untuk menambahkan izin dari grup Linux yang berbeda, gunakanGroupOwnerSetting#GroupOwner parameter atau Tentukan grup sistem lain untuk menambahkan izin dari grup Linux yang berbeda, gunakan opsi konsol izin sistem. Nilai GroupOwner diabaikan jika GroupOwnerSetting#AutoAddGroupOwner adalah benar.

Proses AWS IoT Greengrass fungsi Lambda mewarisi semua izin sistem file dari ggc_user, ggc_group, dan grup Linux (jika ditambahkan). Untuk fungsi Lambda untuk mengakses sumber daya, proses fungsi Lambda harus memiliki izin yang diperlukan untuk sumber daya. Anda dapat menggunakan chmod(1) perintah untuk mengubah izin dari sumber daya, jika perlu.

Lihat juga

  • Service Quotas untuk sumber daya di Referensi Umum Amazon Web Services