Memulai dengan konektor Greengrass (konsol) - 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.

Memulai dengan konektor Greengrass (konsol)

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

Tutorial ini menunjukkan cara menggunakan AWS Management Console untuk bekerja dengan konektor.

Gunakan konektor untuk mempercepat siklus hidup pengembangan Anda. Konektor prebuilt, modul dapat digunakan kembali yang dapat membuatnya lebih mudah untuk berinteraksi dengan layanan, protokol, dan sumber daya. Mereka dapat membantu Anda men-deploy logika bisnis ke perangkat Greengrass lebih cepat. Untuk informasi lebih lanjut, lihat Integrasikan dengan layanan dan protokol menggunakan konektor Greengrass.

Dalam tutorial ini, Anda mengkonfigurasi dan men-deploy konektor Notifikasi Twilio. Konektor menerima informasi pesan Twilio sebagai input data, dan kemudian memicu pesan teks Twilio. Aliran data ditunjukkan pada diagram berikut.

Aliran data dari fungsi Lambda untuk konektor Notifikasi Twilio ke Twilio.

Setelah Anda mengkonfigurasi konektor, Anda membuat fungsi Lambda dan langganan.

  • Fungsi mengevaluasi data simulasi dari sensor temperatur. Ini kondisional menerbitkan informasi pesan Twilio untuk topik MQTT. Ini adalah topik yang konektor berlangganan.

  • Langganan membolehkan fungsi untuk menerbitkan topik dan konektor untuk menerima data dari topik tersebut.

Konektor Notifikasi Twilio memerlukan token Twilio auth untuk berinteraksi dengan Twilio API. Token adalah teks tipe rahasia yang dibuat di AWS Secrets Manager dan direferensikan dari sumber daya grup. Hal ini memungkinkan AWS IoT Greengrass untuk membuat salinan lokal rahasia pada Greengrass core, di mana itu dienkripsi dan tersedia untuk konektor. Untuk informasi lebih lanjut, lihat Men-deploy rahasia ke AWS IoT Greengrass core.

Tutorial berisi langkah-langkah tingkat tinggi berikut:

Tutorial akan memakan waktu sekitar 20 menit untuk menyelesaikannya.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda memerlukan:

  • Sebuah grup Greengrass dan Greengrass core (v1.9.3 atau yang lebih baru). Untuk mempelajari cara membuat grup Greengrass dan core, lihat Memulai dengan AWS IoT Greengrass. Tutorial Memulai juga mencakup langkah-langkah untuk menginstal AWS IoT Greengrass perangkat lunak Core.

  • Python 3.7 diinstal pada AWS IoT Greengrass perangkat core.

  • AWS IoT Greengrass harus dikonfigurasi untuk mendukung rahasia lokal, seperti yang dijelaskan dalam Persyaratan Rahasia.

    catatan

    Persyaratan ini mencakup akses ke rahasia Secrets Manager Anda. Jika Anda menggunakan peran layanan default Greengrass, Greengrass memiliki izin untuk mendapatkan nilai-nilai rahasia dengan nama yang dimulai dengan Greengrass-.

  • Akun Twilio SID, token auth, dan nomor telepon berkemampuan Twilio. Setelah Anda membuat proyek Twilio, nilai-nilai ini tersedia dalam dasbor proyek.

    catatan

    Anda dapat menggunakan akun percobaan Twilio. Jika menggunakan akun uji coba, Anda harus menambahkan nomor telepon penerima selain Twilio ke daftar nomor telepon terverifikasi. Untuk informasi lebih lanjut, lihat Cara Bekerja dengan Akun Trial Twilio Gratis.

Langkah 1: Buat rahasia Secrets Manager

Pada langkah ini, Anda menggunakan AWS Secrets Manager konsol untuk membuat rahasia tipe teks untuk token Twilio auth Anda.

  1. Masuk ke konsol AWS Secrets Manager tersebut.

    catatan

    Untuk informasi selengkapnya tentang proses ini, lihatLangkah 1: Membuat dan menyimpan rahasia Anda diAWS Secrets Managerdi dalamAWS Secrets ManagerPanduan Pengguna.

  2. Pilih Simpan rahasia baru.

  3. Di bawahPilih tipe rahasia, pilihJenis rahasia lainnya.

  4. Bawah Tentukan pasangan kunci/nilai yang akan disimpan untuk rahasia ini, pada plaintext tab, masukkan token Twilio auth Anda. Hapus semua format JSON dan masukkan hanya nilai token.

  5. tetapaws/secretsmanagerchoose untuk kunci enkripsi, lalu pilihSelanjutnya.

    catatan

    Anda tidak dikenakan biaya oleh AWS KMS jika Anda menggunakan kunci mengelola AWS default yang dibuat oleh Secrets Manager di akun Anda.

  6. Untuk Nama rahasia, masukkan greengrass-TwilioAuthToken, dan pilih Selanjutnya.

    catatan

    Secara default, peran layanan Greengrass memungkinkan AWS IoT Greengrass untuk mendapatkan nilai rahasia dengan nama yang dimulai dengan Greengrass-. Untuk informasi lebih lanjut, lihat persyaratan rahasia.

  7. Tutorial ini tidak memerlukan rotasi, jadi pilih nonaktifkan rotasi otomatis, lalu pilihSelanjutnya.

  8. Pada halaman Tinjauan tersebut, tinjau pengaturan Anda, dan kemudian pilih Menyimpan.

    Selanjutnya, Anda membuat sumber daya rahasia dalam grup Greengrass Anda yang mereferensi rahasia.

Langkah 2: Tambahkan sumber daya rahasia ke grup Greengrass

Pada langkah ini, Anda tambahkan sumber daya rahasia ke grup Greengrass. Sumber daya ini adalah referensi rahasia yang Anda buat pada langkah sebelumnya.

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

  2. Pilih grup yang ingin Anda tambahkan sumber daya rahasia.

  3. Pada halaman konfigurasi grup, pilihSumber dayatab, lalu gulir ke bawah keRahasiaBagian. YangRahasiabagian menampilkan sumber daya rahasia milik grup. Anda dapat menambahkan, menyunting, dan menghapus sumber daya rahasia dari bagian ini.

    catatan

    Sebagai alternatif, konsol tersebut mengizinkan Anda membuat sumber rahasia dan rahasia saat Anda mengonfigurasi konektor atau fungsi Lambda. Anda dapat melakukan hal ini dari konektor halaman Mengonfigurasi parameter atau fungsi Lambda halaman Sumber Daya ini.

  4. PilihTambahkandi bawahRahasiaBagian.

  5. PadaTambahkan sumber daya rahasiahalaman, masukkanMyTwilioAuthTokenuntukNama sumber daya.

  6. UntukRahasia, pilihGreengrassTwilioAuthToken.

  7. DiPilih label (Opsional)Bagian AWSCURRENT label pementasan mewakili versi terbaru dari rahasia. Label ini selalu disertakan dalam sumber rahasia.

    catatan

    Tutorial ini membutuhkan AWSCURRENT label saja. Anda dapat secara opsional menyertakan label yang diperlukan oleh fungsi Lambda atau konektor.

  8. PilihTambahkan sumber daya.

Langkah 3: Tambahkan konektor ke grup Greengrass

Pada langkah ini, Anda mengkonfigurasi parameter untuk konektor Notifikasi Twilio dan menambahkannya ke grup.

  1. Pada halaman konfigurasi grup, pilih Konektor, dan lalu pilih Menambahkan konektor.

  2. PadaTambahkan konektorhalaman, pilihNotifikasi Twilio.

  3. Pilih versi.

  4. DiKonfigurasiBagian:

    • UntukSumber daya token autentikasi Twilio, masukkan sumber daya yang Anda buat di langkah sebelumnya.

      catatan

      Saat Anda memasukkan sumber daya,ARN dari Twilio auth token rahasiaproperti dihuni untuk Anda.

    • Untuk Default dari nomor telepon, masukkan nomor telepon berkemampuan Twilio Anda.

    • Untuk akun Twilio SID, masukkan akun Twilio SID Anda.

  5. PilihTambahkan sumber daya.

Langkah 4: Buat paket deployment fungsi Lambda

Untuk membuat fungsi Lambda, Anda harus terlebih dahulu membuat fungsi Lambda paket deployment yang berisi kode fungsi dan dependensi. Fungsi Greengrass Lambda membutuhkan AWS IoT Greengrass Core SDK untuk tugas seperti berkomunikasi dengan pesan MQTT di lingkungan core dan mengakses rahasia lokal. Tutorial ini menciptakan fungsi Python, sehingga Anda menggunakan versi Python dari SDK dalam paket deployment.

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

  2. Unzip paket yang diunduh untuk mendapatkan SDK. SDK adalah folder greengrasssdk tersebut.

  3. Simpan fungsi kode Python berikut dalam sebuah file lokal bernama temp_monitor.py.

    import greengrasssdk import json import random client = greengrasssdk.client('iot-data') # publish to the Twilio Notifications connector through the twilio/txt topic def function_handler(event, context): temp = event['temperature'] # check the temperature # if greater than 30C, send a notification if temp > 30: data = build_request(event) client.publish(topic='twilio/txt', payload=json.dumps(data)) print('published:' + str(data)) print('temperature:' + str(temp)) return # build the Twilio request from the input data def build_request(event): to_name = event['to_name'] to_number = event['to_number'] temp_report = 'temperature:' + str(event['temperature']) return { "request": { "recipient": { "name": to_name, "phone_number": to_number, "message": temp_report } }, "id": "request_" + str(random.randint(1,101)) }
  4. Zip item berikut ke dalam file bernama temp_monitor_python.zip. Saat membuat file ZIP, sertakan hanya kode dan dependensi, bukan folder yang berisi.

    • temp_monitor.py. Aplikasi logic.

    • greengrasssdk. Diperlukan perpustakaan untuk fungsi Python Greengrass Lambda yang menerbitkan pesan MQTT.

    Ini adalah paket deployment fungsi Lambda Anda.

Sekarang, buat fungsi Lambda yang menggunakan paket deployment.

Langkah 5: Membuat fungsi Lambda diAWS Lambdakonsol

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

  1. Pertama, buat fungsi Lambda.

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

    2. Pilih Buat fungsi dan kemudian Tulis dari awal.

    3. Di bagian Informasi dasar tersebut, gunakan nilai-nilai berikut:

      • Untuk Nama fungsi, masukkan TempMonitor.

      • Untuk Waktu pengoperasian, 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.

    4. Di bagian bawah halaman, pilih Buat Fungsi.

  2. Selanjutnya, daftarkan handler dan 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 temp_monitor_python.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 temp_monitor.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.

  3. Sekarang, publikasikan versi pertama fungsi Lambda Anda dan membuat alias untuk versi.

    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 menu Tindakan ini, pilih Terbitkan versi baru.

    2. Untuk Versi Deskripsi, masukkan First version, lalu pilih Publikasikan.

    3. PadaTempMonitor: 1halaman konfigurasi, dariTindakanmenu, pilihMembuat alias.

    4. Pada halaman Buat alias baru ini, gunakan nilai-nilai berikut:

      • Untuk Nama, masukkan GG_TempMonitor.

      • Untuk Versi, pilih 1.

      catatan

      AWS IoT Greengrass tidak support alias Lambda untuk versi $TERBARU ini.

    5. Pilih Create (Buat).

Sekarang Anda siap untuk menambahkan fungsi Lambda ke grup Greengrass Anda.

Langkah 6: Tambahkan fungsi Lambda ke grup Greengrass

Dalam langkah ini, Anda menambahkan fungsi Lambda ke grup lalu mengonfigurasi siklus hidup dan lingkungan variabel. Untuk informasi selengkapnya, lihat Mengontrol eksekusi fungsi Greengrass Lambda dengan menggunakan konfigurasi grup khusus.

  1. Pada halaman konfigurasi grup, pilihFungsi LambdaTab.

  2. Di bawahFungsi Lambda, pilihTambahkan.

  3. PadaTambahkan fungsi Lambdahalaman, pilihTempMonitoruntuk fungsi Lambda Anda.

  4. UntukVersi fungsi Lambda, pilihAlias: GG_TempMonitor.

  5. PilihTambahkan fungsi Lambda.

Langkah 7: Tambahkan langganan ke grup Greengrass

Pada langkah ini, Anda menambahkan langganan yang memungkinkan fungsi Lambda untuk mengirim input data ke konektor. Konektor mendefinisikan topik MQTT yang berlangganan, jadi langganan ini menggunakan salah satu topik. Ini adalah topik yang sama bahwa fungsi contoh menerbitkan.

Untuk tutorial ini, Anda juga membuat langganan yang memungkinkan fungsi untuk menerima pembacaan temperatur simulasi dari AWS IoT dan membolehkan AWS IoT untuk menerima informasi status dari konektor.

  1. Pada halaman konfigurasi grup, pilihLangganantab, dan kemudian pilihTambahkan langganan.

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

    1. UntukJenis Sumber, pilihFungsi Lambda, dan kemudian pilihTempMonitor.

    2. UntukJenis target, pilihKonektor, dan kemudian pilihNotifikasi Twilio.

  3. UntukFilter topik, pilihtwilio/txt.

  4. Pilih Buat langganan.

  5. Ulangi langkah 1 - 4 untuk membuat langganan yang memungkinkan AWS IoT untuk menerbitkan pesan ke fungsi.

    1. UntukJenis Sumber, pilihLayanan, dan kemudian pilihIoT Cloud.

    2. UntukPilih target, pilihFungsi Lambda, dan kemudian pilihTempMonitor.

    3. Untuk filter Topik, masukkan temperature/input.

  6. Ulangi langkah 1 - 4 untuk membuat langganan yang membolehkan konektor menerbitkan pesan AWS IoT.

    1. UntukJenis Sumber, pilihKonektor, dan kemudian pilihNotifikasi Twilio.

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

    3. Untuk filter Topik, twilio/message/status dimasukkan untuk Anda. Ini adalah topik yang telah ditetapkan yang diterbitkan oleh konektor.

Langkah 8: Men-deploy grup Greengrass

Men-deploy grup ke perangkat core.

  1. Pastikan bahwa core AWS IoT Greengrass 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/ggc-version/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.

    1. DiFungsi Lambdatab, di bawahFungsi Lambda sistembagian, pilihDetektor IPdan pilihlahedit.

    2. DiPengaturan detektor IPkotak dialog, pilihSecara otomatis mendeteksi dan mengganti titik akhir broker MQTT.

    3. Pilih Save (Simpan).

      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 yang ditampilkan untuk deployment harusCompleted (Lengkap).

      Untuk langkah-langkah penyelesaian masalah, lihat Pemecahan Masalah AWS IoT Greengrass.

catatan

Sebuah grup Greengrass dapat berisi hanya satu versi dari konektor pada suatu waktu. Untuk informasi tentang peningkatan versi konektor, lihat Versi upgrade konektor.

Pengujian solusi

  1. Pada halaman beranda konsol AWS IoT tersebut, pilih Pengujian.

  2. Untuk Berlangganan topik, gunakan nilai berikut, dan lalu pilih Langganan. Konektor Notifikasi Twilio menerbitkan informasi status untuk topik ini.

    Properti

    Nilai

    Topik langganan

    twilio/message/status

    Tampilan muatan MQTT

    Tampilkan muatan sebagai string

  3. Untuk Publikasikan ke topik, gunakan nilai-nilai berikut, dan kemudian pilih Publikasikan untuk memanggil fungsi.

    Properti

    Nilai

    Topik

    temperatur/input

    Message

    Gantinama-penerimadengan nama danrecipient-phone-numberdengan nomor telepon penerima pesan teks. Contoh: +12345000000

    { "to_name": "recipient-name", "to_number": "recipient-phone-number", "temperature": 31 }

    Jika Anda menggunakan akun uji coba, Anda harus menambahkan nomor telepon penerima selain Twilio ke daftar nomor telepon terverifikasi. Untuk informasi lebih lanjut, lihat Verifikasi Nomor Telepon Pribadi.

    Jika berhasil, penerima menerima pesan teks dan konsol menampilkan success status dari output data.

    Sekarang, ubah temperature dalam pesan input untuk 29 dan terbitkan. Karena ini adalah kurang dari 30, TempMonitor Fungsi tidak memicu pesan Twilio.

Lihat juga