Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial memulai
Tutorial ini menunjukkan cara menggunakan pengindeksan armada untuk meng indeks data lokasi Anda. Untuk kesederhanaan, Anda membuat sesuatu untuk mewakili perangkat Anda dan menyimpan data lokasi dalam bayangan bernama, memperbarui konfigurasi pengindeksan benda untuk pengindeksan lokasi, dan menjalankan contoh geoquery untuk mencari perangkat dalam batas radial.
Tutorial ini membutuhkan waktu sekitar 15 menit untuk menyelesaikannya.
Dalam topik ini:
Prasyarat
-
Instal versi terbaru dari AWS CLI.
-
Biasakan diri Anda dengan pengindeksan Lokasi dan geoquery, Mengelola pengindeksan benda, dan sintaks Kueri.
Buat benda dan bayangan
Anda membuat sesuatu untuk mewakili perangkat Anda, dan bayangan bernama untuk menyimpan data lokasinya (koordinat 47.61564, -122.33584).
-
Jalankan perintah berikut untuk membuat benda Anda yang mewakili sepeda Anda bernama Bike-1. Untuk informasi selengkapnya tentang cara membuat sesuatu menggunakan AWS CLI, lihat create-thing from AWS CLI Reference.
aws iot create-thing --thing-name "Bike-1" \ --attribute-payload '{"attributes": {"model":"OEM-2302-12", "battery":"35", "acqDate":"06/09/23"}}'Output dari perintah ini dapat terlihat seperti berikut:
{ "thingName": "Bike-1", "thingArn": "arn:aws:iot:us-east-1:123456789012:thing/Bike-1", "thingId": "df9cf01d-b0c8-48fe-a2e2-e16cff6b23df" } -
Jalankan perintah berikut untuk membuat bayangan bernama untuk menyimpan Bike-1 data lokasi (koordinat 47.61564, -122.33584). Untuk informasi selengkapnya tentang cara membuat bayangan bernama menggunakan AWS CLI, lihat update-thing- shadow dari Referensi. AWS CLI
aws iot-data update-thing-shadow \ --thing-name Bike-1 \ --shadow-name Bike1-shadow \ --cli-binary-format raw-in-base64-out \ --payload '{"state":{"reported":{"coordinates":{"lat": 47.6153, "lon": -122.3333}}}}' \ "output.txt" \Perintah ini tidak menghasilkan output apa pun. Untuk melihat bayangan bernama yang Anda buat, Anda dapat menjalankan perintah list-named- shadows-for-thing CLI.
aws iot-data list-named-shadows-for-thing --thing-name Bike-1Output dari perintah ini dapat terlihat seperti berikut:
{ "results": [ "Bike1-shadow" ], "timestamp": 1699574309 }
Perbarui konfigurasi pengindeksan sesuatu
Untuk mengindeks data lokasi Anda, Anda harus memperbarui konfigurasi pengindeksan benda Anda untuk menyertakan data lokasi. Karena data lokasi Anda disimpan dalam bayangan bernama dalam tutorial ini, setel thingIndexingMode menjadi REGISTRY (pada persyaratan minimum), disetel namedShadowIndexingMode menjadiON, dan tambahkan data lokasi Anda ke konfigurasi. Dalam contoh ini, Anda harus menambahkan nama bayangan bernama Anda dan jalur data lokasi bayangan kefilter.
-
Jalankan perintah untuk memperbarui konfigurasi pengindeksan Anda untuk pengindeksan lokasi.
aws iot update-indexing-configuration --cli-input-json '{ "thingIndexingConfiguration": { "thingIndexingMode": "REGISTRY", "thingConnectivityIndexingMode": "OFF", "deviceDefenderIndexingMode": "OFF", "namedShadowIndexingMode": "ON", "filter": { "namedShadowNames": ["Bike1-shadow"], "geoLocations":[{ "name":"shadow.name.Bike1-shadow.reported.coordinates" }] }, "customFields": [ { "name":"attributes.battery", "type":"Number"}] } }'Perintah tidak menghasilkan output apa pun. Anda mungkin perlu menunggu sebentar sampai pembaruan selesai. Untuk memeriksa status, jalankan perintah describe-index CLI. Jika Anda melihat
indexStatusshows:ACTIVE, pembaruan pengindeksan item Anda selesai. -
Jalankan perintah untuk memverifikasi konfigurasi pengindeksan Anda. Langkah ini bersifat opsional.
aws iot get-indexing-configurationOutputnya dapat terlihat seperti berikut:
{ "thingIndexingConfiguration": { "thingIndexingMode": "REGISTRY", "thingConnectivityIndexingMode": "OFF", "deviceDefenderIndexingMode": "OFF", "namedShadowIndexingMode": "ON", "managedFields": [ { "name": "shadow.name.*.hasDelta", "type": "Boolean" }, { "name": "registry.version", "type": "Number" }, { "name": "registry.thingTypeName", "type": "String" }, { "name": "registry.thingGroupNames", "type": "String" }, { "name": "shadow.name.*.version", "type": "Number" }, { "name": "thingName", "type": "String" }, { "name": "thingId", "type": "String" } ], "customFields": [ { "name": "attributes.battery", "type": "Number" } ], "filter": { "namedShadowNames": [ "Bike1-shadow" ], "geoLocations": [ { "name": "shadow.name.Bike1-shadow.reported.coordinates", "order": "LatLon" } ] } }, "thingGroupIndexingConfiguration": { "thingGroupIndexingMode": "OFF" } }
Jalankan geoquery
Sekarang Anda telah memperbarui konfigurasi pengindeksan barang Anda untuk menyertakan data lokasi. Cobalah untuk membuat beberapa geoquery dan menjalankannya untuk melihat apakah Anda bisa mendapatkan hasil pencarian yang Anda inginkan. Sebuah geoquery harus mengikuti sintaks Sintaks kueri Query. Anda dapat menemukan beberapa contoh geoquery yang berguna diContoh geoquery.
Dalam contoh perintah berikut, Anda menggunakan geoquery shadow.name.Bike1-shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km untuk mencari perangkat yang berada dalam jarak radial 15,5 km dari titik pusat dengan koordinat (47.6204, -122.3491).
aws iot search-index --query-string "shadow.name.Bike1-shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km"
Karena Anda memiliki perangkat yang terletak di koordinat “lat”: 47.6153, “lon”: -122.3333, yang berada dalam jarak 15,5 km dari titik pusat, Anda harus dapat melihat perangkat ini () di output. Bike-1 Outputnya dapat terlihat seperti berikut:
{ "things": [ { "thingName": "Bike-1", "thingId": "df9cf01d-b0c8-48fe-a2e2-e16cff6b23df", "attributes": { "acqDate": "06/09/23", "battery": "35", "model": "OEM-2302-12" }, "shadow": "{\"reported\":{\"coordinates\":{\"lat\":47.6153,\"lon\":-122.3333}},\"metadata\":{\"reported\":{\"coordinates\":{\"lat\":{\"timestamp\":1699572906},\"lon\":{\"timestamp\":1699572906}}}},\"hasDelta\":false,\"version\":1}" } ] }
Lihat informasi yang lebih lengkap di Pengindeksan data lokasi.