Referensi resep komponen AWS IoT Greengrass - AWS IoT Greengrass

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Referensi resep komponen AWS IoT Greengrass

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. Inti AWS IoT Greengrass menggunakan siklus hidup yang Anda tentukan dalam resep untuk menginstal dan menjalankan komponen. Layanan AWS IoT Greengrass menggunakan resep untuk mengidentifikasi dependensi dan artefak untuk di-deploy ke perangkat inti Anda saat Anda menggunakan 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 mencegah AWS IoT Greengrass memasang 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 inti AWS IoT Greengrass memilih manifes yang cocok dengan perangkat inti, perangkat 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 pilihan, perangkat inti 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 inti, maka Perangkat lunak inti AWS IoT Greengrass tidak menginstal komponen dan deployment gagal.

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

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 di Akun AWS Anda di setiap Wilayah.

Tips
  • 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 menyediakan komponen Anda dan bukan komponen publik ketika men-deploy komponen dengan dependensi pada komponen publik. 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.

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 menentukan nama dependensi komponen. AWS IoT Greengrass menginstal komponen dependensi ketika komponen tersebut diinstal. AWS IoT Greengrass menunggu dependensi untuk 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 untuk menentukan jenis komponen dalam resep. AWS IoT Greengrass menetapkan jenis itu untuk Anda ketika 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 ditetapkan oleh AWS IoT Greengrass saat Anda membuat komponen dari fungsi Lambda. Untuk informasi selengkapnya, lihat Jalankan fungsi AWS Lambda.

  • 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 PemantauanAWS IoT Greengrasslog.

    Kami tidak menyarankan Anda menggunakan opsi ini dalam resep komponen, karena ia ditujukan untuk komponen yang disediakan AWSyang ditulis dalam Java yang secara langsung terhubung antarmuka 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 untuk 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 fungsi AWS Lambda.

Manifests

Daftar objek yang masing-masing menentukan siklus hidup, parameter, dan persyaratan komponen untuk platform. Jika perangkat inti cocok dengan beberapa persyaratan platform manifest, AWS IoT Greengrass menggunakan 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 inti AWS IoT Greengrass tidak menginstal komponen dan deployment 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 akan menciptakan nama dari platform os dan architecture.

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. Ketika Anda menggunakan komponen ini, perangkat lunak inti AWS IoT Greengrass membandingkan pasangan nilai kunci ini dengan atribut platform pada perangkat inti. Perangkat lunak inti AWS IoT Greengrass selalu mendefinisikan os dan architecture, 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, sepertilinuxatauwindows. 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

key

(Opsional) Atribut platform yang Anda tetapkan untuk manifes ini. Ganti kunci dengan nama atribut platform. Perangkat lunak inti AWS IoT Greengrass cocok dengan 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

Sebuah objek atau string yang mendefinisikan cara menginstal dan menjalankan komponen pada platform yang ditentukan 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) Sebuah objek atau string yang mendefinisikan skrip yang akan dijalankan ketika komponen menginstal. YangAWS IoT GreengrassPerangkat lunak inti 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) Anda dapat menjalankan skrip dengan hak istimewa root. Jika Anda menetapkan opsi ini ke true, maka Perangkat lunak inti AWS IoT Greengrass menjalankan skrip siklus hidup ini sebagai root bukan sebagai pengguna sistem yang Anda konfigurasi untuk menjalankan komponen ini. 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.

Run

(Opsional) Sebuah objek atau string yang mendefinisikan skrip yang akan dijalankan ketika komponen memulai.

Komponen memasuki keadaan RUNNING saat langkah siklus hidup ini berjalan. Jika skrip Run keluar dengan kode sukses, komponen tersebut akan memasuki keadaan FINISHED.

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 denganRunsiklus hidup, perangkat inti dapat melaporkan penyebaran selesai segera setelah skrip siklus hidup ini berjalan. Akibatnya, penyebaran bisa lengkap dan sukses bahkan jikaRunskrip siklus hidup gagal segera setelah berjalan. Jika Anda ingin status penyebaran bergantung pada hasil skrip awal komponen, gunakanStartuplangkah 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) Anda dapat menjalankan skrip dengan hak istimewa root. Jika Anda menetapkan opsi ini ke true, maka Perangkat lunak inti AWS IoT Greengrass menjalankan skrip siklus hidup ini sebagai root bukan sebagai pengguna sistem yang Anda konfigurasi untuk menjalankan komponen ini. 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.

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 yang akan dijalankan ketika komponen memulai.

GunakanStartupuntuk menjalankan perintah yang harus berhasil keluar atau memperbarui status komponenRUNNINGsebelum komponen dependen bisa dimulai. GunakanUpdateStateOperasi IPC untuk mengatur status komponen keRUNNINGatauERROREDketika 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 denganStartupsiklus hidup, perangkat inti dapat melaporkan penyebaran sebagai lengkap setelah skrip siklus hidup ini keluar atau melaporkan statusnya. Dengan kata lain, status deploymentIN_PROGRESSsampai semua skrip startup 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) Anda dapat menjalankan skrip dengan hak istimewa root. Jika Anda menetapkan opsi ini ke true, maka Perangkat lunak inti AWS IoT Greengrass menjalankan skrip siklus hidup ini sebagai root bukan sebagai pengguna sistem yang Anda konfigurasi untuk menjalankan komponen ini. 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) Sebuah objek atau string yang mendefinisikan skrip yang akan dijalankan ketika komponen mati.

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.

Komponen memasuki keadaan STOPPING saat langkah siklus hidup ini berjalan.

Objek atau string ini berisi informasi berikut:

Script

Skrip yang akan dijalankan.

RequiresPrivilege

(Opsional) Anda dapat menjalankan skrip dengan hak istimewa root. Jika Anda menetapkan opsi ini ke true, maka Perangkat lunak inti AWS IoT Greengrass menjalankan skrip siklus hidup ini sebagai root bukan sebagai pengguna sistem yang Anda konfigurasi untuk menjalankan komponen ini. 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: 15 detik.

Setenv

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

Recover

(Opsional) Sebuah objek atau string yang mendefinisikan skrip yang akan dijalankan ketika komponen menemui 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) Anda dapat menjalankan skrip dengan hak istimewa root. Jika Anda menetapkan opsi ini ke true, maka Perangkat lunak inti AWS IoT Greengrass menjalankan skrip siklus hidup ini sebagai root bukan sebagai pengguna sistem yang Anda konfigurasi untuk menjalankan komponen ini. 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: 60 detik.

Setenv

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

Bootstrap

(Opsional) Sebuah objek atau string yang mendefinisikan skrip yang membutuhkanAWS IoT GreengrassPerangkat lunak 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 memerlukanAWS IoT GreengrassPerangkat lunak inti atau perangkat untuk memulai ulang, gunakanmenginstal siklus.

Langkah siklus hidup ini berjalan sebelum langkah siklus hidup instalasi dalam kasus berikut ketikaAWS IoT GreengrassPerangkat lunak inti 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 inti AWS IoT Greengrass melengkapi langkah bootstrap untuk semua komponen yang memiliki langkah bootstrap dalam deployment, perangkat lunak akan restart.

penting

Anda harus mengonfigurasi Perangkat lunak inti AWS IoT Greengrass sebagai layanan sistem untuk me-restart Perangkat lunak inti AWS IoT Greengrass atau perangkat inti. Jika Anda tidak mengonfigurasi Perangkat lunak inti AWS IoT Greengrass sebagai layanan sistem, perangkat lunak tidak akan restart. Untuk informasi selengkapnya, lihat Konfigurasikan nukleus Greengrass sebagai layanan sistem.

Objek atau string ini berisi informasi berikut:

Script

Skrip yang akan dijalankan. Kode keluar dari skrip ini mendefinisikan instruksi restart. Gunakan kode keluar berikut:

  • 0 — Jangan memulai ulang Perangkat lunak inti AWS IoT Greengrass atau perangkat inti. Perangkat lunak inti AWS IoT Greengrass masih restart setelah semua komponen bootstrap.

  • 100 – Permintaan untuk me-restart perangkat lunak inti AWS IoT Greengrass.

  • 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 menetapkan opsi ini ke true, maka Perangkat lunak inti AWS IoT Greengrass menjalankan skrip siklus hidup ini sebagai root bukan sebagai pengguna sistem yang Anda konfigurasi untuk menjalankan komponen ini. 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.

Ketika komponen men-deploy, Perangkat lunak inti AWS IoT Greengrass 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://DOC-EXAMPLE-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 inti AWS IoT Greengrass mengekstrasik 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://DOC-EXAMPLE-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://DOC-EXAMPLE-BUCKET/my_archive.zip.

Setiap objek berisi informasi berikut:

URI

URI artefak dalam bucket S3. Perangkat lunak inti AWS IoT Greengrass mengambil artefak dari URI ini ketika komponen menginstal, kecuali artefak sudah ada pada 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 inti AWS IoT Greengrass mengekstraksi setiap 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 inti AWS IoT Greengrass 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 sebuah artefak sebagai arsip yang akan dibongkar, maka Perangkat lunak inti AWS IoT Greengrass menetapkan izin akses ini pada file yang dibongkarnya dari arsip. Perangkat lunak inti AWS IoT Greengrass menetapkan izin akses folder ke ALL untuk Read dan Execute. 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

(Hanya baca) Cryptographic digest hash dari artefak. Saat membuat komponen, AWS IoT Greengrass menggunakan algoritme 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 menggantikan nilai yang Anda tetapkan saat Anda membuat komponen.

Algorithm

(Hanya baca) Algoritme hash yang digunakan oleh AWS IoT Greengrass untuk menghitung hash digest dari artefak.

Jika Anda mengatur parameter ini, AWS IoT Greengrass menggantikan 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: onpath executable | 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: onpath executable | 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 melewati 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 Greengrassmendukung 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 Inti menggunakan pointer JSON untuk resep dalam format YAML.

Pointer JSON dapat mereferensikan jenis node berikut:

  • Sebuah node nilai. AWS IoT Greengrass Inti menggantikan variabel resep dengan representasi string dari nilai. Nilai kosong berubah ke null sebagai string.

  • Sebuah node objek. AWS IoT Greengrass Inti menggantikan variabel resep dengan representasi JSON string berseri dari objek itu.

  • Tidak ada simpul. AWS IoT Greengrass Inti 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.

Ketika sebuah komponen diinstal, AWS IoT Greengrass menyalin artefak komponen ke folder yang diekspos oleh 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.

Ketika sebuah komponen diinstal, AWS IoT Greengrass memembongkar artefak arsip komponen ke folder yang diekspos oleh 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

Jalur akar inti AWS IoT Greengrass.

iot:thingName

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

Nama perangkat inti objek AWS IoT.

Contoh resep

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

AWS IoT Greengrasskurasi 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.

Resep komponen Hello World

Resep berikut menjelaskan komponen Hello World yang menjalankan skrip Python. Komponen ini mendukung semua platform dan menerimaMessageparameter ituAWS IoT Greengrassmelewati sebagai argumen untuk script 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" } }, "Artifacts": [ { "URI": "s3://DOC-EXAMPLE-BUCKET/hello_world.zip", "Unarchive": "ZIP" }, { "URI": "s3://DOC-EXAMPLE-BUCKET/hello_world_linux.py" } ] }, { "Lifecycle": { "Install": { "Skipif": "onpath git", "Script": "sudo apt-get install git", "RequiresPrivilege": "true" } }, "Artifacts": [ { "URI": "s3://DOC-EXAMPLE-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 Artifacts: - URI: s3://DOC-EXAMPLE-BUCKET/hello_world.zip Unarchive: ZIP - URI: s3://DOC-EXAMPLE-BUCKET/hello_world_linux.py - Lifecycle: Install: Skipif: onpath git Script: sudo apt-get install git RequiresPrivilege: true Artifacts: - URI: s3://DOC-EXAMPLE-BUCKET/hello_world.py