Cara mengonfigurasi akses sumber daya lokal menggunakan AWS Management Console - 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.

Cara mengonfigurasi akses sumber daya lokal menggunakan AWS Management Console

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

Anda dapat mengonfigurasi fungsi Lambda agar aman mengakses sumber daya lokal pada host perangkat core Greengrass. Sumber daya lokal merujuk ke bus dan periferal yang ada secara fisik pada host, atau volume sistem file pada OS host. Untuk informasi lebih lanjut, termasuk persyaratan dan kendala, lihat Akses sumber daya lokal dengan fungsi dan konektor Lambda.

Tutorial ini menjelaskan cara menggunakan AWS Management Console untuk mengonfigurasi akses ke sumber daya lokal yang ada di perangkat AWS IoT Greengrass core. Itu berisi langkah-langkah tingkat tinggi berikut:

Untuk tutorial yang menggunakan AWS Command Line Interface, lihat Cara mengonfigurasi akses sumber daya lokal menggunakan AWS antarmuka baris perintah.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda memerlukan:

  • Sebuah grup Greengrass dan core Greengrass (v1.3 atau lebih baru). Untuk membuat grup Greengrass atau core, lihat Memulai dengan AWS IoT Greengrass.

  • Direktori berikut ada pada perangkat core Greengrass:

    • /src/LRAtest

    • /dest/LRAtest

    Grup pemilik direktori ini harus memiliki akses baca dan tulis ke direktori. Anda dapat menggunakan perintah berikut untuk memberikan akses:

    sudo chmod 0775 /src/LRAtest

Langkah 1: Buat paket deployment fungsi Lambda

Pada langkah ini, Anda membuat paket deployment fungsi Lambda, yang merupakan file ZIP yang berisi kode fungsi dan dependensi. Anda juga mengunduh AWS IoT Greengrass Core SDK untuk memasukkan dalam paket sebagai dependensi.

  1. Pada komputer Anda, salin skrip Python berikut ke file lokal bernama lraTest.py. Ini adalah logika aplikasi untuk fungsi Lambda.

    # Demonstrates a simple use case of local resource access. # This Lambda function writes a file test to a volume mounted inside # the Lambda environment under destLRAtest. Then it reads the file and # publishes the content to the AWS IoT LRAtest topic. import sys import greengrasssdk import platform import os import logging # Setup logging to stdout logger = logging.getLogger(__name__) logging.basicConfig(stream=sys.stdout, level=logging.DEBUG) # Create a Greengrass Core SDK client. client = greengrasssdk.client('iot-data') volumePath = '/dest/LRAtest' def function_handler(event, context): try: client.publish(topic='LRA/test', payload='Sent from AWS IoT Greengrass Core.') volumeInfo = os.stat(volumePath) client.publish(topic='LRA/test', payload=str(volumeInfo)) with open(volumePath + '/test', 'a') as output: output.write('Successfully write to a file.') with open(volumePath + '/test', 'r') as myfile: data = myfile.read() client.publish(topic='LRA/test', payload=data) except Exception as e: logger.error('Failed to publish message: ' + repr(e)) return
  2. Dari halaman AWS IoT Greengrass Core SDK mengunduh, unduh AWS IoT Greengrass Core SDK for Python ke komputer Anda.

  3. Unzip paket yang diunduh untuk mendapatkan SDK. SDK adalah greengrasssdk folder.

  4. Zip item berikut ke dalam file bernama lraTestLambda.zip:

    • lraTest.py. Logika aplikasi.

    • greengrasssdk. Diperlukan perpustakaan untuk semua fungsi Python Lambda.

    File lraTestLambda.zip adalah paket deployment fungsi Lambda Anda. Sekarang Anda siap untuk membuat fungsi Lambda dan mengunggah paket deployment.

Langkah 2: Buat dan publikasikan fungsi Lambda

Pada langkah ini, Anda menggunakan konsol AWS Lambda untuk membuat fungsi Lambda dan mengonfigurasinya agar dapat menggunakan paket deployment Anda. Kemudian, Anda mempublikasikan versi fungsi dan membuat alias.

Pertama, buat fungsi Lambda.

  1. Di AWS Management Console, pilih Layanan, dan buka konsol AWS Lambda tersebut.

  2. PilihFungsi.

  3. Pilih Buat fungsi dan kemudian pilih Tulis dari awal.

  4. Di bagian Informasi dasar tersebut, gunakan nilai-nilai berikut.

    1. Untuk Nama fungsi, masukkan TestLRA.

    2. Untuk Waktu pengoperasian, pilih Python 3.7.

    3. Untuk Izin, pertahankan pengaturan default. Hal ini menciptakan peran eksekusi yang memberikan izin Lambda basic. Peran ini tidak digunakan oleh AWS IoT Greengrass.

  5. Pilih Buat fungsi.

    Halaman Buat fungsi dengan Buat fungsi disorot.

     

  6. Unggah paket deployment fungsi Lambda Anda dan daftarkan handler-nya.

    1. Pada tab Kode tersebut, 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 lraTestLambda.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 aktif, pilih Python 3.7.

      • Untuk Handler, memasukkan lraTest.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 (misalnya, greengrass_common) dipasok ke fungsi setelah mereka di-deploy ke core Greengrass Anda.

    Selanjutnya, mempublikasikan versi pertama fungsi Lambda Anda. Kemudian, buat alias untuk versi.

    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.

  7. Dari Tindakan, pilih Terbitkan versi baru.

  8. Untuk Deskripsi versi, memasukkan First version, lalu pilih Publikasikan.

  9. Pada halama konfigurasi TestLRA: 1 tersebut, dari Tindakan, pilih Buat alias.

  10. PadaMembuat aliashalaman, untukNamaENTERtest. Untuk Versi, masukkan 1.

    catatan

    AWS IoT Greengrass tidak mendukung alias Lambda dari versi $TERBARU ini.

  11. Pilih Create (Buat).

    Halaman Buat alias baru dengan Buat disorot.

    Anda sekarang dapat menambahkan fungsi Lambda ke grup Greengrass Anda.

Langkah 3: Tambahkan fungsi Lambda ke grup Greengrass

Pada langkah ini, Anda menambahkan fungsi ke grup Anda dan mengonfigurasi siklus hidup fungsi.

Pertama, tambahkan fungsi Lambda ke grup Greengrass Anda.

  1. DiAWS IoTpanel navigasi konsol, di bawahKelolaPerluasPerangkat Greengrass, dan kemudian pilihGrup (V1).

  2. Pilih grup Greengrass di mana Anda ingin menambahkan fungsi Lambda.

  3. Pada halaman Konfigurasi grup, pilihFungsi LambdaTab.

  4. Di bawahFungsi Lambda sayabagian, pilihTambahkan.

  5. PadaTambahkan fungsi Lambdahalaman, pilihFungsi Lambda. Pilih TestLRA.

  6. PilihVersi fungsi Lambda.

  7. DiKonfigurasi fungsi Lambdabagian, pilihPengguna dan grup sistemdanKontainerisasi fungsi Lambda.

     

    Selanjutnya, konfigurasikan siklus hidup fungsi Lambda.

  8. UntukWaktu habis, choose30 detik.

    penting

    Fungsi Lambda yang menggunakan sumber daya lokal (seperti yang dijelaskan dalam prosedur ini) harus berjalan dalam kontainer Greengrass. Jika tidak, deployment gagal jika Anda mencoba untuk men-deploy fungsi. Untuk informasi lebih lanjut, lihat Kontainerisasi.

  9. Di bagian bawah halaman, pilihTambahkan fungsi Lambda.

Langkah 4: Tambahkan sumber daya lokal ke grup Greengrass

Pada langkah ini, Anda menambahkan sumber daya volume lokal untuk grup Greengrass dan memberikan fungsi akses membaca dan menulis ke sumber daya. Sumber daya lokal memiliki lingkup grup-tingkat. Anda dapat memberikan izin untuk setiap fungsi Lambda dalam grup untuk mengakses sumber daya.

  1. Pada halaman Konfigurasi grup, pilihSumber dayaTab.

  2. Di bawahSumber daya lokalbagian, pilihTambahkan.

  3. PadaTambahkan sumber daya lokalhalaman, gunakan nilai-nilai berikut.

    1. Untuk Nama sumber daya, memasukkan testDirectory.

    2. Untuk Jenis sumber daya, pilih Volume.

    3. UntukJalur perangkatENTER/src/LRAtest. Jalur ini harus ada pada OS host.

      Jalur perangkat lokal adalah jalur absolut lokal sumber daya pada sistem file dari perangkat core. Lokasi ini berada di luar Kontainer di mana fungsi berjalan. Jalur tidak dapat dimulai dengan /sys.

    4. Untuk Jalur tujuan, masukkan /dest/LRAtest. Jalur ini harus ada pada OS host.

      Jalur tujuan adalah jalur absolut dari sumber daya di namespace Lambda. Lokasi ini adalah di dalam kontainer di mana fungsi berjalan.

    5. Di bawahPemilik grup sistem dan izin akses filechooseSecara otomatis menambahkan izin sistem file dari grup sistem yang memiliki sumber daya.

      YangPemilik grup sistem dan izin akses filePilihan memungkinkan Anda memberikan izin akses file tambahan untuk proses Lambda. Untuk informasi selengkapnya, lihat Izin akses file pemilik grup.

  4. PilihTambahkan sumber daya. Halaman Sumber Daya menampilkan sumber daya testDirectory baru.

Langkah 5: Tambahkan langganan ke grup Greengrass

Pada langkah ini, Anda akan menambahkan dua langganan ke grup Greengrass. Langganan ini memungkinkan komunikasi dua arah antara fungsi Lambda dan AWS IoT.

Pertama, buat langganan untuk fungsi Lambda agar mengirim pesan ke AWS IoT.

  1. Pada halaman Konfigurasi grup, pilihLanggananTab.

  2. Pilih Tambahkan.

  3. PadaBuat langgananhalaman, konfigurasikan sumber dan target, sebagai berikut:

    1. UntukJenis Sumber, chooseFungsi Lambda, dan kemudian pilihTestLRA.

    2. UntukJenis target, chooseLayanan, dan kemudian pilihIoT Cloud.

    3. UntukFilter topikENTERLRA/test, dan kemudian pilihBuat langganan.

  4. Halaman Berlangganan menampilkan langganan baru.

     

    Selanjutnya, konfigurasikan langganan yang memanggil fungsi dari AWS IoT.

  5. Di halaman Langganan tersebut, pilih Tambahkan langganan.

  6. Pada halaman Pilih sumber dan target tersebut, mengonfigurasi sumber dan target, sebagai berikut:

    1. UntukJenis Sumber, chooseFungsi Lambda, dan kemudian pilihIoT Cloud.

    2. UntukJenis target, chooseLayanan, dan kemudian pilihTestLRA.

    3. Pilih Selanjutnya.

  7. Pada halaman Filter data Anda dengan topik ini, di Filter topik, masukkan invoke/LRAFunction, lalu pilih Selanjutnya.

  8. Pilih Selesai. Halaman Berlangganan menampilkan kedua langganan.

Langkah 6: DeployAWS IoT Greengrasskelompok

Pada langkah ini, Anda men-deploy versi definisi grup.

  1. Pastikan bahwa AWS IoT Greengrass core sedang berjalan. Jalankan perintah berikut di terminal Raspberry Pi Anda, sesuai kebutuhan.

    1. Untuk memeriksa apakah daemon sedang berjalan:

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

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

      catatan

      Versi di jalur tergantung pada versi perangkat lunak AWS IoT Greengrass core yang diinstal pada perangkat core Anda.

    2. Untuk memulai daemon:

      cd /greengrass/ggc/core/ sudo ./greengrassd start
  2. Pada halaman Konfigurasi grup, pilihDeploy.

    catatan

    Deployment gagal jika Anda menjalankan fungsi Lambda Anda tanpa kontainerisasi dan mencoba untuk mengakses sumber daya lokal terlampir.

  3. Jika diminta, padaFungsi Lambdatab, di bawahFungsi Lambda sistemchooseDetektor IP, dan kemudianedit, dan kemudianMendeteksi.

    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.

    catatan

    Jika diminta, berikan izin untuk membuat Peran layanan Greengrass dan kaitkan dengan Akun AWS Anda pada Wilayah AWS. Peran ini memungkinkan AWS IoT Greengrass untuk mengakses sumber daya Anda di layanan AWS ini.

    Halaman Deployment menampilkan timestamp deployment, ID versi, dan status. Setelah selesai, status deploymentCompleted (Lengkap).

    Untuk bantuan penyelesaian masalah, lihat Pemecahan Masalah AWS IoT Greengrass.

Uji akses sumber daya lokal

Sekarang Anda dapat memverifikasi apakah akses sumber daya lokal dikonfigurasi dengan benar. Untuk menguji, Anda berlangganan topik LRA/test dan mempublikasikan ke invoke/LRAFunction topik. Tes ini berhasil jika fungsi Lambda mengirimkan muatan yang diharapkan ke AWS IoT.

  1. DariAWS IoTmenu navigasi konsol, di bawahPengujian, chooseKlien pengujian MQTT.

  2. Di bawahBerlangganan topik, untukFilter topikENTERLRA/test.

  3. Di bawahInformasi tambahan, untukTampilan muatan MQTTchooseTampilkan muatan sebagai string.

  4. Pilih Langganan. Fungsi Lambda Anda menerbitkan untuk topik LRA/tes.

    Halaman Langganan dengan Berlangganan ke topik disorot.
  5. Di bawahMenerbitkan ke topik, dalamNama topikmemasukkaninvoke/LRAFunction, dan kemudian pilihPublikasikanuntuk memanggil fungsi Lambda Anda. Tes ini berhasil jika halaman menampilkan muatan tiga pesan fungsi.

    Halaman Langganan dengan topik memanggil/LRAFunction dan Publikasikan ke topik yang disorot, dan hasil tes dengan data pesan.

File tes yang dibuat oleh fungsi Lambda ada di direktori /src/LRAtest pada perangkat core Greengrass. Meskipun fungsi Lambda menulis ke file dalam direktori /dest/LRAtest tersebut, file tersebut terlihat hanya di namespace Lambda. Anda tidak dapat melihatnya di namespace Linux biasa. Setiap perubahan ke jalur tujuan tercermin dalam jalur sumber pada sistem file.

Untuk bantuan penyelesaian masalah, lihat Pemecahan Masalah AWS IoT Greengrass.