Panduan pemecahan masalah pengindeksan armada - AWS IoT Core

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

Panduan pemecahan masalah pengindeksan armada

Memecahkan masalah kueri agregasi untuk layanan pengindeksan armada

Jika Anda mengalami kesalahan jenis ketidakcocokan, Anda dapat menggunakan CloudWatch Log untuk memecahkan masalah. CloudWatch Log harus diaktifkan sebelum log ditulis oleh layanan Pengindeksan Armada. Untuk informasi selengkapnya, lihat Monitor AWS IoT menggunakan CloudWatch Log.

Untuk membuat kueri agregasi pada bidang yang tidak dikelola, Anda harus menentukan bidang yang Anda tentukan dalam customFields argumen yang diteruskan ke atau. UpdateIndexingConfiguration update-indexing-configuration Jika nilai bidang tidak konsisten dengan tipe data bidang yang dikonfigurasi, nilai ini diabaikan saat Anda melakukan kueri agregasi.

Jika bidang tidak dapat diindeks karena jenis yang tidak cocok, layanan Pengindeksan Armada akan mengirimkan log kesalahan ke Log. CloudWatch Log kesalahan berisi nama bidang, nilai yang tidak dapat dikonversi, dan nama benda untuk perangkat. Berikut ini adalah contoh log kesalahan:

{ "timestamp": "2017-02-20 20:31:22.932", "logLevel": "ERROR", "traceId": "79738924-1025-3a00-a669-7bec69f7f07a", "accountId": "000000000000", "status": "SucceededWithIssues", "eventType": "IndexingCustomFieldFailed", "thingName": "thing0", "failedCustomFields": [ { "Name": "attributeName1", "Value": "apple", "ExpectedType": "String" }, { "Name": "attributeName2", "Value": "2", "ExpectedType": "Boolean" } ] }

Jika perangkat telah terputus selama kurang lebih satu jam, timestamp nilai status konektivitas mungkin hilang. Untuk sesi persisten, nilainya mungkin hilang setelah klien terputus lebih lama dari yang dikonfigurasi time-to-live (TTL) untuk sesi persisten. Data status konektivitas diindeks hanya untuk koneksi di mana ID klien memiliki nama benda yang cocok. (ID klien adalah nilai yang digunakan untuk menghubungkan perangkat ke AWS IoT Core.)

Memecahkan masalah konfigurasi pengindeksan armada

Tidak dapat menurunkan versi konfigurasi pengindeksan armada

Menurunkan konfigurasi pengindeksan armada tidak didukung saat Anda ingin menghapus sumber data yang terkait dengan metrik armada atau grup dinamis.

Misalnya, jika konfigurasi pengindeksan Anda memiliki data registri, data bayangan, dan data konektivitas, dan metrik armada ada dengan kuerithingName:TempSensor* AND shadow.desired.temperature>80, memperbarui konfigurasi pengindeksan untuk menyertakan hanya data registri akan mengakibatkan kesalahan.

Memodifikasi bidang kustom yang digunakan oleh metrik armada yang ada tidak didukung.

Tidak dapat memperbarui konfigurasi pengindeksan karena metrik armada atau grup dinamis yang tidak kompatibel

Jika Anda tidak dapat memperbarui konfigurasi pengindeksan karena metrik armada atau grup dinamis yang tidak kompatibel, hapus metrik armada atau grup dinamis yang tidak kompatibel sebelum memperbarui konfigurasi pengindeksan.

Memecahkan masalah pengindeksan lokasi dan geoquery

Untuk memecahkan masalah kesalahan jenis yang tidak cocok dalam pengindeksan lokasi dan geoquery, Anda dapat mengaktifkan log. CloudWatch Untuk informasi lebih lanjut tentang cara memantau AWS IoT penggunaan CloudWatch, ikuti step-by-step panduan ini.

Saat Anda mengindeks data lokasi menggunakan geoquery, bidang lokasi yang Anda tentukan geoLocations harus cocok dengan bidang lokasi yang Anda berikan. UpdateIndexingConfiguration Jika ada ketidakcocokan, pengindeksan armada mengirimkan kesalahan tipe yang tidak cocok ke. CloudWatch Log kesalahan berisi nama bidang, nilai yang tidak dapat dikonversi, dan nama benda untuk perangkat.

Berikut ini adalah contoh log kesalahan:

{ "timestamp": "2023-11-09 01:39:43.466", "logLevel": "ERROR", "traceId": "79738924-1025-3a00-a669-7bec69f7f07a", "accountId": "123456789012", "status": "Failure", "eventType": "IndexingGeoLocationFieldFailed", "thingName": "thing0", "failedGeolocationFields": [ { "Name": "attributeName1", "Value": "apple", "ExpectedType": "Geopoint" } ], "reason": "failed to index the field because it could not be converted to one of the expected geoLocation formats." }

Untuk informasi selengkapnya, lihat Pengindeksan data lokasi.

Pemecahan masalah metrik armada

Tidak dapat melihat titik data di CloudWatch

Jika Anda dapat membuat metrik armada tetapi Anda tidak dapat melihat titik data CloudWatch, kemungkinan Anda tidak memiliki sesuatu yang memenuhi kriteria string kueri.

Lihat contoh perintah ini tentang cara membuat metrik armada:

aws iot create-fleet-metric --metric-name "example_FM" --query-string "thingName:TempSensor* AND attributes.temperature>80" --period 60 --aggregation-field "attributes.temperature" --aggregation-type name=Statistics,values=count

Jika Anda tidak memiliki sesuatu yang memenuhi kriteria string kueri--query-string "thingName:TempSensor* AND attributes.temperature>80":

  • Denganvalues=count, Anda akan dapat membuat metrik armada dan akan ada titik data untuk ditampilkan CloudWatch. Titik data dari nilai count selalu 0.

  • Dengan values selain itucount, Anda akan dapat membuat metrik armada tetapi Anda tidak akan melihat metrik armada CloudWatch dan tidak akan ada titik data untuk ditampilkan CloudWatch.