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:

  • Memperbarui status komponen pada perangkat inti.

  • Berlangganan pembaruan status komponen.

  • Mencegah nukleus menghentikan komponen untuk menerapkan pembaruan selama penerapan.

  • Jedan lanjutkan proses komponen.

SDK (Versi Minimum)

Tabel berikut mencantumkan versi minimum dariAWS IoT Device SDKyang harus Anda gunakan untuk berinteraksi dengan siklus hidup komponen.

Otorisasi

Untuk menjedaan atau melanjutkan komponen lain dari komponen kustom, Anda harus menentukan kebijakan otorisasi yang memungkinkan 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 menjedaan komponen yang Anda tentukan.

Nama komponen, atau*untuk mengizinkan akses semua komponen.

aws.greengrass#ResumeComponent

Memungkinkan komponen untuk melanjutkan komponen yang Anda tentukan.

Nama komponen, atau*untuk mengizinkan akses semua komponen.

*

Memungkinkan komponen untuk menjedaan dan melanjutkan komponen yang Anda tentukan.

Nama komponen, atau*untuk mengizinkan akses 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

Kebijakan otorisasi contoh berikut ini memungkinkan komponen untuk menjedaan 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

Response

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, lihatBuat deploymentdanDeploymentComponentUpdatePolicyobjek yang dapat Anda berikan saat Anda meneleponCreateDeploymentoperasi

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 menentang pembaruan komponen. Untuk informasi selengkapnya, lihat Tutorial: Mengembangkan komponen Greengrass yang menangguhkan pembaruan komponen.

Permintaan

Operasi ini tidak memiliki parameter apa pun.

Response

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 versi 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, lihatBuat deploymentdanDeploymentComponentUpdatePolicyobjek yang dapat Anda berikan saat Anda meneleponCreateDeploymentoperasi

Tip

Anda dapat mengikuti tutorial untuk mempelajari cara mengembangkan komponen yang secara kondisional menentang pembaruan komponen. Untuk informasi selengkapnya, lihat Tutorial: Mengembangkan komponen Greengrass yang menangguhkan 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.

Response

Operasi ini tidak memberikan informasi apa pun dalam tanggapannya.

PauseComponent

Fitur ini tersedia untuk v2.4.0 dan versi kemudian dariKomponen inti Greengrass.AWS IoT GreengrassSaat ini tidak mendukung fitur ini pada perangkat inti Windows.

Menghentikan proses komponen pada perangkat inti. Untuk melanjutkan komponen, gunakanResumeComponentoperasi

Anda hanya dapat menjeda komponen generik. Jika Anda mencoba untuk menjeda jenis lain dari komponen, operasi ini melemparInvalidRequestError.

catatan

Operasi ini tidak dapat menjeda proses kontainer, seperti kontainer Docker. Untuk menjeda dan melanjutkan container Docker, Anda dapat menggunakanpenjedaan buruhdanlanjutkan dockerperintah.

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

Saat Anda memulai ulang atau mematikan komponen yang dijeda, seperti melalui penerapan, nukleus Greengrass akan melanjutkan komponen dan menjalankan siklus hidup pematihannya.

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 dariAWS IoT Device SDKyang 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.

Response

Operasi ini tidak memberikan informasi apa pun dalam tanggapannya.

ResumeComponent

Fitur ini tersedia untuk v2.4.0 dan versi kemudian dariKomponen inti Greengrass.AWS IoT GreengrassSaat ini tidak mendukung fitur ini pada perangkat inti Windows.

Melanjutkan proses komponen pada perangkat inti. Untuk menjeda komponen, gunakanPauseComponentoperasi

Anda hanya dapat melanjutkan komponen yang dijeda. Jika Anda mencoba melanjutkan komponen yang tidak dijeda, operasi ini akan melemparInvalidRequestError.

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 dariAWS IoT Device SDKyang harus Anda gunakan untuk menjeda dan melanjutkan komponen.

Permintaan

Permintaan operasi ini memiliki parameter berikut:

componentName(Python:component_name)

Nama komponen yang akan dilanjutkan.

Response

Operasi ini tidak memberikan informasi apa pun dalam tanggapannya.