Berinteraksilah dengan siklus hidup komponen - AWS IoT Greengrass

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

Berinteraksilah dengan siklus hidup komponen

Gunakan layanan IPC siklus hidup komponen untuk:

  • Perbarui status komponen pada perangkat inti.

  • Berlangganan pembaruan status komponen.

  • Mencegah nukleus menghentikan komponen untuk menerapkan pembaruan selama penerapan.

  • Jeda dan lanjutkan proses komponen.

SDK (Versi Minimum)

Tabel berikut mencantumkan versi minimum AWS IoT Device SDK yang harus Anda gunakan untuk berinteraksi dengan siklus hidup komponen.

Otorisasi

Untuk menjeda atau melanjutkan komponen lain dari komponen kustom, Anda harus menentukan kebijakan otorisasi yang memungkinkan komponen Anda mengelola komponen lain. Untuk informasi tentang cara menentukan kebijakan otorisasi, lihat Otorisasi komponen untuk melakukan operasi IPC.

Kebijakan otorisasi untuk manajemen siklus hidup komponen memiliki properti berikut.

Pengenal layanan IPC: aws.greengrass.ipc.lifecycle

Operasi Deskripsi Sumber daya

aws.greengrass#PauseComponent

Memungkinkan komponen untuk menjeda komponen yang Anda tentukan.

Nama komponen, atau * untuk mengizinkan akses ke semua komponen.

aws.greengrass#ResumeComponent

Memungkinkan komponen untuk melanjutkan komponen yang Anda tentukan.

Nama komponen, atau * untuk mengizinkan akses ke semua komponen.

*

Memungkinkan komponen untuk menjeda dan melanjutkan komponen yang Anda tentukan.

Nama komponen, atau * untuk mengizinkan akses ke semua komponen.

Contoh kebijakan otorisasi

Anda dapat mereferensikan contoh kebijakan otorisasi berikut untuk membantu Anda mengonfigurasi kebijakan otorisasi untuk komponen Anda.

contoh Contoh kebijakan otorisasi

Contoh kebijakan otorisasi berikut memungkinkan komponen untuk menjeda dan melanjutkan semua komponen.

{ "accessControl": { "aws.greengrass.ipc.lifecycle": { "com.example.MyLocalLifecycleComponent:lifecycle:1": { "policyDescription": "Allows access to pause/resume all components.", "operations": [ "aws.greengrass#PauseComponent", "aws.greengrass#ResumeComponent" ], "resources": [ "*" ] } } } }

UpdateState

Memperbarui keadaan komponen pada perangkat inti.

Permintaan

Permintaan operasi ini memiliki parameter berikut:

state

Keadaan yang akan diatur. Enum ini, LifecycleState, memiliki nilai-nilai berikut:

  • RUNNING

  • ERRORED

Respons

Operasi ini tidak memberikan informasi apa pun dalam tanggapannya.

SubscribeToComponentUpdates

Berlanggananlah untuk menerima notifikasi sebelum perangkat lunak inti AWS IoT Greengrass memperbarui komponen. Notifikasi tersebut menentukan apakah nukleus akan di-restart sebagai bagian dari pembaruan.

Inti tersebut mengirimkan notifikasi pembaruan hanya jika komponen kebijakan pembaruan komponen deployment menentukan untuk menotifikasi komponen. Perilaku defaultnya adalah menotifikasi komponen. Untuk informasi selengkapnya, lihat Buat deployment dan DeploymentComponentUpdatePolicyobjek yang dapat Anda berikan saat Anda memanggil CreateDeploymentoperasi.

penting

Deployment lokal tidak menotifikasi komponen sebelum pembaruan.

Operasi ini adalah operasi berlangganan di mana Anda berlangganan aliran pesan peristiwa. Untuk menggunakan operasi ini, tentukan bagian yang menangani respons aliran dengan fungsi yang menangani pesan peristiwa, kesalahan, dan penutupan aliran. Untuk informasi selengkapnya, lihat Berlangganan pengaliran peristiwa IPC.

Jenis pesan peristiwa: ComponentUpdatePolicyEvents

Tip

Anda dapat mengikuti tutorial untuk mempelajari cara mengembangkan komponen yang secara kondisional menunda pembaruan komponen. Untuk informasi selengkapnya, lihat Tutorial: Mengembangkan komponen Greengrass yang menunda pembaruan komponen.

Permintaan

Operasi ini tidak memiliki parameter apa pun.

Respons

Tanggapan operasi ini memiliki informasi berikut:

messages

Aliran pesan notifikasi. Objek ini, ComponentUpdatePolicyEvents, berisi informasi berikut:

preUpdateEvent(Python:) pre_update_event

(Opsional) Sebuah peristiwa yang menunjukkan bahwa inti ingin memperbarui komponen. Anda dapat merespons dengan operasi DeferComponentUpdate untuk mengakui atau menunda pembaruan sampai komponen Anda siap untuk memulai ulang. Objek ini, PreComponentUpdateEvent, berisi informasi berikut:

deploymentId(Python:) deployment_id

ID deployment AWS IoT Greengrass yang memperbarui komponen.

isGgcRestarting(Python:) is_ggc_restarting

Apakah nukleus perlu me-restart untuk menerapkan pembaruan.

postUpdateEvent(Python:) post_update_event

(Opsional) Sebuah peristiwa yang menunjukkan bahwa inti telah memperbarui komponen. Objek ini, PostComponentUpdateEvent, berisi informasi berikut:

deploymentId(Python:) deployment_id

ID deployment AWS IoT Greengrass yang memperbarui komponen.

catatan

Fitur ini membutuhkan v2.7.0 atau yang lebih baru dari komponen inti Greengrass.

DeferComponentUpdate

Mengakui atau menunda pembaruan komponen yang Anda temukan dengan SubscribeToComponentUpdates. Anda menentukan jumlah waktu untuk menunggu sebelum nukleus memeriksa lagi apakah komponen Anda siap untuk membiarkan pembaruan komponen dilanjutkan. Anda juga dapat menggunakan operasi ini untuk memberi tahu nukleus bahwa komponen Anda siap untuk pembaruan.

Jika komponen tidak menanggapi notifikasi pembaruan komponen, inti tersebut akan menunggu sejumlah waktu yang Anda tentukan dalam kebijakan pembaruan komponen deployment. Setelah batas waktu itu, nukleus akan melanjutkan deployment. Pembaruan komponen default adalah 60 detik. Untuk informasi selengkapnya, lihat Buat deployment dan DeploymentComponentUpdatePolicyobjek yang dapat Anda berikan saat Anda memanggil CreateDeploymentoperasi.

Tip

Anda dapat mengikuti tutorial untuk mempelajari cara mengembangkan komponen yang secara kondisional menunda pembaruan komponen. Untuk informasi selengkapnya, lihat Tutorial: Mengembangkan komponen Greengrass yang menunda pembaruan komponen.

Permintaan

Permintaan operasi ini memiliki parameter berikut:

deploymentId(Python:) deployment_id

ID deployment AWS IoT Greengrass yang akan ditunda.

message

(Opsional) Nama komponen untuk menunda pembaruan.

Default untuk nama komponen yang membuat permintaan.

recheckAfterMs(Python:) recheck_after_ms

Jumlah waktu dalam milidetik untuk menunda pembaruan. Nukleus menunggu selama jumlah waktu ini dan kemudian mengirimkan PreComponentUpdateEvent lainnya yang dapat Anda temukan dengan SubscribeToComponentUpdates.

Tentukan 0 untuk membenarkan pembaruan. Hal ini akan memberi tahu nukleus bahwa komponen Anda siap untuk diperbarui.

Default nol milidetik, yang berarti mengakui pembaruan.

Respons

Operasi ini tidak memberikan informasi apa pun dalam tanggapannya.

PauseComponent

Fitur ini tersedia untuk v2.4.0 dan yang lebih baru dari komponen inti Greengrass. AWS IoT Greengrasssaat ini tidak mendukung fitur ini di perangkat inti Windows.

Menjeda proses komponen pada perangkat inti. Untuk melanjutkan komponen, gunakan ResumeComponentoperasi.

Anda hanya dapat menjeda komponen generik. Jika Anda mencoba menjeda jenis komponen lainnya, operasi ini akan menampilkan file. InvalidRequestError

catatan

Operasi ini tidak dapat menjeda proses kontainer, seperti kontainer Docker. Untuk menjeda dan melanjutkan container Docker, Anda dapat menggunakan perintah docker pause dan docker unpause.

Operasi ini tidak menjeda dependensi komponen atau komponen yang bergantung pada komponen yang Anda jeda. Pertimbangkan perilaku ini ketika Anda menjeda komponen yang merupakan ketergantungan komponen lain, karena komponen dependen mungkin mengalami masalah saat ketergantungannya dijeda.

Saat Anda memulai ulang atau mematikan komponen yang dijeda, seperti melalui penerapan, inti Greengrass melanjutkan komponen dan menjalankan siklus hidup shutdown-nya. Untuk informasi selengkapnya tentang memulai ulang komponen, lihat. RestartComponent

penting

Untuk menggunakan operasi ini, Anda harus menentukan kebijakan otorisasi yang memberikan izin untuk menggunakan operasi ini. Untuk informasi selengkapnya, lihat Otorisasi.

SDK (Versi Minimum)

Tabel berikut mencantumkan versi minimum AWS IoT Device SDK yang harus Anda gunakan untuk menjeda dan melanjutkan komponen.

Permintaan

Permintaan operasi ini memiliki parameter berikut:

componentName(Python:) component_name

Nama komponen untuk jeda, yang harus menjadi komponen generik. Untuk informasi selengkapnya, lihat Jenis komponen.

Respons

Operasi ini tidak memberikan informasi apa pun dalam tanggapannya.

ResumeComponent

Fitur ini tersedia untuk v2.4.0 dan yang lebih baru dari komponen inti Greengrass. AWS IoT Greengrasssaat ini tidak mendukung fitur ini di perangkat inti Windows.

Melanjutkan proses komponen pada perangkat inti. Untuk menjeda komponen, gunakan PauseComponentoperasi.

Anda hanya dapat melanjutkan komponen yang dijeda. Jika Anda mencoba melanjutkan komponen yang tidak dijeda, operasi ini akan melempar file. InvalidRequestError

penting

Untuk menggunakan operasi ini, Anda harus menentukan kebijakan otorisasi yang memberikan izin untuk melakukannya. Untuk informasi selengkapnya, lihat Otorisasi.

SDK (Versi Minimum)

Tabel berikut mencantumkan versi minimum AWS IoT Device SDK yang harus Anda gunakan untuk menjeda dan melanjutkan komponen.

Permintaan

Permintaan operasi ini memiliki parameter berikut:

componentName(Python:) component_name

Nama komponen yang akan dilanjutkan.

Respons

Operasi ini tidak memberikan informasi apa pun dalam tanggapannya.