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.
Topik
SDK (Versi Minimum)
Tabel berikut mencantumkan versi minimum AWS IoT Device SDK yang harus Anda gunakan untuk berinteraksi dengan siklus hidup komponen.
SDK | Versi minimum |
---|---|
v1.2.10 |
|
v1.5.3 |
|
v1.17.0 |
|
v1.12.0 |
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 |
---|---|---|
|
Memungkinkan komponen untuk menjeda komponen yang Anda tentukan. |
Nama komponen, atau |
|
Memungkinkan komponen untuk melanjutkan komponen yang Anda tentukan. |
Nama komponen, atau |
|
Memungkinkan komponen untuk menjeda dan melanjutkan komponen yang Anda tentukan. |
Nama komponen, atau |
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 aliran IPC acara.
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.
SDK | Versi minimum |
---|---|
v1.4.3 |
|
v1.6.2 |
|
v1.13.1 |
|
v1.12.0 |
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.
SDK | Versi minimum |
---|---|
v1.4.3 |
|
v1.6.2 |
|
v1.13.1 |
|
v1.12.0 |
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.