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. AWS IoT Greengrass Inti menggunakan siklus hidup yang Anda tentukan dalam resep untuk menginstal dan menjalankan komponen. AWS IoT Greengrass Layanan menggunakan resep untuk mengidentifikasi dependensi dan artefak untuk diterapkan ke perangkat inti Anda saat Anda menerapkan komponen.

Dalam resep itu, Anda dapat menentukan dependensi dan siklus hidup yang unik untuk setiap platform yang didukung komponen. Anda dapat menggunakan kemampuan ini untuk men-deploy komponen ke perangkat dengan beberapa platform yang memiliki persyaratan yang berbeda. Anda juga dapat menggunakan ini untuk AWS IoT Greengrass mencegah menginstal komponen pada perangkat yang tidak mendukungnya.

Setiap resep berisi daftar manifes. Setiap manifes menentukan seperangkat persyaratan platform dan siklus hidup dan artefak yang akan digunakan untuk perangkat inti yang platformnya memenuhi persyaratan tersebut. Perangkat inti menggunakan manifes pertama dengan persyaratan platform yang dipenuhi oleh perangkat. Tentukan manifes tanpa persyaratan platform apa pun agar cocok dengan setiap perangkat inti.

Anda juga dapat menentukan siklus hidup global yang tidak ada dalam manifes. Dalam siklus hidup global, Anda dapat menggunakan tombol pilihan yang mengidentifikasi sub-bagian dari siklus hidup. Kemudian, Anda dapat menentukan kunci pilihan ini dalam manifes untuk menggunakan bagian dari siklus hidup global selain siklus hidup manifes. Perangkat inti hanya menggunakan tombol pemilihan manifes jika manifes tidak menentukan siklus hidup. Anda dapat menggunakan pilihan all dalam manifes untuk mencocokkan bagian siklus hidup global tanpa kunci seleksi.

Setelah perangkat lunak AWS IoT Greengrass Core memilih manifes yang cocok dengan perangkat inti, perangkat tersebut melakukan hal berikut untuk mengidentifikasi langkah-langkah siklus hidup yang akan digunakan:

  • Jika manifes yang dipilih menentukan siklus hidup, perangkat inti akan menggunakan siklus hidup tersebut.

  • Jika manifes yang dipilih tidak menentukan siklus hidup, perangkat inti akan menggunakan siklus hidup global. Perangkat inti melakukan hal berikut untuk mengidentifikasi bagian siklus hidup global mana yang akan digunakan:

    • Jika manifes mendefinisikan kunci pilihan, perangkat inti akan menggunakan bagian siklus hidup global yang berisi kunci pilihan manifes.

    • Jika manifes tidak mendefinisikan kunci pilihan, perangkat inti akan menggunakan bagian siklus hidup global yang tidak memiliki kunci pilihan. Perilaku ini setara dengan manifes yang menentukan pilihan all.

penting

Sebuah perangkat inti harus cocok setidaknya dengan satu persyaratan platform manifes untuk menginstal komponen. Jika tidak ada manifes yang cocok dengan perangkat AWS IoT Greengrass inti, maka perangkat lunak Core tidak menginstal komponen dan penerapan gagal.

Anda dapat menentukan resep dalam JSONatau YAMLformat. Bagian contoh resep mencakup resep dalam setiap format.

Validasi resep

Greengrass memvalidasi resep YAML atau komponen saat JSON membuat versi komponen. Validasi resep ini memeriksa resep Anda JSON atau YAML komponen untuk kesalahan umum untuk mencegah potensi masalah penerapan. Validasi memeriksa resep untuk kesalahan umum (misalnya, koma, tanda kurung gigi, dan bidang yang hilang) dan untuk memastikan resepnya terbentuk dengan baik.

Jika Anda menerima pesan kesalahan validasi resep, periksa resep Anda apakah ada koma, tanda kurung gigi, atau bidang yang hilang. Verifikasi bahwa Anda tidak melewatkan bidang apa pun dengan melihat format resep.

Format resep

Bila Anda menentukan resep untuk komponen, Anda menentukan informasi berikut dalam dokumen resep. Struktur yang sama berlaku untuk resep dalam YAML dan JSON format.

RecipeFormatVersion

Versi templat untuk resep itu. Pilih opsi berikut:

  • 2020-01-25

ComponentName

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

Kiat
  • Gunakan format nama domain terbalik untuk menghindari tabrakan nama dalam perusahaan Anda. Misalnya, jika perusahaan Anda memiliki example.com dan Anda mengerjakan proyek energi matahari, Anda dapat menamai komponen Hello World 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 sediakan komponen Anda alih-alih komponen publik saat menyebarkan komponen dengan ketergantungan pada komponen publik tersebut. Fitur ini memungkinkan Anda untuk menimpa perilaku komponen publik, tetapi juga dapat merusak komponen lain jika Anda tidak berniat untuk menimpa komponen publik.

ComponentVersion

Versi komponen. Nilai maksimum untuk nilai mayor, minor, dan patch adalah 999999.

catatan

AWS IoT Greengrass menggunakan versi semantik untuk komponen. Versi semantik mengikuti sistem nomor mayor.minor.patch. Sebagai contoh, versi 1.0.0 merupakan rilis mayor pertama untuk sebuah komponen. Untuk informasi lebih lanjut, lihat spesifikasi versi semantik.

ComponentDescription

(Opsional) Deskripsi komponen.

ComponentPublisher

Penerbit atau penulis komponen.

ComponentConfiguration

(Opsional) Sebuah objek yang menentukan konfigurasi atau parameter untuk komponen. Anda menentukan konfigurasi default, dan kemudian ketika Anda men-deploy komponen, Anda dapat menentukan objek konfigurasi yang akan disediakan ke komponen. Konfigurasi komponen mendukung parameter bersusun dan struktur. Objek ini berisi informasi berikut:

DefaultConfiguration

Objek yang menentukan konfigurasi default untuk komponen. Anda menentukan struktur objek ini.

catatan

AWS IoT Greengrass digunakan JSON untuk nilai konfigurasi. JSONmenentukan jenis angka tetapi tidak membedakan antara bilangan bulat dan float. Akibatnya, nilai konfigurasi mungkin berubah menjadi float di AWS IoT Greengrass. Untuk memastikan bahwa komponen Anda menggunakan jenis data yang benar, kami sarankan Anda menentukan nilai konfigurasi numerik sebagai string. Kemudian, buat komponen Anda mengurainya sebagai bilangan bulat atau float. Hal ini memastikan bahwa nilai konfigurasi Anda memiliki tipe yang sama dalam konfigurasi dan pada perangkat inti Anda.

ComponentDependencies

(Opsional) Sebuah kamus objek yang masing-masing mendefinisikan dependensi komponen untuk komponen tersebut. Kunci untuk setiap objek mengidentifikasi nama ketergantungan komponen. AWS IoT Greengrass menginstal dependensi komponen saat komponen diinstal. AWS IoT Greengrass menunggu dependensi dimulai sebelum memulai komponen. Setiap objek berisi informasi berikut.

VersionRequirement

Kendala versi semantik npm-style yang menentukan versi komponen yang kompatibel untuk dependensi ini. Anda dapat menentukan versi atau rentang versi. Untuk informasi lebih lanjut, lihat kalkulator versi semantik npm.

DependencyType

(Opsional) Jenis dependensi ini. Pilih salah satu dari opsi berikut:

  • SOFT — Komponen tidak me-restart jika dependensi mengubah keadaan.

  • HARD — Komponen me-restart jika dependensi mengubah keadaan.

Default ke HARD.

ComponentType

(Opsional) Jenis komponen.

catatan

Kami tidak menyarankan Anda menentukan jenis komponen dalam resep. AWS IoT Greengrass menetapkan tipe untuk Anda saat Anda membuat komponen.

Jenis ini dapat berupa salah satu dari jenis-jenis berikut:

  • aws.greengrass.generic — Komponen menjalankan perintah atau menyediakan artefak.

  • aws.greengrass.lambda – Komponen menjalankan fungsi Lambda menggunakan Komponen peluncur Lambda. ComponentSourceParameter menentukan fungsi Lambda yang dijalankan komponen ini. ARN

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

  • aws.greengrass.plugin— Komponen berjalan di Java Virtual Machine (JVM) yang sama dengan inti Greengrass. Jika Anda men-deploy atau me-restart komponen plugin, inti Greengrass akan me-restart.

    Komponen plugin menggunakan file log yang sama seperti inti Greengrass. Untuk informasi selengkapnya, lihat Memantau AWS IoT Greengrass log.

    Kami tidak menyarankan Anda menggunakan opsi ini dalam resep komponen, karena ini ditujukan untuk komponen yang AWS disediakan yang ditulis di Java yang secara langsung berinteraksi dengan inti Greengrass. Untuk informasi lebih lanjut tentang komponen publik mana yang merupakan plugin, lihat Komponen yang disediakan oleh AWS.

  • aws.greengrass.nucleus — Komponen nukleus. Untuk informasi selengkapnya, lihat Inti Greengrass.

    Kami tidak menyarankan Anda menggunakan opsi ini dalam resep komponen. Opsi ini ditujukan untuk komponen inti Greengrass, yang menyediakan fungsionalitas minimum perangkat lunak inti AWS IoT Greengrass .

Default-nya adalah aws.greengrass.generic saat Anda membuat komponen dari resep, atau aws.greengrass.lambda saat Anda membuat komponen dari fungsi Lambda.

Untuk informasi selengkapnya, lihat Jenis komponen.

ComponentSource

(Opsional) Fungsi Lambda yang dijalankan komponen. ARN

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

Manifests

Daftar objek yang masing-masing menentukan siklus hidup, parameter, dan persyaratan komponen untuk platform. Jika perangkat inti cocok dengan persyaratan platform beberapa manifes, AWS IoT Greengrass gunakan manifes pertama yang cocok dengan perangkat inti. Untuk memastikan bahwa perangkat inti menggunakan manifes yang benar, tentukan manifes dengan persyaratan platform ketat terlebih dahulu. Manifes yang berlaku untuk semua platform harus menjadi manifes terakhir dalam daftar.

penting

Sebuah perangkat inti harus cocok setidaknya dengan satu persyaratan platform manifes untuk menginstal komponen. Jika tidak ada manifes yang cocok dengan perangkat AWS IoT Greengrass inti, maka perangkat lunak Core tidak menginstal komponen dan penerapan gagal.

Setiap objek berisi informasi berikut:

Name

(Opsional) Nama yang bersahabat untuk platform yang ditentukan leh manifes ini.

Jika Anda menghilangkan parameter ini, AWS IoT Greengrass buat nama dari platform os danarchitecture.

Platform

(Opsional) Sebuah objek yang menentukan platform yang padanya manifes ini berlaku. Hilangkan parameter ini untuk menentukan manifes yang berlaku untuk semua platform.

Objek ini menentukan pasangan kunci-nilai tentang platform di mana perangkat inti berjalan. Saat Anda menerapkan komponen ini, perangkat lunak AWS IoT Greengrass Core membandingkan pasangan nilai kunci ini dengan atribut platform pada perangkat inti. Perangkat lunak AWS IoT Greengrass Core selalu mendefinisikan os danarchitecture, dan mungkin mendefinisikan atribut tambahan. Anda dapat menentukan atribut platform kustom untuk perangkat inti ketika Anda men-deploy komponen inti Greengrass. Untuk informasi lebih lanjut, lihat bagian platform menimpa parameter dari komponen nukleus Greengrass.

Untuk setiap pasangan kunci-nilai, Anda dapat menentukan salah satu nilai berikut:

  • Nilai yang tepat, seperti linux atauwindows. Nilai yang tepat harus dimulai dengan huruf atau angka.

  • *, yang cocok dengan nilai apa pun. Hal ini juga cocok ketika nilai tidak ada.

  • Sebuah ekspresi reguler gaya Java, seperti /windows|linux/. Ekspresi reguler harus dimulai dan diakhiri dengan karakter garis miring (/). Misalnya, ekspresi reguler /.+/ cocok dengan nilai non-kosong.

Objek ini berisi informasi berikut:

os

(Opsional) Nama sistem operasi untuk platform yang didukung oleh manifes ini. Platform umum mencakup nilai-nilai berikut:

  • linux

  • windows

  • darwin (macOS)

architecture

(Opsional) Arsitektur prosesor untuk platform yang didukung oleh manifes ini. Arsitektur umum mencakup nilai-nilai berikut:

  • amd64

  • arm

  • aarch64

  • x86

architecture.detail

(Opsional) Detail arsitektur prosesor untuk platform yang didukung manifes ini. Rincian arsitektur umum mencakup nilai-nilai berikut:

  • arm61

  • arm71

  • arm81

key

(Opsional) Atribut platform yang Anda tetapkan untuk manifes ini. Ganti key dengan nama atribut platform. Perangkat lunak AWS IoT Greengrass Core mencocokkan atribut platform ini dengan pasangan kunci-nilai yang Anda tentukan dalam konfigurasi komponen inti Greengrass. Untuk informasi lebih lanjut, lihat bagian platform menimpa parameter dari komponen nukleus Greengrass.

Tip

Gunakan format nama domain terbalik untuk menghindari tabrakan nama dalam perusahaan Anda. Misalnya, jika perusahaan Anda memiliki example.com dan Anda mengerjakan proyek radio, Anda dapat memberi nama atribut platform 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 oleh manifes ini. Anda juga dapat menentukan siklus hidup global yang berlaku untuk semua platform. Perangkat inti hanya menggunakan siklus hidup global jika manifes yang akan digunakan tidak menentukan siklus hidup.

catatan

Anda mendefinisikan siklus hidup ini dalam manifes. Langkah-langkah siklus hidup yang Anda tentukan di sini hanya berlaku untuk platform yang ditentukan oleh manifes ini. Anda juga dapat menentukan siklus hidup global yang berlaku untuk semua platform.

Objek atau string ini berisi informasi berikut:

Setenv

(Opsional) Kamus variabel lingkungan untuk menyediakan semua skrip siklus hidup. Anda dapat mengganti variabel lingkungan ini dengan Setenv dalam setiap skrip siklus hidup.

install

(Opsional) Objek atau string yang mendefinisikan skrip untuk dijalankan ketika komponen diinstal. Perangkat lunak AWS IoT Greengrass Core juga menjalankan langkah siklus hidup ini setiap kali perangkat lunak diluncurkan.

Jika skrip install keluar dengan kode sukses, komponen tersebut akan memasuki 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 menyetel opsi initrue, maka perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai root, bukan sebagai pengguna sistem yang Anda konfigurasikan untuk menjalankan komponen ini. Default 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 cek 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 ketika 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 selengkap 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) Anda dapat menjalankan skrip dengan hak istimewa root. Jika Anda menyetel opsi initrue, maka perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai root, bukan sebagai pengguna sistem yang Anda konfigurasikan untuk menjalankan komponen ini. Default 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 cek 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 hitungan detik skrip dapat dijalankan sebelum perangkat lunak AWS IoT Greengrass Inti menghentikan proses.

Langkah siklus hidup ini tidak berbatas waktu secara default. Jika Anda menghilangkan batas waktu ini, skrip run akan berjalan sampai skrip tersebut keluar.

Setenv

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

startup

(Opsional) Objek atau string yang mendefinisikan proses latar belakang untuk dijalankan ketika komponen dimulai.

Gunakan startup untuk menjalankan perintah yang harus keluar dengan sukses atau memperbarui status komponen RUNNING sebelum komponen dependen dapat dimulai. Gunakan UpdateStateIPCoperasi untuk mengatur status komponen ke RUNNING atau ERRORED ketika komponen memulai skrip yang tidak keluar. Misalnya, Anda mungkin menentukan startup langkah yang memulai SQL proses Saya 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 sebagai selesai setelah skrip siklus hidup ini keluar atau melaporkan statusnya. Dengan kata lain, status penerapan adalah IN_PROGRESS sampai 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 menyetel opsi initrue, maka perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai root, bukan sebagai pengguna sistem yang Anda konfigurasikan untuk menjalankan komponen ini. Default 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 cek 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 ketika komponen dimatikan. Gunakan siklus hidup shutdown untuk mengeksekusi kode yang ingin Anda jalankan saat komponen dalam status. STOPPING Siklus hidup shutdown dapat digunakan untuk menghentikan proses yang dimulai oleh skrip atau. startup run

Jika Anda memulai proses latar belakang di startup, gunakan langkah shutdown untuk menghentikan proses itu ketika komponen dimatikan. Misalnya, Anda mungkin menentukan shutdown langkah yang menghentikan SQL proses Saya 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) Anda dapat menjalankan skrip dengan hak istimewa root. Jika Anda menyetel opsi initrue, maka perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai root, bukan sebagai pengguna sistem yang Anda konfigurasikan untuk menjalankan komponen ini. Default 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 cek 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 hitungan detik skrip dapat dijalankan sebelum perangkat lunak AWS IoT Greengrass Inti menghentikan proses.

Default: 15 detik.

Setenv

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

recover

(Opsional) Objek atau string yang mendefinisikan skrip untuk dijalankan ketika komponen mengalami kesalahan.

Langkah ini berjalan ketika komponen memasuki keadaan ERRORED. Jika komponen tersebut memasuki 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 menyetel opsi initrue, maka perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai root, bukan sebagai pengguna sistem yang Anda konfigurasikan untuk menjalankan komponen ini. Default 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 cek 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 hitungan detik skrip dapat dijalankan sebelum perangkat lunak AWS IoT Greengrass Inti menghentikan proses.

Default: 60 detik.

Setenv

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

bootstrap

(Opsional) Objek atau string yang mendefinisikan skrip yang memerlukan perangkat lunak AWS IoT Greengrass inti atau perangkat inti untuk memulai ulang. Hal ini memungkinkan Anda mengembangkan komponen yang melakukan restart setelah menginstal pembaruan sistem operasi atau pembaruan waktu aktif, misalnya.

catatan

Untuk menginstal pembaruan atau dependensi yang tidak memerlukan perangkat lunak atau perangkat AWS IoT Greengrass inti untuk memulai ulang, gunakan siklus hidup penginstalan.

Langkah siklus hidup ini berjalan sebelum langkah siklus hidup penginstalan dalam kasus berikut ketika perangkat lunak AWS IoT Greengrass Core menyebarkan komponen:

  • Komponen men-deploy ke perangkat inti untuk pertama kalinya.

  • Versi komponen berubah.

  • Bootstrap script berubah sebagai hasil dari pembaruan konfigurasi komponen.

Setelah perangkat lunak AWS IoT Greengrass Core menyelesaikan langkah bootstrap untuk semua komponen yang memiliki langkah bootstrap dalam penerapan, perangkat lunak dimulai ulang.

penting

Anda harus mengkonfigurasi perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem untuk memulai ulang perangkat lunak AWS IoT Greengrass Core atau perangkat inti. Jika Anda tidak mengonfigurasi perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem, perangkat lunak tidak akan dimulai ulang. Untuk informasi selengkapnya, lihat Konfigurasikan inti Greengrass sebagai layanan sistem.

Objek atau string ini berisi informasi berikut:

BootstrapOnRollback
catatan

Ketika fitur ini diaktifkan, hanya BootstrapOnRollback akan berjalan untuk komponen yang telah menyelesaikan atau mencoba menjalankan langkah-langkah siklus hidup bootstrap sebagai bagian dari penerapan target yang gagal. Fitur ini tersedia untuk Greengrass nucleus versi 2.12.0 dan yang lebih baru.

(Opsional) Anda dapat menjalankan langkah-langkah siklus hidup bootstrap sebagai bagian dari penerapan rollback. Jika Anda menyetel opsi initrue, langkah-langkah siklus hidup bootstrap yang ditentukan dalam penerapan rollback akan berjalan. Ketika penerapan gagal, versi sebelumnya dari siklus hidup bootstrap komponen akan berjalan lagi selama penerapan rollback.

Default ke false.

Script

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

  • 0— Jangan me-restart perangkat lunak AWS IoT Greengrass Core atau perangkat inti. Perangkat lunak AWS IoT Greengrass Core masih restart setelah semua komponen bootstrap.

  • 100— Permintaan untuk me-restart perangkat lunak AWS IoT Greengrass Core.

  • 101 — Permintaan untuk me-restart perangkat inti.

Kode keluar 100 sampai 199 dicadangkan untuk perilaku khusus. Kode keluar lainnya mewakili kesalahan skrip.

RequiresPrivilege

(Opsional) Anda dapat menjalankan skrip dengan hak istimewa root. Jika Anda menyetel opsi initrue, maka perangkat lunak AWS IoT Greengrass Core menjalankan skrip siklus hidup ini sebagai root, bukan sebagai pengguna sistem yang Anda konfigurasikan untuk menjalankan komponen ini. Default 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 digunakan, perangkat lunak AWS IoT Greengrass Core mengunduh artefak ke folder pada perangkat inti. Anda juga dapat menentukan artefak sebagai file arsip yang diekstraki oleh perangkat lunak setelah mengunduhnya.

Anda dapat menggunakan variabel resep untuk mendapatkan jalur ke folder tempat artefak menginstal pada perangkat inti.

  • File normal — Gunakan variabel resep artifacts:path untuk mendapatkan jalur ke folder yang berisi artefak. Misalnya, tentukan {artifacts:path}/my_script.py dalam resep untuk mendapatkan jalur ke artefak yang memiliki. URI s3://amzn-s3-demo-bucket/path/to/my_script.py

  • Arsip yang diekstrak - Gunakan artefak: variabel decompressedPath resep untuk mendapatkan jalur ke folder yang berisi artefak arsip yang diekstraksi. Perangkat lunak AWS IoT Greengrass Core mengekstrak setiap arsip ke folder dengan nama yang sama dengan arsip. Misalnya, tentukan {artifacts:decompressedPath}/my_archive/my_script.py dalam resep untuk mendapatkan jalur ke my_script.py artefak arsip yang memiliki. URI s3://amzn-s3-demo-bucket/path/to/my_archive.zip

catatan

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

Setiap objek berisi informasi berikut.

URI

Artefak dalam ember S3. URI Perangkat lunak AWS IoT Greengrass Core mengambil artefak dari ini URI ketika komponen diinstal, kecuali artefak sudah ada di perangkat. Setiap artefak harus memiliki nama file yang unik dalam setiap manifes.

Unarchive

(Opsional) Jenis arsip yang akan dibongkar. Pilih dari salah satu pilihan berikut:

  • NONE – File ini bukanlah arsip yang akan dibongkar. Perangkat lunak inti AWS IoT Greengrass menginstal artefak ke folder pada perangkat inti. Anda dapat menggunakan variabel resep artifacts:path untuk mendapatkan jalur ke folder ini.

  • ZIP— File tersebut adalah ZIP arsip. Perangkat lunak AWS IoT Greengrass Core mengekstrak arsip ke folder dengan nama yang sama dengan arsip. Anda dapat menggunakan variabel artefak: decompressedPath resep untuk mendapatkan jalur ke folder yang berisi folder ini.

Default ke NONE.

Permission

(Opsional) Sebuah objek yang mendefinisikan izin akses yang akan ditentukan untuk file artefak ini. Anda dapat mengatur izin membaca dan izin mengeksekusi.

catatan

Anda tidak dapat mengatur izin tulis, karena perangkat lunak AWS IoT Greengrass Core tidak mengizinkan komponen untuk mengedit file artefak di folder artefak. Untuk mengedit file artefak dalam komponen, salin ke lokasi lain atau publikasikan dan deploy file artefak yang baru.

Jika Anda mendefinisikan artefak sebagai arsip untuk dibongkar, maka perangkat lunak AWS IoT Greengrass Core menetapkan izin akses ini pada file yang dibongkar dari arsip. Perangkat lunak AWS IoT Greengrass Core menetapkan izin akses folder ALL untuk 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

(Hanya baca) Cryptographic digest hash dari artefak. Saat Anda membuat komponen, AWS IoT Greengrass gunakan algoritma hash untuk menghitung hash dari file artefak. Kemudian, ketika Anda men-deploy komponen, inti Greengrass menghitung hash dari artefak terunduh dan membandingkan hash dengan digest ini untuk memverifikasi artefak sebelum instalasi. Jika hash tidak cocok dengan digest, deployment gagal.

Jika Anda menyetel parameter ini, AWS IoT Greengrass ganti nilai yang Anda tetapkan saat membuat komponen.

Algorithm

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

Jika Anda menyetel parameter ini, AWS IoT Greengrass ganti nilai yang Anda tetapkan saat membuat komponen.

Lifecycle

Objek yang mendefinisikan cara menginstal dan menjalankan komponen. Perangkat inti hanya menggunakan siklus hidup global hanya jika manifes yang akan digunakan tidak menentukan siklus hidup.

catatan

Anda mendefinisikan siklus hidup ini di luar manifes. Anda juga dapat menentukan manifest siklus hidup yang berlaku untuk platform yang sesuai dengan manifes itu.

Dalam siklus hidup global, Anda dapat menentukan siklus hidup yang berjalan untuk kunci pilihan tertentu yang Anda tentukan di setiap manifes. Kunci pilihan adalah string yang mengidentifikasi bagian dari siklus hidup global yang akan dijalankan untuk setiap manifes.

Kunci pilihan all adalah default pada setiap bagian tanpa kunci seleksi. Artinya Anda dapat menggunakan 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— JSON Pointer ke nilai konfigurasi untuk mengevaluasi. JSONpointer dimulai dengan garis miring / ke depan. Untuk mengidentifikasi nilai dalam konfigurasi komponen bersusun, gunakan garis miring ke depan (/) untuk memisahkan kunci-kunci untuk setiap tingkat dalam konfigurasi. Anda dapat menggunakan nomor sebagai kunci untuk menentukan indeks dalam daftar. Untuk informasi lebih lanjut, lihat spesifikasi JSON pointer.

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

JSONPointer dapat mereferensikan jenis node berikut:

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

  • Sebuah simpul objek. AWS IoT Greengrass Core menggantikan variabel resep dengan representasi JSON string serial dari objek itu.

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

Misalnya, variabel resep {configuration:/Message} mengambil nilai 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, salin AWS IoT Greengrass artefak komponen ke folder yang diekspos variabel ini. Anda dapat menggunakan variabel ini untuk mengidentifikasi lokasi skrip yang akan dijalankan dalam siklus hidup komponen, misalnya.

Folder di jalur ini bersifat hanya-baca. Untuk mengubah file artefak, salin file ke lokasi lain, seperti direktori kerja saat ini ($PWD atau .). Kemudian, ubah file di sana.

Untuk membaca atau menjalankan artefak dari dependensi komponen, izin Read 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 diinstal, AWS IoT Greengrass buka artefak arsip komponen ke folder yang diekspos variabel ini. Anda dapat menggunakan variabel ini untuk mengidentifikasi lokasi skrip yang akan dijalankan dalam siklus hidup komponen, misalnya.

Setiap artefak di-unzip ke folder dalam jalur dekompresi, di mana folder itu memiliki nama yang sama dengan artefak dikurangi ekstensinya. Misalnya, ZIP artefak bernama models.zip membongkar ke folder. {artifacts:decompressedPath}/models

Folder di jalur ini bersifat hanya-baca. Untuk mengubah file artefak, salin file ke lokasi lain, seperti direktori kerja saat ini ($PWD atau .). Kemudian, ubah file di sana.

Untuk membaca atau menjalankan artefak dari dependensi komponen, izin Read 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 AWS IoT Greengrass inti.

iot:thingName

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

Nama AWS IoT benda perangkat inti.

Contoh resep

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

AWS IoT Greengrass mengkurasi indeks komponen Greengrass, yang disebut Greengrass Software Catalog. Katalog ini melacak komponen Greengrass yang dikembangkan oleh komunitas Greengrass. Dari katalog ini, Anda dapat mengunduh, memodifikasi, dan menyebarkan komponen untuk membuat aplikasi Greengrass Anda. Untuk informasi selengkapnya, lihat Komponen komunitas.

Resep komponen Hello World

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

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'