Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS IoT Greengrass referensi resep komponen
Komponen resep adalah file yang mendefinisikan komponen detail, dependensi, artefak, dan siklus hidup. Siklus aktif komponen menentukan perintah yang akan dijalankan untuk menginstal, menjalankan, dan menutup komponen, misalnya. AWS IoT Greengrass Inti menggunakan siklus hidup yang Anda tentukan dalam resep untuk menginstal dan menjalankan komponen. AWS IoT Greengrass Layanan menggunakan resep untuk mengidentifikasi dependensi dan artefak untuk diterapkan ke perangkat inti Anda saat Anda menerapkan komponen.
Dalam resep itu, Anda dapat menentukan dependensi dan siklus hidup yang unik untuk setiap platform yang didukung komponen. Anda dapat menggunakan kemampuan ini untuk men-deploy komponen ke perangkat dengan beberapa platform yang memiliki persyaratan yang berbeda. Anda juga dapat menggunakan ini untuk AWS IoT Greengrass mencegah menginstal komponen pada perangkat yang tidak mendukungnya.
Setiap resep berisi daftar manifes. Setiap manifes menentukan seperangkat persyaratan platform dan siklus hidup dan artefak yang akan digunakan untuk perangkat inti yang platformnya memenuhi persyaratan tersebut. Perangkat inti menggunakan manifes pertama dengan persyaratan platform yang dipenuhi oleh perangkat. Tentukan manifes tanpa persyaratan platform apa pun agar cocok dengan setiap perangkat inti.
Anda juga dapat menentukan siklus hidup global yang tidak ada dalam manifes. Dalam siklus hidup global, Anda dapat menggunakan tombol pilihan yang mengidentifikasi sub-bagian dari siklus hidup. Kemudian, Anda dapat menentukan kunci pilihan ini dalam manifes untuk menggunakan bagian dari siklus hidup global selain siklus hidup manifes. Perangkat inti hanya menggunakan tombol pemilihan manifes jika manifes tidak menentukan siklus hidup. Anda dapat menggunakan pilihan all
dalam manifes untuk mencocokkan bagian siklus hidup global tanpa kunci seleksi.
Setelah perangkat lunak AWS IoT Greengrass Core memilih manifes yang cocok dengan perangkat inti, perangkat tersebut melakukan hal berikut untuk mengidentifikasi langkah-langkah siklus hidup yang akan digunakan:
-
Jika manifes yang dipilih menentukan siklus hidup, perangkat inti akan menggunakan siklus hidup tersebut.
-
Jika manifes yang dipilih tidak menentukan siklus hidup, perangkat inti akan menggunakan siklus hidup global. Perangkat inti melakukan hal berikut untuk mengidentifikasi bagian siklus hidup global mana yang akan digunakan:
-
Jika manifes mendefinisikan kunci pilihan, perangkat inti akan menggunakan bagian siklus hidup global yang berisi kunci pilihan manifes.
-
Jika manifes tidak mendefinisikan kunci pilihan, perangkat inti akan menggunakan bagian siklus hidup global yang tidak memiliki kunci pilihan. Perilaku ini setara dengan manifes yang menentukan pilihan
all
.
-
penting
Sebuah perangkat inti harus cocok setidaknya dengan satu persyaratan platform manifes untuk menginstal komponen. Jika tidak ada manifes yang cocok dengan perangkat AWS IoT Greengrass inti, maka perangkat lunak Core tidak menginstal komponen dan penerapan gagal.
Anda dapat menentukan resep dalam JSON
Validasi resep
Greengrass memvalidasi resep YAML atau komponen saat JSON membuat versi komponen. Validasi resep ini memeriksa resep Anda JSON atau YAML komponen untuk kesalahan umum untuk mencegah potensi masalah penerapan. Validasi memeriksa resep untuk kesalahan umum (misalnya, koma, tanda kurung gigi, dan bidang yang hilang) dan untuk memastikan resepnya terbentuk dengan baik.
Jika Anda menerima pesan kesalahan validasi resep, periksa resep Anda apakah ada koma, tanda kurung gigi, atau bidang yang hilang. Verifikasi bahwa Anda tidak melewatkan bidang apa pun dengan melihat format resep.
Format resep
Bila Anda menentukan resep untuk komponen, Anda menentukan informasi berikut dalam dokumen resep. Struktur yang sama berlaku untuk resep dalam YAML dan JSON format.
RecipeFormatVersion
-
Versi templat untuk resep itu. Pilih opsi berikut:
-
2020-01-25
-
ComponentName
-
Nama komponen yang ditentukan oleh resep ini. Nama komponen harus unik di Anda Akun AWS di setiap Wilayah.
Kiat
-
Gunakan format nama domain terbalik untuk menghindari tabrakan nama dalam perusahaan Anda. Misalnya, jika perusahaan Anda memiliki
example.com
dan Anda mengerjakan proyek energi matahari, Anda dapat menamai komponen Hello World Andacom.example.solar.HelloWorld
. Hal ini membantu menghindari tabrakan nama komponen dalam perusahaan Anda. -
Hindari awalan
aws.greengrass
dalam nama komponen Anda. AWS IoT Greengrass menggunakan awalan ini untuk Komponen publik yang disediakannya. Jika Anda memilih nama yang sama sebagai komponen publik, komponen Anda menggantikan komponen tersebut. Kemudian, AWS IoT Greengrass sediakan komponen Anda alih-alih komponen publik saat menyebarkan komponen dengan ketergantungan pada komponen publik tersebut. Fitur ini memungkinkan Anda untuk menimpa perilaku komponen publik, tetapi juga dapat merusak komponen lain jika Anda tidak berniat untuk menimpa komponen publik.
-
ComponentVersion
-
Versi komponen. Nilai maksimum untuk nilai mayor, minor, dan patch adalah 999999.
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. ComponentDescription
-
(Opsional) Deskripsi komponen.
ComponentPublisher
-
Penerbit atau penulis komponen.
ComponentConfiguration
-
(Opsional) Sebuah objek yang menentukan konfigurasi atau parameter untuk komponen. Anda menentukan konfigurasi default, dan kemudian ketika Anda men-deploy komponen, Anda dapat menentukan objek konfigurasi yang akan disediakan ke komponen. Konfigurasi komponen mendukung parameter bersusun dan struktur. Objek ini berisi informasi berikut:
DefaultConfiguration
-
Objek yang menentukan konfigurasi default untuk komponen. Anda menentukan struktur objek ini.
catatan
AWS IoT Greengrass digunakan JSON untuk nilai konfigurasi. JSONmenentukan jenis angka tetapi tidak membedakan antara bilangan bulat dan float. Akibatnya, nilai konfigurasi mungkin berubah menjadi float di AWS IoT Greengrass. Untuk memastikan bahwa komponen Anda menggunakan jenis data yang benar, kami sarankan Anda menentukan nilai konfigurasi numerik sebagai string. Kemudian, buat komponen Anda mengurainya sebagai bilangan bulat atau float. Hal ini memastikan bahwa nilai konfigurasi Anda memiliki tipe yang sama dalam konfigurasi dan pada perangkat inti Anda.
ComponentDependencies
-
(Opsional) Sebuah kamus objek yang masing-masing mendefinisikan dependensi komponen untuk komponen tersebut. Kunci untuk setiap objek mengidentifikasi nama ketergantungan komponen. AWS IoT Greengrass menginstal dependensi komponen saat komponen diinstal. AWS IoT Greengrass menunggu dependensi dimulai sebelum memulai komponen. Setiap objek berisi informasi berikut.
VersionRequirement
-
Kendala versi semantik npm-style yang menentukan versi komponen yang kompatibel untuk dependensi ini. Anda dapat menentukan versi atau rentang versi. Untuk informasi lebih lanjut, lihat kalkulator versi semantik npm
. DependencyType
-
(Opsional) Jenis dependensi ini. Pilih salah satu dari opsi berikut:
-
SOFT
— Komponen tidak me-restart jika dependensi mengubah keadaan. -
HARD
— Komponen me-restart jika dependensi mengubah keadaan.
Default ke
HARD
. -
ComponentType
-
(Opsional) Jenis komponen.
catatan
Kami tidak menyarankan Anda menentukan jenis komponen dalam resep. AWS IoT Greengrass menetapkan tipe untuk Anda saat Anda membuat komponen.
Jenis ini dapat berupa salah satu dari jenis-jenis berikut:
-
aws.greengrass.generic
— Komponen menjalankan perintah atau menyediakan artefak. -
aws.greengrass.lambda
– Komponen menjalankan fungsi Lambda menggunakan Komponen peluncur Lambda.ComponentSource
Parameter menentukan fungsi Lambda yang dijalankan komponen ini. ARNKami tidak menyarankan Anda menggunakan opsi ini, karena opsi ini diatur oleh AWS IoT Greengrass saat Anda membuat komponen dari fungsi Lambda. Untuk informasi selengkapnya, lihat Jalankan fungsi AWS Lambda.
-
aws.greengrass.plugin
— Komponen berjalan di Java Virtual Machine (JVM) yang sama dengan inti Greengrass. Jika Anda men-deploy atau me-restart komponen plugin, inti Greengrass akan me-restart.Komponen plugin menggunakan file log yang sama seperti inti Greengrass. Untuk informasi selengkapnya, lihat Memantau AWS IoT Greengrass log.
Kami tidak menyarankan Anda menggunakan opsi ini dalam resep komponen, karena ini ditujukan untuk komponen yang AWS disediakan yang ditulis di Java yang secara langsung berinteraksi dengan inti Greengrass. Untuk informasi lebih lanjut tentang komponen publik mana yang merupakan plugin, lihat Komponen yang disediakan oleh AWS.
-
aws.greengrass.nucleus
— Komponen nukleus. Untuk informasi selengkapnya, lihat Inti Greengrass.Kami tidak menyarankan Anda menggunakan opsi ini dalam resep komponen. Opsi ini ditujukan untuk komponen inti Greengrass, yang menyediakan fungsionalitas minimum perangkat lunak inti AWS IoT Greengrass .
Default-nya adalah
aws.greengrass.generic
saat Anda membuat komponen dari resep, atauaws.greengrass.lambda
saat Anda membuat komponen dari fungsi Lambda.Untuk informasi selengkapnya, lihat Jenis komponen.
-
ComponentSource
-
(Opsional) Fungsi Lambda yang dijalankan komponen. ARN
Kami tidak menyarankan Anda menentukan sumber komponen dalam resep. AWS IoT Greengrass menetapkan parameter ini untuk Anda saat Anda membuat komponen dari fungsi Lambda. Untuk informasi selengkapnya, lihat Jalankan fungsi AWS Lambda.
-
Manifests
-
Daftar objek yang masing-masing menentukan siklus hidup, parameter, dan persyaratan komponen untuk platform. Jika perangkat inti cocok dengan persyaratan platform beberapa manifes, AWS IoT Greengrass gunakan manifes pertama yang cocok dengan perangkat inti. Untuk memastikan bahwa perangkat inti menggunakan manifes yang benar, tentukan manifes dengan persyaratan platform ketat terlebih dahulu. Manifes yang berlaku untuk semua platform harus menjadi manifes terakhir dalam daftar.
penting
Sebuah perangkat inti harus cocok setidaknya dengan satu persyaratan platform manifes untuk menginstal komponen. Jika tidak ada manifes yang cocok dengan perangkat AWS IoT Greengrass inti, maka perangkat lunak Core tidak menginstal komponen dan penerapan gagal.
Setiap objek berisi informasi berikut:
Name
-
(Opsional) Nama yang bersahabat untuk platform yang ditentukan leh manifes ini.
Jika Anda menghilangkan parameter ini, AWS IoT Greengrass buat nama dari platform
os
danarchitecture
. -
Platform
-
(Opsional) Sebuah objek yang menentukan platform yang padanya manifes ini berlaku. Hilangkan parameter ini untuk menentukan manifes yang berlaku untuk semua platform.
Objek ini menentukan pasangan kunci-nilai tentang platform di mana perangkat inti berjalan. Saat Anda menerapkan komponen ini, perangkat lunak AWS IoT Greengrass Core membandingkan pasangan nilai kunci ini dengan atribut platform pada perangkat inti. Perangkat lunak AWS IoT Greengrass Core selalu mendefinisikan
os
danarchitecture
, dan mungkin mendefinisikan atribut tambahan. Anda dapat menentukan atribut platform kustom untuk perangkat inti ketika Anda men-deploy komponen inti Greengrass. Untuk informasi lebih lanjut, lihat bagian platform menimpa parameter dari komponen nukleus Greengrass.Untuk setiap pasangan kunci-nilai, Anda dapat menentukan salah satu nilai berikut:
-
Nilai yang tepat, seperti
linux
atauwindows
. Nilai yang tepat harus dimulai dengan huruf atau angka. -
*
, yang cocok dengan nilai apa pun. Hal ini juga cocok ketika nilai tidak ada. -
Sebuah ekspresi reguler gaya Java, seperti
/windows|linux/
. Ekspresi reguler harus dimulai dan diakhiri dengan karakter garis miring (/
). Misalnya, ekspresi reguler/.+/
cocok dengan nilai non-kosong.
Objek ini berisi informasi berikut:
os
-
(Opsional) Nama sistem operasi untuk platform yang didukung oleh manifes ini. Platform umum mencakup nilai-nilai berikut:
-
linux
-
windows
-
darwin
(macOS)
-
architecture
-
(Opsional) Arsitektur prosesor untuk platform yang didukung oleh manifes ini. Arsitektur umum mencakup nilai-nilai berikut:
-
amd64
-
arm
-
aarch64
-
x86
-
architecture.detail
-
(Opsional) Detail arsitektur prosesor untuk platform yang didukung manifes ini. Rincian arsitektur umum mencakup nilai-nilai berikut:
-
arm61
-
arm71
-
arm81
-
key
-
(Opsional) Atribut platform yang Anda tetapkan untuk manifes ini. Ganti
key
dengan nama atribut platform. Perangkat lunak AWS IoT Greengrass Core mencocokkan atribut platform ini dengan pasangan kunci-nilai yang Anda tentukan dalam konfigurasi komponen inti Greengrass. Untuk informasi lebih lanjut, lihat bagian platform menimpa parameter dari komponen nukleus Greengrass.Tip
Gunakan format nama domain terbalik untuk menghindari tabrakan nama dalam perusahaan Anda. Misalnya, jika perusahaan Anda memiliki
example.com
dan Anda mengerjakan proyek radio, Anda dapat memberi nama atribut platform kustomcom.example.radio.RadioModule
. Hal ini membantu menghindari tabrakan nama atribut platform dalam perusahaan Anda.Misalnya, Anda dapat menentukan atribut platform,
com.example.radio.RadioModule
, untuk menentukan manifes yang berbeda berdasarkan modul radio yang tersedia pada perangkat inti. Setiap manifes dapat mencakup artefak yang berbeda yang berlaku pada konfigurasi perangkat keras yang berbeda, agar Anda men-deploy serangkaian perangkat lunak minimal ke perangkat inti.
-
-
Lifecycle
-
Objek atau string yang mendefinisikan cara menginstal dan menjalankan komponen pada platform yang didefinisikan oleh manifes ini. Anda juga dapat menentukan siklus hidup global yang berlaku untuk semua platform. Perangkat inti hanya menggunakan siklus hidup global jika manifes yang akan digunakan tidak menentukan siklus hidup.
catatan
Anda mendefinisikan siklus hidup ini dalam manifes. Langkah-langkah siklus hidup yang Anda tentukan di sini hanya berlaku untuk platform yang ditentukan oleh manifes ini. Anda juga dapat menentukan siklus hidup global yang berlaku untuk semua platform.
Objek atau string ini berisi informasi berikut:
-
Setenv
-
(Opsional) Kamus variabel lingkungan untuk menyediakan semua skrip siklus hidup. Anda dapat mengganti variabel lingkungan ini dengan
Setenv
dalam setiap skrip siklus hidup. -
install
-
(Opsional) Objek atau string yang mendefinisikan skrip untuk dijalankan ketika komponen diinstal. Perangkat lunak AWS IoT Greengrass Core juga menjalankan langkah siklus hidup ini setiap kali perangkat lunak diluncurkan.
Jika skrip
install
keluar dengan kode sukses, komponen tersebut akan memasuki keadaanINSTALLED
.Objek atau string ini berisi informasi berikut:
Script
-
Skrip yang akan dijalankan.
RequiresPrivilege
-
(Opsional) Anda dapat menjalankan skrip dengan hak istimewa root. Jika Anda menyetel opsi ini
true
, maka perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai root, bukan sebagai pengguna sistem yang Anda konfigurasikan untuk menjalankan komponen ini. Default kefalse
. Skipif
-
(Opsional) Periksa untuk menentukan apakah akan menjalankan skrip atau tidak. Anda dapat menentukan untuk memeriksa apakah executable berada di jalur atau apakah file ada. Jika output benar, maka Perangkat lunak inti AWS IoT Greengrass melewati langkah itu. Pilih salah satu cek berikut:
-
onpath
— Periksa apakah runnable berada di jalur sistem. Misalnya, gunakanrunnable
onpath python3
untuk melewati langkah siklus hidup ini jika Python 3 tersedia. -
exists
— Periksa apakah file ada. Misalnya, gunakanfile
exists /tmp/my-configuration.db
untuk melewati langkah siklus hidup ini jika/tmp/my-configuration.db
ada.
-
Timeout
-
(Opsional) Jumlah maksimum waktu dalam detik yang dapat dijalankan skrip sebelum perangkat lunak inti AWS IoT Greengrass mengakhiri proses.
Default: 120 detik.
Setenv
-
(Opsional) Kamus variabel lingkungan untuk menyediakan skrip. Variabel lingkungan ini menimpa variabel yang Anda berikan di
Lifecycle.Setenv
.
-
run
-
(Opsional) Objek atau string yang mendefinisikan skrip untuk dijalankan ketika komponen dimulai.
Komponen memasuki keadaan
RUNNING
saat langkah siklus hidup ini berjalan. Jika skriprun
keluar dengan kode sukses, komponen tersebut akan memasuki keadaanSTOPPING
. Jikashutdown
skrip ditentukan, itu berjalan; jika tidak komponen memasukiFINISHED
status.Komponen yang bergantung pada komponen ini dimulai saat langkah siklus hidup ini berjalan. Untuk menjalankan proses latar belakang, seperti layanan yang digunakan komponen dependen, gunakan langkah siklus hidup
startup
sebagai gantinya.Saat Anda menerapkan komponen dengan
run
siklus hidup, perangkat inti dapat melaporkan penerapan selengkap segera setelah skrip siklus hidup ini berjalan. Akibatnya, penerapan dapat selesai dan berhasil bahkan jika skriprun
siklus hidup gagal segera setelah dijalankan. Jika Anda ingin status penerapan bergantung pada hasil skrip awal komponen, gunakan langkahstartup
siklus hidup sebagai gantinya.catatan
Anda dapat menentukan hanya satu
startup
ataurun
siklus hidup.Objek atau string ini berisi informasi berikut:
Script
-
Skrip yang akan dijalankan.
RequiresPrivilege
-
(Opsional) Anda dapat menjalankan skrip dengan hak istimewa root. Jika Anda menyetel opsi ini
true
, maka perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai root, bukan sebagai pengguna sistem yang Anda konfigurasikan untuk menjalankan komponen ini. Default kefalse
. Skipif
-
(Opsional) Periksa untuk menentukan apakah akan menjalankan skrip atau tidak. Anda dapat menentukan untuk memeriksa apakah executable berada di jalur atau apakah file ada. Jika output benar, maka Perangkat lunak inti AWS IoT Greengrass melewati langkah itu. Pilih salah satu cek berikut:
-
onpath
— Periksa apakah runnable berada di jalur sistem. Misalnya, gunakanrunnable
onpath python3
untuk melewati langkah siklus hidup ini jika Python 3 tersedia. -
exists
— Periksa apakah file ada. Misalnya, gunakanfile
exists /tmp/my-configuration.db
untuk melewati langkah siklus hidup ini jika/tmp/my-configuration.db
ada.
-
Timeout
-
(Opsional) Jumlah waktu maksimum dalam hitungan detik skrip dapat dijalankan sebelum perangkat lunak AWS IoT Greengrass Inti menghentikan proses.
Langkah siklus hidup ini tidak berbatas waktu secara default. Jika Anda menghilangkan batas waktu ini, skrip
run
akan berjalan sampai skrip tersebut keluar. Setenv
-
(Opsional) Kamus variabel lingkungan untuk menyediakan skrip. Variabel lingkungan ini menimpa variabel yang Anda berikan di
Lifecycle.Setenv
.
-
startup
-
(Opsional) Objek atau string yang mendefinisikan proses latar belakang untuk dijalankan ketika komponen dimulai.
Gunakan
startup
untuk menjalankan perintah yang harus keluar dengan sukses atau memperbarui status komponenRUNNING
sebelum komponen dependen dapat dimulai. Gunakan UpdateStateIPCoperasi untuk mengatur status komponen keRUNNING
atauERRORED
ketika komponen memulai skrip yang tidak keluar. Misalnya, Anda mungkin menentukanstartup
langkah yang memulai SQL proses Saya dengan/etc/init.d/mysqld start
.Komponen memasuki keadaan
STARTING
saat langkah siklus hidup ini berjalan. Jika skripstartup
keluar dengan kode sukses, komponen tersebut akan memasuki keadaanRUNNING
. Kemudian, komponen dependen bisa dimulai.Saat Anda menerapkan komponen dengan
startup
siklus hidup, perangkat inti dapat melaporkan penerapan sebagai selesai setelah skrip siklus hidup ini keluar atau melaporkan statusnya. Dengan kata lain, status penerapan adalahIN_PROGRESS
sampai semua skrip startup komponen keluar atau melaporkan status.catatan
Anda dapat menentukan hanya satu
startup
ataurun
siklus hidup.Objek atau string ini berisi informasi berikut:
Script
-
Skrip yang akan dijalankan.
RequiresPrivilege
-
(Opsional) Anda dapat menjalankan skrip dengan hak istimewa root. Jika Anda menyetel opsi ini
true
, maka perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai root, bukan sebagai pengguna sistem yang Anda konfigurasikan untuk menjalankan komponen ini. Default kefalse
. Skipif
-
(Opsional) Periksa untuk menentukan apakah akan menjalankan skrip atau tidak. Anda dapat menentukan untuk memeriksa apakah executable berada di jalur atau apakah file ada. Jika output benar, maka Perangkat lunak inti AWS IoT Greengrass melewati langkah itu. Pilih salah satu cek berikut:
-
onpath
— Periksa apakah runnable berada di jalur sistem. Misalnya, gunakanrunnable
onpath python3
untuk melewati langkah siklus hidup ini jika Python 3 tersedia. -
exists
— Periksa apakah file ada. Misalnya, gunakanfile
exists /tmp/my-configuration.db
untuk melewati langkah siklus hidup ini jika/tmp/my-configuration.db
ada.
-
Timeout
-
(Opsional) Jumlah maksimum waktu dalam detik yang dapat dijalankan skrip sebelum perangkat lunak inti AWS IoT Greengrass mengakhiri proses.
Default: 120 detik.
Setenv
-
(Opsional) Kamus variabel lingkungan untuk menyediakan skrip. Variabel lingkungan ini menimpa variabel yang Anda berikan di
Lifecycle.Setenv
.
-
shutdown
-
(Opsional) Objek atau string yang mendefinisikan skrip untuk dijalankan ketika komponen dimatikan. Gunakan siklus hidup shutdown untuk mengeksekusi kode yang ingin Anda jalankan saat komponen dalam status.
STOPPING
Siklus hidup shutdown dapat digunakan untuk menghentikan proses yang dimulai oleh skrip atau.startup
run
Jika Anda memulai proses latar belakang di
startup
, gunakan langkahshutdown
untuk menghentikan proses itu ketika komponen dimatikan. Misalnya, Anda mungkin menentukanshutdown
langkah yang menghentikan SQL proses Saya dengan/etc/init.d/mysqld stop
.shutdown
Skrip berjalan setelah komponen memasukiSTOPPING
status. Jika skrip berhasil diselesaikan, komponen memasukiFINISHED
status.Objek atau string ini berisi informasi berikut:
Script
-
Skrip yang akan dijalankan.
RequiresPrivilege
-
(Opsional) Anda dapat menjalankan skrip dengan hak istimewa root. Jika Anda menyetel opsi ini
true
, maka perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai root, bukan sebagai pengguna sistem yang Anda konfigurasikan untuk menjalankan komponen ini. Default kefalse
. Skipif
-
(Opsional) Periksa untuk menentukan apakah akan menjalankan skrip atau tidak. Anda dapat menentukan untuk memeriksa apakah executable berada di jalur atau apakah file ada. Jika output benar, maka Perangkat lunak inti AWS IoT Greengrass melewati langkah itu. Pilih salah satu cek berikut:
-
onpath
— Periksa apakah runnable berada di jalur sistem. Misalnya, gunakanrunnable
onpath python3
untuk melewati langkah siklus hidup ini jika Python 3 tersedia. -
exists
— Periksa apakah file ada. Misalnya, gunakanfile
exists /tmp/my-configuration.db
untuk melewati langkah siklus hidup ini jika/tmp/my-configuration.db
ada.
-
Timeout
-
(Opsional) Jumlah waktu maksimum dalam hitungan detik skrip dapat dijalankan sebelum perangkat lunak AWS IoT Greengrass Inti menghentikan proses.
Default: 15 detik.
Setenv
-
(Opsional) Kamus variabel lingkungan untuk menyediakan skrip. Variabel lingkungan ini menimpa variabel yang Anda berikan di
Lifecycle.Setenv
.
-
recover
-
(Opsional) Objek atau string yang mendefinisikan skrip untuk dijalankan ketika komponen mengalami kesalahan.
Langkah ini berjalan ketika komponen memasuki keadaan
ERRORED
. Jika komponen tersebut memasuki keadaanERRORED
tiga kali tanpa berhasil pulih, komponen tersebut akan berubah ke keadaanBROKEN
. Untuk memperbaiki komponenBROKEN
, Anda harus men-deploy komponen itu lagi.Objek atau string ini berisi informasi berikut:
Script
-
Skrip yang akan dijalankan.
RequiresPrivilege
-
(Opsional) Anda dapat menjalankan skrip dengan hak istimewa root. Jika Anda menyetel opsi ini
true
, maka perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai root, bukan sebagai pengguna sistem yang Anda konfigurasikan untuk menjalankan komponen ini. Default kefalse
. Skipif
-
(Opsional) Periksa untuk menentukan apakah akan menjalankan skrip atau tidak. Anda dapat menentukan untuk memeriksa apakah executable berada di jalur atau apakah file ada. Jika output benar, maka Perangkat lunak inti AWS IoT Greengrass melewati langkah itu. Pilih salah satu cek berikut:
-
onpath
— Periksa apakah runnable berada di jalur sistem. Misalnya, gunakanrunnable
onpath python3
untuk melewati langkah siklus hidup ini jika Python 3 tersedia. -
exists
— Periksa apakah file ada. Misalnya, gunakanfile
exists /tmp/my-configuration.db
untuk melewati langkah siklus hidup ini jika/tmp/my-configuration.db
ada.
-
Timeout
-
(Opsional) Jumlah waktu maksimum dalam hitungan detik skrip dapat dijalankan sebelum perangkat lunak AWS IoT Greengrass Inti menghentikan proses.
Default: 60 detik.
Setenv
-
(Opsional) Kamus variabel lingkungan untuk menyediakan skrip. Variabel lingkungan ini menimpa variabel yang Anda berikan di
Lifecycle.Setenv
.
-
bootstrap
-
(Opsional) Objek atau string yang mendefinisikan skrip yang memerlukan perangkat lunak AWS IoT Greengrass inti atau perangkat inti untuk memulai ulang. Hal ini memungkinkan Anda mengembangkan komponen yang melakukan restart setelah menginstal pembaruan sistem operasi atau pembaruan waktu aktif, misalnya.
catatan
Untuk menginstal pembaruan atau dependensi yang tidak memerlukan perangkat lunak atau perangkat AWS IoT Greengrass inti untuk memulai ulang, gunakan siklus hidup penginstalan.
Langkah siklus hidup ini berjalan sebelum langkah siklus hidup penginstalan dalam kasus berikut ketika perangkat lunak AWS IoT Greengrass Core menyebarkan komponen:
-
Komponen men-deploy ke perangkat inti untuk pertama kalinya.
-
Versi komponen berubah.
-
Bootstrap script berubah sebagai hasil dari pembaruan konfigurasi komponen.
Setelah perangkat lunak AWS IoT Greengrass Core menyelesaikan langkah bootstrap untuk semua komponen yang memiliki langkah bootstrap dalam penerapan, perangkat lunak dimulai ulang.
penting
Anda harus mengkonfigurasi perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem untuk memulai ulang perangkat lunak AWS IoT Greengrass Core atau perangkat inti. Jika Anda tidak mengonfigurasi perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem, perangkat lunak tidak akan dimulai ulang. Untuk informasi selengkapnya, lihat Konfigurasikan inti Greengrass sebagai layanan sistem.
Objek atau string ini berisi informasi berikut:
BootstrapOnRollback
-
catatan
Ketika fitur ini diaktifkan, hanya
BootstrapOnRollback
akan berjalan untuk komponen yang telah menyelesaikan atau mencoba menjalankan langkah-langkah siklus hidup bootstrap sebagai bagian dari penerapan target yang gagal. Fitur ini tersedia untuk Greengrass nucleus versi 2.12.0 dan yang lebih baru.(Opsional) Anda dapat menjalankan langkah-langkah siklus hidup bootstrap sebagai bagian dari penerapan rollback. Jika Anda menyetel opsi ini
true
, langkah-langkah siklus hidup bootstrap yang ditentukan dalam penerapan rollback akan berjalan. Ketika penerapan gagal, versi sebelumnya dari siklus hidup bootstrap komponen akan berjalan lagi selama penerapan rollback.Default ke
false
. Script
-
Skrip yang akan dijalankan. Kode keluar dari skrip ini mendefinisikan instruksi restart. Gunakan kode keluar berikut:
-
0
— Jangan me-restart perangkat lunak AWS IoT Greengrass Core atau perangkat inti. Perangkat lunak AWS IoT Greengrass Core masih restart setelah semua komponen bootstrap. -
100
— Permintaan untuk me-restart perangkat lunak AWS IoT Greengrass Core. -
101
— Permintaan untuk me-restart perangkat inti.
Kode keluar 100 sampai 199 dicadangkan untuk perilaku khusus. Kode keluar lainnya mewakili kesalahan skrip.
-
RequiresPrivilege
-
(Opsional) Anda dapat menjalankan skrip dengan hak istimewa root. Jika Anda menyetel opsi ini
true
, maka perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai root, bukan sebagai pengguna sistem yang Anda konfigurasikan untuk menjalankan komponen ini. Default kefalse
. Timeout
-
(Opsional) Jumlah maksimum waktu dalam detik yang dapat dijalankan skrip sebelum perangkat lunak inti AWS IoT Greengrass mengakhiri proses.
Default: 120 detik.
Setenv
-
(Opsional) Kamus variabel lingkungan untuk menyediakan skrip. Variabel lingkungan ini menimpa variabel yang Anda berikan di
Lifecycle.Setenv
.
-
-
-
Selections
-
(Opsional) Daftar kunci pilihan yang menentukan bagian Siklus hidup global yang akan dijalankan untuk manifes ini. Dalam siklus hidup global, Anda dapat menentukan langkah-langkah siklus hidup dengan kunci pilihan pada tingkat mana pun untuk memilih sub-bagian dari siklus hidup. Kemudian, perangkat inti menggunakan bagian-bagian yang cocok dengan kunci pilihan dalam manifes ini. Untuk informasi lebih lanjut, lihat bagian contoh siklus hidup global.
penting
Perangkat inti hanya menggunakan siklus hidup global hanya jika manifes ini tidak menentukan siklus hidup.
Anda dapat menentukan kunci pilihan
all
untuk menjalankan bagian dari siklus hidup global yang tidak memiliki kunci pilihan. -
Artifacts
-
(Opsional) Daftar objek yang masing-masing menentukan artefak biner untuk komponen pada platform yang ditentukan oleh manifes ini. Misalnya, Anda dapat menentukan kode atau citra sebagai artefak.
Saat komponen digunakan, perangkat lunak AWS IoT Greengrass Core mengunduh artefak ke folder pada perangkat inti. Anda juga dapat menentukan artefak sebagai file arsip yang diekstraki oleh perangkat lunak setelah mengunduhnya.
Anda dapat menggunakan variabel resep untuk mendapatkan jalur ke folder tempat artefak menginstal pada perangkat inti.
-
File normal — Gunakan variabel resep artifacts:path untuk mendapatkan jalur ke folder yang berisi artefak. Misalnya, tentukan
{artifacts:path}/my_script.py
dalam resep untuk mendapatkan jalur ke artefak yang memiliki. URIs3://amzn-s3-demo-bucket/path/to/my_script.py
-
Arsip yang diekstrak - Gunakan artefak: variabel decompressedPath resep untuk mendapatkan jalur ke folder yang berisi artefak arsip yang diekstraksi. Perangkat lunak AWS IoT Greengrass Core mengekstrak setiap arsip ke folder dengan nama yang sama dengan arsip. Misalnya, tentukan
{artifacts:decompressedPath}/my_archive/my_script.py
dalam resep untuk mendapatkan jalur kemy_script.py
artefak arsip yang memiliki. URIs3://amzn-s3-demo-bucket/path/to/my_archive.zip
catatan
Saat Anda mengembangkan komponen dengan artefak arsip pada perangkat inti lokal, Anda mungkin tidak memiliki artefak URI untuk itu. Untuk menguji komponen Anda dengan
Unarchive
opsi yang mengekstrak artefak, tentukan URI tempat nama file cocok dengan nama file artefak arsip Anda. Anda dapat menentukan URI tempat yang Anda harapkan untuk mengunggah artefak arsip, atau Anda dapat menentukan URI placeholder baru. Misalnya, untuk mengekstraksi artefakmy_archive.zip
selama deployment lokal, Anda dapat menentukans3://amzn-s3-demo-bucket/my_archive.zip
.Setiap objek berisi informasi berikut.
URI
-
Artefak dalam ember S3. URI Perangkat lunak AWS IoT Greengrass Core mengambil artefak dari ini URI ketika komponen diinstal, kecuali artefak sudah ada di perangkat. Setiap artefak harus memiliki nama file yang unik dalam setiap manifes.
Unarchive
-
(Opsional) Jenis arsip yang akan dibongkar. Pilih dari salah satu pilihan berikut:
-
NONE
– File ini bukanlah arsip yang akan dibongkar. Perangkat lunak inti AWS IoT Greengrass menginstal artefak ke folder pada perangkat inti. Anda dapat menggunakan variabel resep artifacts:path untuk mendapatkan jalur ke folder ini. -
ZIP
— File tersebut adalah ZIP arsip. Perangkat lunak AWS IoT Greengrass Core mengekstrak arsip ke folder dengan nama yang sama dengan arsip. Anda dapat menggunakan variabel artefak: decompressedPath resep untuk mendapatkan jalur ke folder yang berisi folder ini.
Default ke
NONE
. -
-
Permission
-
(Opsional) Sebuah objek yang mendefinisikan izin akses yang akan ditentukan untuk file artefak ini. Anda dapat mengatur izin membaca dan izin mengeksekusi.
catatan
Anda tidak dapat mengatur izin tulis, karena perangkat lunak AWS IoT Greengrass Core tidak mengizinkan komponen untuk mengedit file artefak di folder artefak. Untuk mengedit file artefak dalam komponen, salin ke lokasi lain atau publikasikan dan deploy file artefak yang baru.
Jika Anda mendefinisikan artefak sebagai arsip untuk dibongkar, maka perangkat lunak AWS IoT Greengrass Core menetapkan izin akses ini pada file yang dibongkar dari arsip. Perangkat lunak AWS IoT Greengrass Core menetapkan izin akses folder
ALL
untukRead
danExecute
. Hal ini memungkinkan komponen untuk melihat file yang dibongkar dalam folder. Untuk mengatur izin pada masing-masing file dari arsip, Anda dapat mengatur izin di skrip install lifecycle.Objek ini berisi informasi berikut:
Read
-
(Opsional) Izin baca yang akan ditetapkan untuk file artefak ini. Untuk mengizinkan komponen lain untuk mengakses artefak ini, seperti komponen yang bergantung pada komponen ini, tentukan
ALL
. Pilih dari salah satu pilihan berikut:-
NONE
– File ini tidak dapat dibaca. -
OWNER
– File ini dapat dibaca oleh pengguna sistem yang Anda konfigurasikan untuk menjalankan komponen ini. -
ALL
– File ini dapat dibaca oleh semua pengguna.
Default ke
OWNER
. -
Execute
-
(Opsional) Izin run yang akan ditetapkan untuk file artefak ini. Izin
Execute
menyiratkan izinRead
. Misalnya, jika Anda menentukanALL
untukExecute
, maka semua pengguna dapat membaca dan menjalankan file artefak ini.Pilih dari salah satu pilihan berikut:
-
NONE
– File ini tidak dapat dijalankan. -
OWNER
– File ini dapat dibaca oleh pengguna sistem yang Anda konfigurasikan untuk menjalankan komponen ini. -
ALL
– File ini dapat dijalankan oleh semua pengguna.
Default ke
NONE
. -
Digest
-
(Hanya baca) Cryptographic digest hash dari artefak. Saat Anda membuat komponen, AWS IoT Greengrass gunakan algoritma hash untuk menghitung hash dari file artefak. Kemudian, ketika Anda men-deploy komponen, inti Greengrass menghitung hash dari artefak terunduh dan membandingkan hash dengan digest ini untuk memverifikasi artefak sebelum instalasi. Jika hash tidak cocok dengan digest, deployment gagal.
Jika Anda menyetel parameter ini, AWS IoT Greengrass ganti nilai yang Anda tetapkan saat membuat komponen.
Algorithm
-
(Read-only) Algoritma hash yang AWS IoT Greengrass digunakan untuk menghitung hash intisari artefak.
Jika Anda menyetel parameter ini, AWS IoT Greengrass ganti nilai yang Anda tetapkan saat membuat komponen.
-
-
Lifecycle
-
Objek yang mendefinisikan cara menginstal dan menjalankan komponen. Perangkat inti hanya menggunakan siklus hidup global hanya jika manifes yang akan digunakan tidak menentukan siklus hidup.
catatan
Anda mendefinisikan siklus hidup ini di luar manifes. Anda juga dapat menentukan manifest siklus hidup yang berlaku untuk platform yang sesuai dengan manifes itu.
Dalam siklus hidup global, Anda dapat menentukan siklus hidup yang berjalan untuk kunci pilihan tertentu yang Anda tentukan di setiap manifes. Kunci pilihan adalah string yang mengidentifikasi bagian dari siklus hidup global yang akan dijalankan untuk setiap manifes.
Kunci pilihan
all
adalah default pada setiap bagian tanpa kunci seleksi. Artinya Anda dapat menggunakan pilihanall
dalam manifes untuk menjalankan bagian siklus hidup global tanpa kunci seleksi. Anda tidak perlu menentukan opsi kunci pilihanall
dalam siklus hidup global.Jika manifes tidak menentukan siklus hidup atau kunci pilihan, default perangkat inti akan menggunakan pilihan
all
. Ini berarti bahwa dalam kasus ini, perangkat inti menggunakan bagian siklus hidup global yang tidak menggunakan kunci pilihan.Objek ini berisi informasi yang sama seperti manifes siklus hidup, namun Anda dapat menentukan kunci pilihan pada tingkat mana pun untuk memilih sub-bagian dari siklus hidup.
Tip
Kami menyarankan Anda menggunakan hanya huruf kecil untuk setiap kunci pilihan untuk menghindari pertentangan antara kunci pilihan dan kunci siklus hidup. Kunci siklus hidup dimulai dengan huruf kapital.
contoh Contoh siklus hidup global dengan kunci pilihan tingkat atas
Lifecycle: key1: install: Skipif: either onpath
executable
or existsfile
Script: command1 key2: install: Script: command2 all: install: Script: command3contoh Contoh siklus hidup global dengan kunci pilihan tingkat bawah
Lifecycle: install: Script: key1: command1 key2: command2 all: command3
contoh Contoh siklus hidup global dengan berbagai tingkatan kunci pilihan
Lifecycle: key1: install: Skipif: either onpath
executable
or existsfile
Script: command1 key2: install: Script: command2 all: install: Script: key3: command3 key4: command4 all: command5
Variabel resep
Variabel resep mengekspos informasi dari komponen saat ini dan inti yang dapat Anda gunakan dalam resep Anda. Misalnya, Anda dapat menggunakan variabel resep untuk meneruskan parameter konfigurasi komponen ke aplikasi yang Anda jalankan dalam skrip siklus hidup.
Anda dapat menggunakan variabel resep di bagian resep komponen berikut:
-
Definisi siklus hidup.
-
Definisi konfigurasi komponen, jika Anda menggunakan Greengrass nucleus v2.6.0 atau yang lebih baru dan mengatur opsi konfigurasi ke. interpolateComponentConfiguration
true
Anda juga dapat menggunakan variabel resep saat menerapkan pembaruan konfigurasi komponen.
Variabel resep menggunakan sintaks {recipe_variable}
. Kawat lengkung menunjukkan variabel resep.
AWS IoT Greengrass mendukung variabel resep berikut:
component_dependency_name
:configuration:json_pointer
-
Nilai parameter konfigurasi untuk komponen yang didefinisikan oleh resep ini atau untuk komponen yang komponen ini tergantung padanya.
Anda dapat menggunakan variabel ini untuk memberikan parameter pada skrip yang Anda jalankan dalam siklus hidup komponen.
catatan
AWS IoT Greengrass mendukung variabel resep ini hanya dalam definisi siklus hidup komponen.
Variabel resep ini memiliki masukan berikut:
-
component_dependency_name
— (Opsional) Nama dependensi komponen pada kueri. Hilangkan segmen ini untuk melakukan kueri atas komponen yang menentukan resep ini. Anda hanya dapat menentukan dependensi langsung. -
json_pointer
— JSON Pointer ke nilai konfigurasi untuk mengevaluasi. JSONpointer dimulai dengan garis miring/
ke depan. Untuk mengidentifikasi nilai dalam konfigurasi komponen bersusun, gunakan garis miring ke depan (/
) untuk memisahkan kunci-kunci untuk setiap tingkat dalam konfigurasi. Anda dapat menggunakan nomor sebagai kunci untuk menentukan indeks dalam daftar. Untuk informasi lebih lanjut, lihat spesifikasi JSON pointer. AWS IoT Greengrass Core menggunakan JSON pointer untuk resep dalam YAML format.
JSONPointer dapat mereferensikan jenis node berikut:
-
Sebuah simpul nilai. AWS IoT Greengrass Core menggantikan variabel resep dengan representasi string dari nilai. Nilai kosong berubah ke
null
sebagai string. -
Sebuah simpul objek. AWS IoT Greengrass Core menggantikan variabel resep dengan representasi JSON string serial dari objek itu.
-
Tidak ada simpul. AWS IoT Greengrass Core tidak menggantikan variabel resep.
Misalnya, variabel resep
{configuration:/Message}
mengambil nilai kunciMessage
dalam konfigurasi komponen tersebut. Variabel resep{com.example.MyComponentDependency:configuration:/server/port}
mengambil nilaiport
di konfigurasi objekserver
dari dependensi komponen. -
-
component_dependency_name
:artifacts:path -
Jalur akar artefak untuk komponen yang didefinisikan oleh resep ini atau untuk komponen yang komponen ini tergantung padanya.
Saat komponen diinstal, salin AWS IoT Greengrass artefak komponen ke folder yang diekspos variabel ini. Anda dapat menggunakan variabel ini untuk mengidentifikasi lokasi skrip yang akan dijalankan dalam siklus hidup komponen, misalnya.
Folder di jalur ini bersifat hanya-baca. Untuk mengubah file artefak, salin file ke lokasi lain, seperti direktori kerja saat ini (
$PWD
atau.
). Kemudian, ubah file di sana.Untuk membaca atau menjalankan artefak dari dependensi komponen, izin
Read
atauExecute
artefak itu harusALL
. Untuk informasi lebih lanjut, lihat izin artefak yang Anda tentukan dalam resep komponen.Variabel resep ini memiliki masukan berikut:
-
component_dependency_name
— (Opsional) Nama dependensi komponen pada kueri. Hilangkan segmen ini untuk melakukan kueri atas komponen yang menentukan resep ini. Anda hanya dapat menentukan dependensi langsung.
-
-
component_dependency_name
:artifacts:decompressedPath -
Jalur akar artefak dari artefak arsip yang terdekompresi untuk komponen yang didefinisikan oleh resep ini atau untuk komponen yang komponen ini tergantung padanya.
Saat komponen diinstal, AWS IoT Greengrass buka artefak arsip komponen ke folder yang diekspos variabel ini. Anda dapat menggunakan variabel ini untuk mengidentifikasi lokasi skrip yang akan dijalankan dalam siklus hidup komponen, misalnya.
Setiap artefak di-unzip ke folder dalam jalur dekompresi, di mana folder itu memiliki nama yang sama dengan artefak dikurangi ekstensinya. Misalnya, ZIP artefak bernama
models.zip
membongkar ke folder.{artifacts:decompressedPath}/models
Folder di jalur ini bersifat hanya-baca. Untuk mengubah file artefak, salin file ke lokasi lain, seperti direktori kerja saat ini (
$PWD
atau.
). Kemudian, ubah file di sana.Untuk membaca atau menjalankan artefak dari dependensi komponen, izin
Read
atauExecute
artefak itu harusALL
. Untuk informasi lebih lanjut, lihat izin artefak yang Anda tentukan dalam resep komponen.Variabel resep ini memiliki masukan berikut:
-
component_dependency_name
— (Opsional) Nama dependensi komponen pada kueri. Hilangkan segmen ini untuk melakukan kueri atas komponen yang menentukan resep ini. Anda hanya dapat menentukan dependensi langsung.
-
-
component_dependency_name
:work:path -
Fitur ini tersedia untuk v2.0.4 dan versi yang lebih baru dari komponen inti Greengrass.
Jalur akar artefak untuk komponen yang didefinisikan oleh resep ini atau untuk komponen yang komponen ini tergantung padanya. Nilai variabel resep ini setara dengan output dari variabel lingkungan
$PWD
dan perintah pwdketika dijalankan dari konteks komponen. Anda dapat menggunakan variabel resep ini untuk berbagi file antara komponen dan dependensi.
Folder di jalur ini dapat dibaca dan ditulis oleh komponen yang didefinisikan oleh resep ini dan oleh komponen lain yang dijalankan sebagai pengguna dan kelompok yang sama.
Variabel resep ini memiliki masukan berikut:
-
component_dependency_name
— (Opsional) Nama dependensi komponen pada kueri. Hilangkan segmen ini untuk melakukan kueri atas komponen yang menentukan resep ini. Anda hanya dapat menentukan dependensi langsung.
-
kernel:rootPath
-
Jalur akar AWS IoT Greengrass inti.
iot:thingName
-
Fitur ini tersedia untuk v2.3.0 dan versi kemudian dari komponen inti Greengrass.
Nama AWS IoT benda perangkat inti.
Contoh resep
Anda dapat mereferensikan contoh resep berikut untuk membantu Anda membuat resep untuk komponen Anda.
AWS IoT Greengrass mengkurasi indeks komponen Greengrass, yang disebut Greengrass Software Catalog. Katalog ini melacak komponen Greengrass yang dikembangkan oleh komunitas Greengrass. Dari katalog ini, Anda dapat mengunduh, memodifikasi, dan menyebarkan komponen untuk membuat aplikasi Greengrass Anda. Untuk informasi selengkapnya, lihat Komponen komunitas.
Topik
Resep komponen Hello World
Resep berikut menjelaskan komponen Hello World yang menjalankan skrip Python. Komponen ini mendukung semua platform dan menerima Message
parameter yang AWS IoT Greengrass
diteruskan sebagai argumen ke skrip Python. Ini adalah resep untuk komponen Hello World di Memulai tutorial.
Contoh komponen waktu aktif Python
Resep berikut menjelaskan komponen yang menginstal Python. Komponen ini mendukung perangkat Linux 64-bit.
Komponen resep yang menentukan beberapa kolom
Resep komponen berikut menggunakan beberapa kolom resep.