Berinteraksilah dengan konfigurasi 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 konfigurasi komponen

Layanan IPC konfigurasi komponen memungkinkan Anda melakukan hal berikut:

  • Dapatkan dan atur parameter konfigurasi komponen.

  • Berlanggananlah pembaruan konfigurasi komponen.

  • Validasi pembaruan konfigurasi komponen sebelum inti menerapkannya.

SDK (Versi Minimum)

Tabel berikut mencantumkan versi minimumAWS IoT Device SDKyang harus Anda gunakan untuk berinteraksi dengan konfigurasi komponen.

GetConfiguration

Dapatkan nilai konfigurasi untuk komponen pada perangkat inti. Anda menentukan jalur kunci untuk mendapatkan nilai konfigurasi.

Permintaan

Permintaan operasi ini memiliki parameter berikut:

componentName(Python:component_name)

(Opsional) Nama komponen.

Default untuk nama komponen yang membuat permintaan.

keyPath(Python:key_path)

Path kunci untuk nilai konfigurasi. Tentukan daftar di mana setiap entri adalah kunci untuk satu tingkat dalam objek konfigurasi. Sebagai contoh, tentukan ["mqtt", "port"] untuk mendapatkan nilai port dalam konfigurasi berikut.

{ "mqtt": { "port": 443 } }

Untuk mendapatkan konfigurasi lengkap komponen, tentukan daftar kosong.

Response

Tanggapan operasi ini memiliki informasi berikut:

componentName(Python:component_name)

Nama komponen.

value

Konfigurasi yang diminta sebagai objek.

UpdateConfiguration

Memperbarui nilai konfigurasi untuk komponen ini pada perangkat inti.

Permintaan

Permintaan operasi ini memiliki parameter berikut:

keyPath(Python:key_path)

(Opsional) Path kunci untuk node kontainer (objek) yang akan diperbarui. Tentukan daftar di mana setiap entri adalah kunci untuk satu tingkat dalam objek konfigurasi. Sebagai contoh, tentukan path kunci ["mqtt"] dan nilai merge { "port": 443 } untuk mengatur nilai port dalam konfigurasi berikut.

{ "mqtt": { "port": 443 } }

Path kunci harus menentukan node kontainer (objek) dalam konfigurasi tersebut. Jika node tidak ada dalam konfigurasi komponen, operasi ini akan membuatnya dan menetapkan nilainya ke objek tersebut di valueToMerge.

Default ke akar dari objek konfigurasi.

timestamp

Jangka waktu Unix saat ini dalam milidetik. Operasi ini menggunakan ini stempel waktu untuk menyelesaikan pembaruan bersamaan untuk kunci. Jika kunci dalam konfigurasi komponen memiliki cap waktu yang lebih besar dari cap waktu dalam permintaan, maka permintaan akan gagal.

valueToMerge(Python:value_to_merge)

Objek konfigurasi yang akan digabungkan di lokasi yang Anda tentukan di keyPath. Untuk informasi selengkapnya, lihat Perbarui konfigurasi komponen.

Response

Operasi ini tidak memberikan informasi apa pun dalam tanggapannya.

SubscribeToConfigurationUpdate

Berlanggananlah untuk menerima notifikasi ketika konfigurasi komponen diperbarui. Ketika Anda berlangganan kunci, Anda akan menerima notifikasi ketika setiap anak dari kunci tersebut melakukan 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: ConfigurationUpdateEvents

Permintaan

Permintaan operasi ini memiliki parameter berikut:

componentName(Python:component_name)

(Opsional) Nama komponen.

Default untuk nama komponen yang membuat permintaan.

keyPath(Python:key_path)

Path kunci untuk nilai konfigurasi yang akan dijadikan langganan. Tentukan daftar di mana setiap entri adalah kunci untuk satu tingkat dalam objek konfigurasi. Sebagai contoh, tentukan ["mqtt", "port"] untuk mendapatkan nilai port dalam konfigurasi berikut.

{ "mqtt": { "port": 443 } }

Untuk berlangganan pembaruan untuk semua nilai dalam konfigurasi komponen, tentukan daftar kosong.

Response

Tanggapan operasi ini memiliki informasi berikut:

messages

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

configurationUpdateEvent(Python:configuration_update_event)

Peristiwa pembaruan konfigurasi. Objek ini, ConfigurationUpdateEvent, berisi informasi berikut:

componentName(Python:component_name)

Nama komponen.

keyPath(Python:key_path)

Path kunci untuk nilai konfigurasi yang diperbarui.

SubscribeToValidateConfigurationUpdates

Berlanggananlah untuk menerima notifikasi sebelum konfigurasi komponen diperbarui. Hal ini memungkinkan komponen memvalidasi pembaruan konfigurasinya sendiri. Gunakan operasi SendConfigurationValidityReport untuk memberitahu nukleus apakah konfigurasi tersebut valid atau tidak.

penting

Deployment lokal tidak menotifikasi komponen tentang 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: ValidateConfigurationUpdateEvents

Permintaan

Operasi ini tidak memiliki parameter apa pun.

Response

Tanggapan operasi ini memiliki informasi berikut:

messages

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

validateConfigurationUpdateEvent(Python:validate_configuration_update_event)

Peristiwa pembaruan konfigurasi. Objek ini, ValidateConfigurationUpdateEvent, berisi informasi berikut:

deploymentId(Python:deployment_id)

ID deployment AWS IoT Greengrass yang memperbarui komponen.

configuration

Objek yang berisi konfigurasi baru.

SendConfigurationValidityReport

Beritahu nukleus apakah pembaruan konfigurasi komponen ini valid atau tidak. Deployment tersebut gagal jika Anda memberitahu nukleus bahwa konfigurasi baru tidak valid. Gunakan operasi SubscribeToValidateConfigurationUpdates untuk berlangganan untuk memvalidasi pembaruan konfigurasi.

Jika komponen tidak menanggapi notifikasi pembaruan konfigurasi yang tervalidasi, inti akan menunggu sejumlah waktu yang Anda tentukan dalam kebijakan validasi konfigurasi deployment. Setelah batas waktu itu, nukleus akan melanjutkan deployment. Batas waktu validasi komponen default adalah 20 detik. Untuk informasi selengkapnya, lihatBuat deploymentdanDeploymentConfigurationValidationPolicyobjek yang dapat Anda berikan saat Anda meneleponCreateDeploymentoperasi.

Permintaan

Permintaan operasi ini memiliki parameter berikut:

configurationValidityReport(Python:configuration_validity_report)

Laporan tersebut yang memberitahu inti apakah pembaruan konfigurasi valid atau tidak. Objek ini, ConfigurationValidityReport, berisi informasi berikut:

status

Status validitas. Enum ini, ConfigurationValidityStatus, memiliki nilai-nilai berikut:

  • ACCEPTED – Konfigurasi ini valid dan nukleus dapat menerapkannya pada komponen ini.

  • REJECTED – Konfigurasi ini tidak valid dan deployment ini gagal.

deploymentId(Python:deployment_id)

ID deployment AWS IoT Greengrass yang meminta pembaruan konfigurasi.

message

(Opsional) Pesan yang melaporkan mengapa konfigurasi tidak valid.

Response

Operasi ini tidak memberikan informasi apa pun dalam tanggapannya.