Integrasikan dengan layanan dan protokol menggunakan konektor Greengrass - 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.

Integrasikan dengan layanan dan protokol menggunakan konektor Greengrass

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

Konektor di AWS IoT Greengrass adalah modul prebuilt yang membuatnya lebih efisien untuk berinteraksi dengan infrastruktur lokal, protokol perangkat, AWS, dan layanan cloud lainnya. Dengan menggunakan konektor, Anda dapat menghabiskan lebih sedikit waktu untuk mempelajari protokol dan API baru dan lebih banyak waktu fokus pada logika yang berarti bagi bisnis Anda.

Diagram berikut menunjukkan di mana konektor dapat masuk ke dalam AWS IoT Greengrass lanskap.

Konektor terhubung ke perangkat, layanan, dan sumber daya lokal.

Banyak konektor menggunakan pesan MQTT untuk berkomunikasi dengan perangkat klien dan fungsi Lambda Greengrass di grup, atau denganAWS IoTdan layanan bayangan lokal. Pada contoh berikut, konektor Notifikasi Twilio menerima pesan MQTT dari fungsi Lambda yang ditetapkan pengguna, menggunakan referensi lokal rahasia dari AWS Secrets Manager, dan memanggil Twilio API.

Sebuah konektor menerima pesan MQTT dari fungsi Lambda dan memanggil layanan.

Untuk tutorial yang membuat solusi ini, lihat Memulai dengan konektor Greengrass (konsol) dan Memulai dengan konektor Greengrass (CLI).

Konektor Greengrass dapat membantu Anda memperluas kemampuan perangkat atau membuat perangkat tujuan tunggal. Dengan menggunakan konektor, Anda dapat:

  • Menerapkan logika bisnis dapat digunakan kembali.

  • Berinteraksi dengan layanan cloud dan lokal, termasuk AWS dan layanan pihak ketiga.

  • Menelan dan memproses data peranti.

  • Aktifkan device-to-device panggilan menggunakan langganan topik MQTT dan fungsi Lambda yang ditetapkan pengguna.

AWS menyediakan satu set konektor Greengrass yang menyederhanakan interaksi dengan layanan umum dan sumber data. Modul prebuilt ini memungkinkan skenario untuk pencatatan dan diagnostik, penambahan, pemrosesan data industri, dan alarm dan pesan. Untuk informasi selengkapnya, lihat AWS-disediakan konektor Greengrass.

Persyaratan

Untuk menggunakan konektor, ingatlah hal-hal ini:

  • Setiap konektor yang Anda gunakan memiliki persyaratan yang harus Anda penuhi. Persyaratan ini mungkin termasuk minimum AWS IoT Greengrass Versi perangkat lunak Core, prasyarat perangkat, izin yang diperlukan, dan batas. Untuk informasi selengkapnya, lihat AWS-disediakan konektor Greengrass.

  • Sebuah grup Greengrass dapat berisi hanya satu contoh dikonfigurasi dari konektor yang diberikan. Namun, Anda dapat menggunakan contoh dalam beberapa langganan. Untuk informasi selengkapnya, lihat Parameter konfigurasi.

  • Ketika kontainerisasi default untuk grup Greengrass diatur ke Tanpa kontainer, konektor di grup harus berjalan tanpa kontainerisasi. Untuk menemukan konektor yang mendukung mode Tanpa kontainer ini, lihat AWS-disediakan konektor Greengrass.

Menggunakan konektor Greengrass

Konektor adalah jenis komponen grup. Seperti komponen grup lainnya, seperti perangkat klien dan fungsi Lambda yang ditetapkan pengguna, Anda menambahkan konektor ke grup, mengonfigurasi pengaturan mereka, dan menerapkannya ke grup, mengonfigurasi pengaturan mereka, dan menerapkannya keAWS IoT Greengrassinti. Konektor berjalan di lingkungan core.

Anda dapat menggunakan beberapa konektor sebagai aplikasi mandiri sederhana. Sebagai contoh, konektor Device Defender membaca metrik sistem dari perangkat core dan mengirimkannya AWS IoT Device Defender untuk analisis.

Anda dapat menambahkan konektor lain sebagai blok bangunan dalam solusi yang lebih besar. Contoh berikut solusi menggunakan konektor Adaptor ModBus-RTU untuk memproses pesan dari sensor dan konektor Notifikasi Twilio untuk memulai pesan Twilio.

Aliran data dari fungsi Lambda untuk konektor ModBus-RTU Protocol Adapter ke fungsi Lambda ke konektor Notifikasi Twilio ke Twilio.

Solusi sering mencakup fungsi Lambda yang ditetapkan pengguna yang duduk di samping konektor dan memproses data yang dikirim atau diterima konektor. Dalam contoh ini, TempMonitorfungsi menerima data dari ModBus-RTU Protocol Adapter, menjalankan beberapa logika bisnis, dan kemudian mengirimkan data ke Notifikasi Twilio.

Untuk membuat dan menerapkan solusi, Anda mengikuti proses umum ini:

  1. Memetakan aliran data tingkat tinggi. Mengidentifikasi sumber data, saluran data, layanan, protokol, dan sumber daya yang Anda butuhkan untuk bekerja dengan. Dalam solusi contoh, ini termasuk data melalui protokol Modbus RTU, port serial Modbus fisik, dan Twilio.

  2. Identifikasi konektor untuk disertakan dalam solusi, dan tambahkan ke grup Anda. Solusi contoh menggunakan Modbus-RTU Protocol Adapter dan Notifikasi Twilio. Untuk membantu Anda menemukan konektor yang berlaku untuk skenario Anda, dan untuk mempelajari tentang persyaratan masing-masing, lihat AWS-disediakan konektor Greengrass.

  3. Mengidentifikasi apakah fungsi Lambda pengguna yang ditentukan, perangkat, atau sumber daya yang diperlukan, dan kemudian membuat dan menambahkannya ke grup. Ini mungkin termasuk fungsi yang berisi logika bisnis atau data proses ke dalam format yang diperlukan oleh entitas lain dalam solusi. Contoh solusi menggunakan fungsi untuk mengirim permintaan Modbus RTU dan memulai notifikasi Twilio. Ini juga mencakup sumber daya perangkat lokal untuk port serial Modbus RTU dan sumber daya rahasia untuk token otentikasi Twilio.

    catatan

    Password referensi sumber daya rahasia, token, dan rahasia lainnya dari AWS Secrets Manager. Rahasia dapat digunakan oleh konektor dan fungsi Lambda untuk mengotentikasi dengan layanan dan aplikasi. Secara default, AWS IoT Greengrass dapat mengakses rahasia dengan nama yang dimulai dengan "greengrass-". Untuk informasi selengkapnya, lihat Men-deploy rahasia ke AWS IoT Greengrass core.

  4. Buat langganan yang mengizinkan entitas dalam solusi untuk bertukar pesan MQTT. Jika konektor digunakan di langganan, konektor dan sumber pesan atau target harus menggunakan sintaks topik yang telah ditetapkan yang didukung oleh konektor. Untuk informasi selengkapnya, lihat Input dan output.

  5. Terapkan grup ke Greengrass core.

Untuk informasi tentang membuat dan menerapkan konektor, lihat tutorial berikut:

Parameter konfigurasi

Banyak konektor menyediakan parameter yang memungkinkan Anda menyesuaikan perilaku atau output. Parameter ini digunakan selama inisialisasi, di runtime, atau di lain waktu dalam siklus hidup konektor.

Jenis dan penggunaan parameter bervariasi menurut konektor. Sebagai contoh, penyambung SNS mempunyai parameter yang mengonfigurasi topik default SNS, dan Device Defender mempunyai parameter yang mengonfigurasi tingkat sampling data.

Sebuah versi grup dapat berisi beberapa konektor, tetapi hanya satu contoh dari konektor yang diberikan pada suatu waktu. Ini berarti bahwa setiap konektor dalam grup hanya dapat memiliki satu konfigurasi aktif. Namun, konektor instance dapat digunakan dalam beberapa langganan di grup. Sebagai contoh, Anda dapat membuat langganan yang mengizinkan banyak perangkat mengirim data ke konektor Kinesis Firehose.

Parameter yang digunakan untuk mengakses sumber daya grup

Greengrass konektor menggunakan sumber daya grup untuk mengakses sistem file, port, periferal, dan sumber daya lokal lainnya pada perangkat core. Jika konektor memerlukan akses ke sumber daya kelompok, maka konektor menyediakan parameter konfigurasi terkait.

Sumber daya grup meliputi:

  • Sumber daya lokal. Direktori, file, port, pin, dan periferal yang hadir pada perangkat Greengrass core.

  • Sumber daya machine learning. Model machine learning yang dilatih di cloud dan diterapkan ke core untuk inferensi lokal.

  • Sumber daya rahasia. Lokal. salinan enkripsi password, kunci, token, atau teks arbitrer dari AWS Secrets Manager. Konektor dapat dengan aman mengakses rahasia lokal ini dan menggunakannya untuk mengotentikasi ke layanan atau infrastruktur lokal.

Sebagai contoh, parameter untuk Device Defender memungkinkan akses ke metrik sistem di direktori /proc host, dan parameter untuk Notifikasi Twilio memungkinkan akses ke token otentikasi Twilio yang disimpan secara lokal.

Memperbarui parameter konektor

Parameter dikonfigurasi saat konektor ditambahkan ke grup Greengrass. Anda dapat mengubah nilai parameter setelah konektor ditambahkan.

  • Di konsol: Dari halaman konfigurasi grup, bukaKonektor, dan dari menu kontekstual konektor, pilihDiedit.

    catatan

    Jika konektor menggunakan sumber daya rahasia yang kemudian diubah untuk referensi rahasia yang berbeda, Anda harus mengedit parameter konektor dan mengonfirmasi perubahan.

  • Di API: Buat versi lain dari konektor yang mendefinisikan konfigurasi baru.

    API AWS IoT Greengrass menggunakan versi untuk mengelola grup. Versi tidak dapat diubah, sehingga untuk menambah atau mengubah komponen grup—misalnya, perangkat klien grup, dan sumber daya—Anda harus membuat versi komponen baru atau yang diperbarui. Kemudian, Anda buat dan terapkan versi grup yang berisi versi target masing-masing komponen.

Setelah Anda membuat perubahan konfigurasi konektor, Anda harus menerapkan grup untuk memperbanyak perubahan ke core.

Input dan output

Banyak konektor Greengrass dapat berkomunikasi dengan entitas lain dengan mengirim dan menerima pesan MQTT. Komunikasi MQTT dikendalikan oleh langganan yang memungkinkan konektor untuk bertukar data dengan fungsi Lambda, perangkat klien, dan konektor lainnya dalam grup Greengrass, atau denganAWS IoTdan layanan bayangan lokal. Untuk mengizinkan komunikasi ini, Anda harus membuat langganan dalam grup yang menjadi milik konektornya. Untuk informasi selengkapnya, lihat Langganan yang dikelola di dalam alur kerja pesan MQTT.

Konektor dapat penerbit pesan, pelanggan pesan, atau keduanya. Setiap konektor mendefinisikan topik MQTT yang menerbitkan atau berlangganan. Topik standar ini harus digunakan dalam langganan di mana konektor adalah sumber pesan atau target pesan. Untuk tutorial yang menyertakan langkah-langkah untuk mengonfigurasi langganan untuk konektor, lihat Memulai dengan konektor Greengrass (konsol) dan Memulai dengan konektor Greengrass (CLI).

catatan

Banyak konektor juga memiliki mode komunikasi built-in untuk berinteraksi dengan layanan cloud atau lokal. Ini bervariasi oleh konektor dan mungkin mengharuskan Anda mengonfigurasi parameter atau menambahkan izin untuk peran grup. Untuk informasi tentang persyaratan konektor, lihat AWS-disediakan konektor Greengrass.

Topik input

Kebanyakan konektor menerima data input mengenai topik MQTT. Beberapa konektor berlangganan beberapa topik untuk input data. Sebagai contoh, konektor Serial Stream mendukung dua topik:

  • serial/+/read/#

  • serial/+/write/#

Untuk konektor ini, permintaan baca dan tulis dikirim ke topik yang sesuai. Ketika Anda membuat langganan, pastikan untuk menggunakan topik yang sesuai dengan implementasi Anda.

Karakter + dan # di contoh sebelumnya adalah wildcard. Wildcard ini memungkinkan pelanggan untuk menerima pesan pada beberapa topik dan penerbit untuk menyesuaikan topik yang mereka terbitkan.

  • Wildcard + dapat muncul di mana saja dalam hierarki topik. Hal ini dapat diganti dengan satu item hirarki.

    Sebagai contoh, untuk topik sensor/+/input, pesan dapat diterbitkan ke topik sensor/id-123/input tetapi tidak untuk sensor/group-a/id-123/input.

  • Wildcard # dapat muncul hanya pada akhir hierarki topik. Hal ini dapat diganti dengan nol atau lebih item hirarki.

    Sebagai contoh, untuk topik sensor/#, pesan dapat diterbitkan ke sensor/, sensor/id-123, dan sensor/group-a/id-123, tapi tidak untuk sensor.

Karakter wildcard hanya berlaku saat berlangganan topik. Pesan tidak dapat diterbitkan ke topik yang berisi wildcard. Periksa dokumentasi untuk konektor untuk informasi lebih lanjut tentang persyaratan topik input atau output. Untuk informasi selengkapnya, lihat AWS-disediakan konektor Greengrass.

Dukungan kontainerisasi

Secara default, sebagian besar konektor berjalan pada Greengrass core dalam lingkungan runtime terisolasi yang dikelola oleh AWS IoT Greengrass. Lingkungan runtime ini, disebut kontainer, menyediakan isolasi antara konektor dan sistem host, yang menawarkan lebih banyak keamanan untuk host dan konektor.

Namun, kontainerisasi Greengrass ini tidak didukung di beberapa lingkungan, seperti ketika Anda menjalankan AWS IoT Greengrass dalam kontainer Docker atau kernel Linux yang lebih tua tanpa cgroups. Dalam lingkungan ini, konektor harus berjalan dalam di mode Tanpa kontainer. Untuk menemukan konektor yang mendukung mode Tanpa kontainer ini, lihat AWS-disediakan konektor Greengrass. Beberapa konektor berjalan dalam mode ini secara native, dan beberapa konektor memungkinkan Anda mengatur mode isolasi.

Anda juga dapat mengatur mode isolasi ke Tanpa kontainer di lingkungan yang mendukung kontainerisasi Greengrass, tetapi kami sarankan menggunakan mode kontainer Greengrass bila memungkinkan.

catatan

Kontainerisasi default untuk grup Greengrass tidak berlaku untuk konektor.

Versi upgrade konektor

Penyedia konektor mungkin merilis konektor versi baru yang menambahkan fitur, memperbaiki masalah, atau meningkatkan kinerja. Untuk informasi tentang versi yang tersedia dan perubahan terkait, lihat dokumentasi untuk setiap konektor.

Di konsol AWS IoT tersebut, Anda dapat memeriksa versi baru untuk konektor dalam grup Greengrass Anda.

  1. DiAWS IoTpanel navigasi konsol, di bawahKelola, PerluasPerangkat Greengrass, lalu pilihGrup (V1).

  2. Di bawah grup Greengrass, pilih grup Anda.

  3. Pilih Konektor untuk menampilkan konektor dalam grup.

    Jika konektor memiliki versi baru, sebuah tombol Tersedia muncul di kolom Upgrade ini.

  4. Untuk upgrade versi konektor:

    1. Di halaman Konektor ini, pada kolom Upgrade ini, pilih Tersedia. Halaman Upgrade konektor membuka dan menampilkan pengaturan parameter saat ini, jika berlaku.

      Pilih versi konektor baru, tentukan parameter sesuai kebutuhan, lalu pilih Upgrade.

    2. Di halaman Langganan, tambahkan langganan baru di grup untuk mengganti yang menggunakan konektor sebagai sumber atau target. Kemudian, hapus langganan lama.

      Konektor referensi langganan berdasarkan versi, sehingga merekan menjadi tidak valid jika Anda mengubah versi konektor di grup.

    3. Dari menu Tindakan ini, pilih Deploy untuk menerapkan perubahan Anda ke core.

Untuk upgrade konektor dari AWS IoT Greengrass API, buat dan terapkan versi grup yang mencakup konektor di-upgrade dan langganan. Gunakan proses yang sama seperti ketika Anda menambahkan konektor ke grup. Untuk langkah-langkah mendetail yang menunjukkan bagaimana menggunakan AWS CLI untuk mengonfigurasi dan menerapkan contoh konektor Notifikasi Twilio, lihat Memulai dengan konektor Greengrass (CLI).

Pencatatan untuk konektor

Konektor Greengrass berisi fungsi Lambda yang menulis peristiwa dan kesalahan untuk Greengrass logs. Tergantung pada pengaturan grup Anda, log ditulis ke CloudWatch Log, sistem file lokal, atau keduanya. Log dari konektor termasuk ARN dari fungsi yang sesuai. Contoh ARN berikut adalah dari konektor Kinesis Firehose:

arn:aws:lambda:aws-region:account-id:function:KinesisFirehoseClient:1

Konfigurasi pencatatan default menulis log info-level ke file yang menggunakan struktur direktori berikut:

greengrass-root/ggc/var/log/user/region/aws/function-name.log

Untuk informasi selengkapnya tentang pencatatan Greengrass, lihat Pemantauan dengan AWS IoT Greengrass log.