View a markdown version of this page

AWS IoT Greengrass referensi resep komponen - AWS IoT Greengrass

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. In AWS IoT Greengrass ti 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 lunak ini 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 seleksi, perangkat inti menggunakan bagian dari siklus hidup global yang berisi kunci pemilihan 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 inti, maka perangkat lunak AWS IoT Greengrass Core tidak menginstal komponen dan penerapan gagal.

Anda bisa menentukan resep dalam format JSON atau YAML. Bagian contoh resep mencakup resep dalam setiap format.

Validasi resep

Greengrass memvalidasi resep komponen JSON atau YAML saat membuat versi komponen. Validasi resep ini memeriksa resep komponen JSON atau YAML Anda untuk kesalahan umum untuk mencegah potensi masalah penerapan. Validasi memeriksa resep untuk kesalahan umum (misalnya, koma, tanda kurung, 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, atau bidang yang hilang. Pastikan 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 format YAML dan JSON.

RecipeFormatVersion

Versi templat untuk resep itu. Pilih opsi berikut:

  • 2020-01-25

ComponentName

Nama komponen yang ditentukan oleh resep ini. Nama komponen harus unik Akun AWS di setiap Wilayah Anda.

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 Anda com.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 berikan komponen Anda alih-alih komponen publik saat menerapkan komponen dengan ketergantungan pada komponen publik itu. 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 menggunakan JSON untuk nilai konfigurasi. JSON menentukan jenis nomor 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 menginstal. 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 jenis 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. Parameter ComponentSource menentukan ARN fungsi Lambda yang dijalankan oleh komponen ini.

    Kami tidak menyarankan Anda menggunakan opsi ini, karena ini diatur oleh AWS IoT Greengrass saat Anda membuat komponen dari fungsi Lambda. Untuk informasi selengkapnya, lihat Jalankan AWS Lambda fungsi.

  • aws.greengrass.plugin – Komponen ini berjalan pada komponen plugin dalam Java Virtual Machine (JVM) yang sama seperti 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 dalam Java yang 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, atau aws.greengrass.lambda saat Anda membuat komponen dari fungsi Lambda.

Untuk informasi selengkapnya, lihat Jenis komponen.

ComponentSource

(Opsional) ARN fungsi Lambda yang dijalankan komponen.

Kami tidak menyarankan Anda menentukan sumber komponen dalam resep. AWS IoT Greengrass menetapkan parameter ini untuk Anda ketika Anda membuat komponen dari fungsi Lambda. Untuk informasi selengkapnya, lihat Jalankan AWS Lambda fungsi.

Manifests

Daftar objek yang masing-masing menentukan siklus hidup, parameter, dan persyaratan komponen untuk platform. Jika perangkat inti cocok dengan persyaratan platform beberapa manifes, gunakan AWS IoT Greengrass 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 inti, maka perangkat lunak AWS IoT Greengrass 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 kunci-nilai ini dengan atribut platform pada perangkat inti. Perangkat lunak AWS IoT Greengrass Core selalu mendefinisikan os danarchitecture, dan mungkin menentukan 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.

  • Ek Java-style spresi reguler, 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:

runtime

Runtime inti Greengrass untuk platform yang didukung manifes ini. Saat mendefinisikan beberapa manifes dengan platformruntime, Nilai runtime yang didukung dalam resep adalah aws_nucleus_lite dan * hanya. Untuk menargetkan perangkat klasik, bidang runtime TIDAK HARUS ditentukan dalam resep. Runtime Greengrass Nucleus yang didukung mencakup nilai-nilai berikut:

  • *

  • aws_nucleus_lite

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. Detail 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 kustom com.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 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 yang akan dijalankan saat 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 keadaan INSTALLED.

Objek atau string ini berisi informasi berikut:

Script

Skrip yang akan dijalankan.

RequiresPrivilege

(Opsional) Jika Anda menyetel opsi ini ketrue, perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai pengguna yang menjalankan inti Greengrass alih-alih pengguna sistem yang dikonfigurasi untuk komponen ini. Ketika nukleus berjalan sebagai root, ini memberikan hak akses root ke skrip. Default ke false.

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 outputnya benar, maka perangkat lunak AWS IoT Greengrass Core melewatkan langkah tersebut. Pilih salah satu pemeriksaan berikut:

  • onpath runnable — Periksa apakah runnable berada di jalur sistem. Misalnya, gunakan onpath python3 untuk melewati langkah siklus hidup ini jika Python 3 tersedia.

  • exists file — Periksa apakah file ada. Misalnya, gunakan 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 saat komponen dimulai.

Komponen memasuki keadaan RUNNING saat langkah siklus hidup ini berjalan. Jika skrip run keluar dengan kode sukses, komponen tersebut akan memasuki keadaan STOPPING. Jika shutdown skrip ditentukan, itu berjalan; jika tidak komponen memasuki FINISHED 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 selesainya segera setelah skrip siklus hidup ini berjalan. Akibatnya, penerapan dapat selesai dan berhasil bahkan jika skrip run siklus hidup gagal segera setelah dijalankan. Jika Anda ingin status penerapan bergantung pada hasil skrip awal komponen, gunakan langkah startup siklus hidup sebagai gantinya.

catatan

Anda dapat menentukan hanya satu startup atau run siklus hidup.

Objek atau string ini berisi informasi berikut:

Script

Skrip yang akan dijalankan.

RequiresPrivilege

(Opsional) Jika Anda menyetel opsi ini ketrue, perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai pengguna yang menjalankan inti Greengrass alih-alih pengguna sistem yang dikonfigurasi untuk komponen ini. Ketika nukleus berjalan sebagai root, ini memberikan hak akses root ke skrip. Default ke false.

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 pemeriksaan berikut:

  • onpath runnable — Periksa apakah runnable berada di jalur sistem. Misalnya, gunakan onpath python3 untuk melewati langkah siklus hidup ini jika Python 3 tersedia.

  • exists file — Periksa apakah file ada. Misalnya, gunakan exists /tmp/my-configuration.db untuk melewati langkah siklus hidup ini jika /tmp/my-configuration.db ada.

Timeout

(Opsional) Jumlah waktu maksimum dalam detik yang dapat dijalankan skrip sebelum perangkat lunak AWS IoT Greengrass Core 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) Sebuah objek atau string yang mendefinisikan proses latar belakang untuk dijalankan ketika komponen dimulai.

Gunakan startup untuk menjalankan perintah yang harus berhasil keluar atau memperbarui status komponen RUNNING sebelum komponen dependen dapat dimulai. Gunakan operasi UpdateState IPC untuk mengatur status komponen ke RUNNING atau ERRORED saat komponen memulai skrip yang tidak keluar. Misalnya, Anda dapat menentukan langkah startup yang memulai proses MySQL dengan /etc/init.d/mysqld start.

Komponen memasuki keadaan STARTING saat langkah siklus hidup ini berjalan. Jika skrip startup keluar dengan kode sukses, komponen tersebut akan memasuki keadaan RUNNING. Kemudian, komponen dependen bisa dimulai.

Saat Anda menerapkan komponen dengan startup siklus hidup, perangkat inti dapat melaporkan penerapan selesai setelah skrip siklus hidup ini keluar atau melaporkan statusnya. Dengan kata lain, status penerapan adalah IN_PROGRESS sampai skrip startup semua komponen keluar atau melaporkan status.

catatan

Anda dapat menentukan hanya satu startup atau run siklus hidup.

Objek atau string ini berisi informasi berikut:

Script

Skrip yang akan dijalankan.

RequiresPrivilege

(Opsional) Jika Anda menyetel opsi ini ketrue, perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai pengguna yang menjalankan inti Greengrass alih-alih pengguna sistem yang dikonfigurasi untuk komponen ini. Ketika nukleus berjalan sebagai root, ini memberikan hak akses root ke skrip. Default ke false.

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 pemeriksaan berikut:

  • onpath runnable — Periksa apakah runnable berada di jalur sistem. Misalnya, gunakan onpath python3 untuk melewati langkah siklus hidup ini jika Python 3 tersedia.

  • exists file — Periksa apakah file ada. Misalnya, gunakan 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 saat komponen dimatikan. Gunakan siklus hidup shutdown untuk mengeksekusi kode yang ingin Anda jalankan saat komponen berada dalam STOPPING status. Siklus hidup shutdown dapat digunakan untuk menghentikan proses yang dimulai oleh run skrip startup atau.

Jika Anda memulai proses latar belakang di startup, gunakan langkah shutdown untuk menghentikan proses itu ketika komponen dimatikan. Misalnya, Anda dapat menentukan langkah shutdown yang menghentikan proses MySQL dengan /etc/init.d/mysqld stop.

shutdownSkrip berjalan setelah komponen memasuki STOPPING status. Jika skrip berhasil diselesaikan, komponen memasuki FINISHED status.

Objek atau string ini berisi informasi berikut:

Script

Skrip yang akan dijalankan.

RequiresPrivilege

(Opsional) Jika Anda menyetel opsi ini ketrue, perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai pengguna yang menjalankan inti Greengrass alih-alih pengguna sistem yang dikonfigurasi untuk komponen ini. Ketika nukleus berjalan sebagai root, ini memberikan hak akses root ke skrip. Default ke false.

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 pemeriksaan berikut:

  • onpath runnable — Periksa apakah runnable berada di jalur sistem. Misalnya, gunakan onpath python3 untuk melewati langkah siklus hidup ini jika Python 3 tersedia.

  • exists file — Periksa apakah file ada. Misalnya, gunakan exists /tmp/my-configuration.db untuk melewati langkah siklus hidup ini jika /tmp/my-configuration.db ada.

Timeout

(Opsional) Jumlah waktu maksimum dalam detik yang dapat dijalankan skrip sebelum perangkat lunak AWS IoT Greengrass Core menghentikan proses.

Default: 15 detik.

Setenv

(Opsional) Kamus variabel lingkungan untuk menyediakan skrip. Variabel lingkungan ini menimpa variabel yang Anda berikan di Lifecycle.Setenv.

uninstall

(Opsional) Objek atau string yang mendefinisikan skrip yang akan dijalankan saat komponen dihapus secara permanen dari perangkat. Perangkat lunak AWS IoT Greengrass Core menjalankan langkah ini ketika penerapan menghapus komponen. Langkah ini tidak berjalan selama peningkatan versi komponen.

catatan

Fitur ini membutuhkan Greengrass nucleus versi 2.17.0 atau yang lebih baru. Pada versi inti sebelumnya, perangkat lunak AWS IoT Greengrass Core tidak menjalankan langkah siklus proses uninstall saat menghapus komponen.

Komponen memasuki keadaan UNINSTALLING saat langkah siklus hidup ini berjalan. Jika skrip uninstall gagal atau habis waktu, komponen masih dihapus. Kegagalan uninstall tidak gagal dalam penerapan.

Objek atau string ini berisi informasi berikut:

Script

Skrip yang akan dijalankan.

RequiresPrivilege

(Opsional) Jika Anda menyetel opsi ini ketrue, perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai pengguna yang menjalankan inti Greengrass alih-alih pengguna sistem yang dikonfigurasi untuk komponen ini. Ketika nukleus berjalan sebagai root, ini memberikan hak akses root ke skrip. Default ke false.

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 pemeriksaan berikut:

  • onpath runnable — Periksa apakah runnable berada di jalur sistem. Misalnya, gunakan onpath python3 untuk melewati langkah siklus hidup ini jika Python 3 tersedia.

  • exists file — Periksa apakah file ada. Misalnya, gunakan 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.

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 keadaan ERRORED tiga kali tanpa berhasil pulih, komponen tersebut akan berubah ke keadaan BROKEN. Untuk memperbaiki komponen BROKEN, Anda harus men-deploy komponen itu lagi.

Objek atau string ini berisi informasi berikut:

Script

Skrip yang akan dijalankan.

RequiresPrivilege

(Opsional) Jika Anda menyetel opsi ini ketrue, perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai pengguna yang menjalankan inti Greengrass alih-alih pengguna sistem yang dikonfigurasi untuk komponen ini. Ketika nukleus berjalan sebagai root, ini memberikan hak akses root ke skrip. Default ke false.

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 pemeriksaan berikut:

  • onpath runnable — Periksa apakah runnable berada di jalur sistem. Misalnya, gunakan onpath python3 untuk melewati langkah siklus hidup ini jika Python 3 tersedia.

  • exists file — Periksa apakah file ada. Misalnya, gunakan exists /tmp/my-configuration.db untuk melewati langkah siklus hidup ini jika /tmp/my-configuration.db ada.

Timeout

(Opsional) Jumlah waktu maksimum dalam detik yang dapat dijalankan skrip sebelum perangkat lunak AWS IoT Greengrass Core 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 Core 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 Core untuk memulai ulang, gunakan siklus penginst alan.

Langkah siklus hidup ini berjalan sebelum langkah siklus hidup penginstalan dalam kasus berikut ketika perangkat lunak AWS IoT Greengrass Core menerapkan 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.

catatan

Perangkat lunak AWS IoT Greengrass Core mengabaikan kebijakan penanganan kegagalan untuk penerapan bootstrap. Jika penerapan yang menjalankan langkah-langkah siklus hidup bootstrap gagal, perangkat inti akan kembali ke konfigurasi sebelumnya. Rollback terjadi bahkan jika Anda menetapkan kebijakan penanganan kegagalan keDO_NOTHING. Untuk informasi selengkapnya, lihat Buat deployment.

penting

Anda harus mengkonfigurasi perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem untuk me-restart perangkat lunak AWS IoT Greengrass Core atau perangkat inti. Jika Anda tidak mengkonfigurasi perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem, perangkat lunak tidak akan memulai 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 inti Greengrass 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 ketrue, 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) Jika Anda menyetel opsi ini ketrue, perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai pengguna yang menjalankan inti Greengrass alih-alih pengguna sistem yang dikonfigurasi untuk komponen ini. Ketika nukleus berjalan sebagai root, ini memberikan hak akses root ke skrip. Default ke false.

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 diterapkan, 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. Sebagai contoh, tentukan {artifacts:path}/my_script.py dalam resep untuk mendapatkan jalur ke artefak yang memiliki URI s3://amzn-s3-demo-bucket/path/to/my_script.py.

  • Arsip yang diekstraksi — Gunakan variabel resep artifacts:decompressedPath 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. Sebagai contoh, tentukan {artifacts:decompressedPath}/my_archive/my_script.py dalam resep untuk mendapatkan jalur ke artefak arsip my_script.py yang memiliki URI s3://amzn-s3-demo-bucket/path/to/my_archive.zip.

catatan

Ketika Anda mengembangkan komponen dengan artefak arsip pada perangkat inti lokal, Anda mungkin tidak memiliki URI untuk artefak itu. Untuk menguji komponen Anda dengan Unarchive yang mengekstraksi artefak, tentukan URI tempat nama file cocok dengan nama file artefak arsip Anda. Anda dapat menentukan URI di mana Anda mengharapkan untuk mengunggah artefak arsip, atau Anda dapat menentukan URI placeholder yang baru. Misalnya, untuk mengekstraksi artefak my_archive.zip selama deployment lokal, Anda dapat menentukan s3://amzn-s3-demo-bucket/my_archive.zip.

Setiap objek berisi informasi berikut:

Uri

URI artefak dalam bucket S3. Perangkat lunak AWS IoT Greengrass Core mengambil artefak dari URI ini 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 ini adalah arsip ZIP. Perangkat lunak AWS IoT Greengrass Core mengekstrak arsip ke folder dengan nama yang sama dengan arsip. Anda dapat menggunakan variabel resep artifacts:decompressedPath untuk mendapatkan jalur ke 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 menulis, 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 ke ALL for Read 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 izin Read. Misalnya, jika Anda menentukan ALL untuk Execute, 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

(Read-only) Hash intisari kriptografi artefak. Saat Anda membuat komponen, AWS IoT Greengrass menggunakan 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 mengatur parameter ini, AWS IoT Greengrass ganti nilai yang Anda tetapkan saat Anda membuat komponen.

Algorithm

(Read-only) Algoritma hash AWS IoT Greengrass yang digunakan untuk menghitung hash cerna artefak.

Jika Anda mengatur parameter ini, AWS IoT Greengrass ganti nilai yang Anda tetapkan saat Anda 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 pilihan all dalam manifes untuk menjalankan bagian siklus hidup global tanpa kunci seleksi. Anda tidak perlu menentukan opsi kunci pilihan all 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 exists file Script: command1 key2: install: Script: command2 all: install: Script: command3
contoh 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 exists file 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:

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 - Pointer JSON pada nilai konfigurasi yang akan dievaluasi. JSON pointer dimulai dengan garis miring /. 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 selengkapnya, lihat spesifikasi pointer JSON.

    AWS IoT Greengrass Core menggunakan pointer JSON untuk resep dalam format YAML.

Pointer JSON 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 string JSON serial dari objek itu.

  • Tidak ada simpul. AWS IoT Greengrass Core tidak menggantikan variabel resep.

Misalnya, variabel resep {configuration:/Message} mengambil nilai kunci Message dalam konfigurasi komponen tersebut. Variabel resep {com.example.MyComponentDependency:configuration:/server/port} mengambil nilai port di konfigurasi objek server 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, sal AWS IoT Greengrass in 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 atau Execute artefak itu harus ALL. 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 menginstal, AWS IoT Greengrass membongkar 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. Sebagai contoh, sebuah artefak ZIP bernama models.zip dibongkar 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 atau Execute artefak itu harus ALL. 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 pwd ketika 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

Jal AWS IoT Greengrass ur akar inti.

iot:thingName

Fitur ini tersedia untuk v2.3.0 dan versi kemudian dari komponen inti Greengrass.

Nama perangkat inti AWS IoT .

Contoh resep

Anda dapat mereferensikan contoh resep berikut untuk membantu Anda membuat resep untuk komponen Anda.

AWS IoT Greengrass menyusun indeks komponen Greengrass, yang disebut Katalog Perangkat Lunak Greengrass. Katalog ini melacak komponen Greengrass yang dikembangkan oleh komunitas Greengrass. Dari katalog ini, Anda dapat mengunduh, memodifikasi, dan menerapkan komponen untuk membuat aplikasi Greengrass Anda. Untuk informasi selengkapnya, lihat Komponen komunitas.

Resep komponen Hello World

Resep berikut menjelaskan komponen Hello World yang menjalankan skrip Python. Komponen ini mendukung semua platform dan menerima Message parameter yang diter AWS IoT Greengrass uskan sebagai argumen ke skrip Python. Ini adalah resep untuk komponen Hello World di Memulai tutorial.

JSON
{ "RecipeFormatVersion": "2020-01-25", "ComponentName": "com.example.HelloWorld", "ComponentVersion": "1.0.0", "ComponentDescription": "My first AWS IoT Greengrass component.", "ComponentPublisher": "Amazon", "ComponentConfiguration": { "DefaultConfiguration": { "Message": "world" } }, "Manifests": [ { "Platform": { "os": "linux" }, "Lifecycle": { "run": "python3 -u {artifacts:path}/hello_world.py {configuration:/Message}" } }, { "Platform": { "os": "windows" }, "Lifecycle": { "run": "py -3 -u {artifacts:path}/hello_world.py {configuration:/Message}" } } ] }
YAML
--- RecipeFormatVersion: '2020-01-25' ComponentName: com.example.HelloWorld ComponentVersion: '1.0.0' ComponentDescription: My first AWS IoT Greengrass component. ComponentPublisher: Amazon ComponentConfiguration: DefaultConfiguration: Message: world Manifests: - Platform: os: linux Lifecycle: run: | python3 -u {artifacts:path}/hello_world.py "{configuration:/Message}" - Platform: os: windows Lifecycle: run: | py -3 -u {artifacts:path}/hello_world.py "{configuration:/Message}"

Contoh komponen waktu aktif Python

Resep berikut menjelaskan komponen yang menginstal Python. Komponen ini mendukung perangkat Linux 64-bit.

JSON
{ "RecipeFormatVersion": "2020-01-25", "ComponentName": "com.example.PythonRuntime", "ComponentDescription": "Installs Python 3.7", "ComponentPublisher": "Amazon", "ComponentVersion": "3.7.0", "Manifests": [ { "Platform": { "os": "linux", "architecture": "amd64" }, "Lifecycle": { "install": "apt-get update\napt-get install python3.7" } } ] }
YAML
--- RecipeFormatVersion: '2020-01-25' ComponentName: com.example.PythonRuntime ComponentDescription: Installs Python 3.7 ComponentPublisher: Amazon ComponentVersion: '3.7.0' Manifests: - Platform: os: linux architecture: amd64 Lifecycle: install: | apt-get update apt-get install python3.7

Komponen resep yang menentukan beberapa kolom

Resep komponen berikut menggunakan beberapa kolom resep.

JSON
{ "RecipeFormatVersion": "2020-01-25", "ComponentName": "com.example.FooService", "ComponentDescription": "Complete recipe for AWS IoT Greengrass components", "ComponentPublisher": "Amazon", "ComponentVersion": "1.0.0", "ComponentConfiguration": { "DefaultConfiguration": { "TestParam": "TestValue" } }, "ComponentDependencies": { "BarService": { "VersionRequirement": "^1.1.0", "DependencyType": "SOFT" }, "BazService": { "VersionRequirement": "^2.0.0" } }, "Manifests": [ { "Platform": { "os": "linux", "architecture": "amd64" }, "Lifecycle": { "install": { "Skipif": "onpath git", "Script": "sudo apt-get install git" }, "Setenv": { "environment_variable1": "variable_value1", "environment_variable2": "variable_value2" } }, "Artifacts": [ { "Uri": "s3://amzn-s3-demo-bucket/hello_world.zip", "Unarchive": "ZIP" }, { "Uri": "s3://amzn-s3-demo-bucket/hello_world_linux.py" } ] }, { "Lifecycle": { "install": { "Skipif": "onpath git", "Script": "sudo apt-get install git", "RequiresPrivilege": "true" } }, "Artifacts": [ { "Uri": "s3://amzn-s3-demo-bucket/hello_world.py" } ] } ] }
YAML
--- RecipeFormatVersion: '2020-01-25' ComponentName: com.example.FooService ComponentDescription: Complete recipe for AWS IoT Greengrass components ComponentPublisher: Amazon ComponentVersion: 1.0.0 ComponentConfiguration: DefaultConfiguration: TestParam: TestValue ComponentDependencies: BarService: VersionRequirement: ^1.1.0 DependencyType: SOFT BazService: VersionRequirement: ^2.0.0 Manifests: - Platform: os: linux architecture: amd64 Lifecycle: install: SkipIf: onpath git Script: sudo apt-get install git SetEnv: environment_variable1: variable_value1 environment_variable2: variable_value2 Artifacts: - Uri: 's3://amzn-s3-demo-bucket/hello_world.zip' Unarchive: ZIP - Uri: 's3://amzn-s3-demo-bucket/hello_world_linux.py' - Lifecycle: install: SkipIf: onpath git Script: sudo apt-get install git RequiresPrivilege: 'true' Artifacts: - Uri: 's3://amzn-s3-demo-bucket/hello_world.py'