Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Langkah 4: Kembangkan dan uji komponen di perangkat Anda
Komponen adalah modul perangkat lunak yang berjalan pada perangkat AWS IoT Greengrass inti. Komponen memungkinkan Anda untuk membuat dan mengelola aplikasi yang kompleks sebagai blok bangunan diskrit yang dapat Anda gunakan kembali dari satu perangkat inti Greengrass ke yang lain. Setiap komponen terdiri atas resep dan artifact.
-
Resep
Setiap komponen berisi file resep, yang mendefinisikan metadata nya. Resep ini juga menentukan parameter konfigurasi komponen, dependensi komponen, siklus hidup, dan kompatibilitas platform. Siklus hidup komponen menentukan perintah yang menginstal, menjalankan, dan menutup komponen. Untuk informasi selengkapnya, lihat AWS IoT Greengrass referensi resep komponen.
-
Artefak
Komponen dapat memiliki sejumlah artifact, yang merupakan komponen biner. Artifact dapat mencakup skrip, kode yang dikompilasi, sumber daya statis, dan file lain yang dikonsumsi komponen. Komponen juga dapat mengonsumsi artifact dari dependensi komponen.
Dengan AWS IoT Greengrass, Anda dapat menggunakan CLI Greengrass untuk mengembangkan dan menguji komponen secara lokal pada perangkat inti Greengrass tanpa interaksi dengan Cloud. AWS Saat menyelesaikan komponen lokal, Anda dapat menggunakan resep komponen dan artefak untuk membuat komponen tersebut di AWS IoT Greengrass layanan di AWS Cloud, lalu menerapkannya ke semua perangkat inti Greengrass Anda. Untuk informasi selengkapnya tentang komponen, lihatKembangkan AWS IoT Greengrass komponen.
Di bagian ini, Anda mempelajari cara membuat dan menjalankan komponen Hello World dasar secara lokal di perangkat inti Anda.
Untuk mengembangkan komponen Hello World di perangkat Anda
-
Buat folder untuk komponen Anda dengan subfolder untuk resep dan artefak. Jalankan perintah berikut pada perangkat inti Greengrass Anda untuk membuat folder ini dan mengubah ke folder komponen. Ganti
~/greengrassv2
atau%USERPROFILE%\ greengrassv2
dengan path ke folder yang akan digunakan untuk pengembangan lokal. -
Gunakan editor teks untuk membuat file resep yang mendefinisikan metadata, parameter, dependensi, siklus hidup, dan kemampuan platform komponen Anda. Sertakan versi komponen dalam nama file resep agar Anda dapat mengidentifikasi resep yang mencerminkan versi komponen. Anda dapat memilih format YAML atau JSON untuk resep Anda.
Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.
catatan
AWS IoT Greengrass menggunakan versi semantik untuk komponen. Versi semantik mengikuti sistem nomor mayor.minor.patch. Sebagai contoh, versi
1.0.0
merupakan rilis mayor pertama untuk sebuah komponen. Untuk informasi lebih lanjut, lihat spesifikasi versi semantik. -
Tempel resep berikut ke file.
Bagian
ComponentConfiguration
resep ini menentukan parameter,Message
, yang default -nya adalahworld
. BagianManifests
menentukan manifes, yang merupakan serangkaian instruksi siklus hidup dan artifact untuk platform. Anda dapat menentukan beberapa manifes untuk menentukan petunjuk pemasangan yang berbeda untuk berbagai platform, misalnya. Dalam manifes, bagianLifecycle
memerintahkan perangkat inti Greengrass untuk menjalankan skrip Hello World dengan nilai parameterMessage
sebagai argumen. -
Jalankan perintah berikut untuk membuat folder untuk komponen artifact.
penting
Anda harus menggunakan format berikut untuk jalur folder artifact. Sertakan nama dan versi komponen yang Anda tentukan dalam resep.
artifacts/
componentName
/componentVersion
/ -
Gunakan editor teks untuk membuat file artefak skrip Python untuk komponen Hello World Anda.
Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.
nano artifacts/com.example.HelloWorld/1.0.0/hello_world.py
Copy dan paste script Python berikut ke dalam file.
import sys message = "Hello, %s!" % sys.argv[1] # Print the message to stdout, which Greengrass saves in a log file. print(message)
-
Gunakan AWS IoT Greengrass CLI lokal untuk mengelola komponen pada perangkat inti Greengrass Anda.
Jalankan perintah berikut untuk menyebarkan komponen ke AWS IoT Greengrass inti. Ganti
atau/greengrass/v2
C:\greengrass\v2
dengan folder AWS IoT Greengrass V2 root Anda, dan ganti~/greengrassv2
dengan folder pengembangan komponen Anda.atau% USERPROFILE%\
greengrassv2Perintah ini menambahkan komponen yang menggunakan resep di
recipes
dan skrip Python diartifacts
. Opsi--merge
menambahkan atau memperbarui komponen dan versi yang Anda tentukan. -
Perangkat lunak AWS IoT Greengrass Core menyimpan stdout dari proses komponen ke file log di folder.
logs
Jalankan perintah berikut untuk memverifikasi bahwa komponen Hello World berjalan dan mencetak pesan.Anda akan melihat pesan yang mirip dengan contoh berikut ini.
Hello, world!
catatan
Jika file tidak ada, penyebaran lokal mungkin belum lengkap. Jika file tidak ada dalam waktu 15 detik, deployment mungkin gagal. Hal ini dapat terjadi jika resep Anda tidak valid, misalnya. Jalankan perintah berikut untuk melihat file log AWS IoT Greengrass inti. File ini mencakup log dari layanan deployment perangkat inti Greengrass.
-
Ubah komponen lokal untuk mengiterasi dan menguji kode Anda. Buka
hello_world.py
di editor teks, dan tambahkan kode berikut pada baris 4 untuk mengedit pesan yang dicatat oleh AWS IoT Greengrass inti.message += " Greetings from your first Greengrass component."
Skrip
hello_world.py
sekarang akan berisi konten berikut.import sys message = "Hello, %s!" % sys.argv[1] message += " Greetings from your first Greengrass component." # Print the message to stdout, which Greengrass saves in a log file. print(message)
-
Jalankan perintah berikut untuk memperbarui komponen dengan perubahan Anda.
Perintah ini memperbarui
com.example.HelloWorld
komponen dengan artefak Hello World terbaru. -
Jalankan perintah berikut untuk me-restart komponen. Ketika Anda me-restart komponen, perangkat inti menggunakan perubahan terakhir.
-
Periksa log lagi untuk memverifikasi bahwa komponen Hello World mencetak pesan baru.
Anda akan melihat pesan yang mirip dengan contoh berikut ini.
Hello, world! Greetings from your first Greengrass component.
-
Anda dapat memperbarui parameter konfigurasi komponen untuk menguji konfigurasi yang berbeda. Ketika Anda men-deploy komponen, Anda dapat menentukan pembaruan konfigurasi, yang menentukan cara mengubah konfigurasi komponen pada perangkat inti. Anda dapat menentukan nilai konfigurasi yang akan di-reset ke nilai default dan nilai-nilai konfigurasi baru yang akan digabungkan ke perangkat inti. Untuk informasi selengkapnya, lihat Perbarui konfigurasi komponen.
Lakukan hal-hal berikut:
-
Gunakan editor teks untuk membuat file yang dipanggil
hello-world-config-update.json
untuk memuat pembaruan konfigurasiMisalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.
nano hello-world-config-update.json
-
Salin dan tempel objek JSON berikut ke dalam file. Objek JSON ini menentukan pembaruan konfigurasi yang menggabungkan nilai
friend
ke parameterMessage
untuk memperbarui nilainya. Pembaruan konfigurasi ini tidak menentukan nilai apa pun yang akan di-reset. Anda tidak perlu mengatur ulang parameterMessage
karena pembaruan merge menggantikan nilai yang ada.{ "com.example.HelloWorld": { "MERGE": { "Message": "friend" } } }
-
Jalankan perintah berikut untuk men-deploy pembaruan konfigurasi pada komponen Hello World.
-
Periksa log lagi untuk memverifikasi bahwa komponen Hello World mengeluarkan pesan baru.
Anda akan melihat pesan yang mirip dengan contoh berikut ini.
Hello, friend! Greetings from your first Greengrass component.
-
-
Setelah Anda selesai menguji komponen, lepaskan komponen tersebut dari perangkat inti Anda. Jalankan perintah berikut.
penting
Langkah ini diperlukan bagi Anda untuk men-deploy komponen kembali ke perangkat inti setelah Anda mengunggahnya ke AWS IoT Greengrass. Jika tidak, deployment akan gagal dengan kesalahan kompatibilitas versi karena deployment lokal menentukan versi yang berbeda dari komponen.
Jalankan perintah berikut dan verifikasi bahwa perintah
com.example.HelloWorld
tidak muncul dalam daftar komponen di perangkat Anda.
Komponen Hello World Anda selesai, dan sekarang Anda dapat mengunggahnya ke layanan AWS IoT Greengrass cloud. Kemudian, Anda dapat menerapkan komponen ke perangkat inti Greengrass.