Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengelola pengindeksan benda
Indeks yang dibuat untuk semua hal Anda adalahAWS_Things. Anda dapat mengontrol apa yang akan diindeks dari sumber data berikut: data AWS IoT
registri, data AWS IoT Device Shadow, data AWS IoT konektivitas, dan data AWS IoT Device Defender pelanggaran.
Dalam topik ini:
Mengaktifkan pengindeksan benda
Anda menggunakan perintah update-indexing-configuration CLI atau operasi UpdateIndexingConfiguration API untuk membuat AWS_Things indeks dan mengontrol konfigurasinya. Dengan menggunakan parameter --thing-indexing-configuration (thingIndexingConfiguration), Anda mengontrol jenis data (misalnya, registri, bayangan, data konektivitas perangkat, dan data pelanggaran Device Defender) yang diindeks.
--thing-indexing-configurationParameter mengambil string dengan struktur berikut:
{ "thingIndexingMode": "OFF"|"REGISTRY"|"REGISTRY_AND_SHADOW", "thingConnectivityIndexingMode": "OFF"|"STATUS", "deviceDefenderIndexingMode": "OFF"|"VIOLATIONS", "namedShadowIndexingMode": "OFF"|"ON", "managedFields": [ { "name": "string", "type": "Number"|"String"|"Boolean" }, ... ], "customFields": [ { "name": "string", "type": "Number"|"String"|"Boolean" }, ... ], "filter": { "namedShadowNames": [ "string" ], "geoLocations": [ { "name": "String", "order": "LonLat|LatLon" } ], "connectivity": { "includeSocketInformation": [ "GET_THING_CONNECTIVITY_DATA" ] } } }
Mode pengindeksan benda
Anda dapat menentukan mode pengindeksan hal yang berbeda dalam konfigurasi pengindeksan Anda, tergantung pada sumber data apa yang ingin Anda indeks dan cari perangkat dari:
-
thingIndexingMode: Mengontrol apakah registri atau bayangan diindeks. KetikathingIndexingModedisetel menjadiOFF, pengindeksan benda dinonaktifkan.
-
thingConnectivityIndexingMode: Menentukan apakah data konektivitas benda diindeks. Ini perlu diaktifkan untuk mendapatkan informasi status konektivitas dalam SearchIndex kueri atau untuk menggunakan GetThingConnectivityData API. Resp GetThingConnectivityData ons API juga akan menyertakan informasi soket jika ini diaktifkan di filter danincludeSocketInformationbendera adatruedi permintaan GetThingConnectivityData API.
-
deviceDefenderIndexingMode: Menentukan apakah data pelanggaran Device Defender diindeks. -
namedShadowIndexingMode: Menentukan apakah data bayangan bernama diindeks. Untuk memilih bayangan bernama untuk ditambahkan ke konfigurasi pengindeksan armada Anda, setelnamedShadowIndexingModemenjadiONdan tentukan nama bayangan bernama Anda difilter.
Tabel di bawah ini menunjukkan nilai yang valid untuk setiap mode pengindeksan dan sumber data yang diindeks untuk setiap nilai.
| Atribut | Nilai valid | Registri | Bayangan | Konektivitas | Pelanggaran DD | Dinamakan bayangan |
|---|---|---|---|---|---|---|
thingIndexingMode |
MATI | |||||
| REGISTRI | ✓ | |||||
| REGISTRY_DAN_BAYANGAN | ✓ | ✓ | ||||
thingConnectivityIndexingMode |
Tidak ditentukan. | |||||
| MATI | ||||||
| STATUS | ✓ | |||||
deviceDefenderIndexingMode |
Tidak ditentukan. | |||||
| MATI | ||||||
| PELANGGARAN | ✓ | |||||
namedShadowIndexingMode |
Tidak ditentukan. | |||||
| MATI | ||||||
| PADA | ✓ |
Bidang terkelola dan bidang khusus
Bidang yang dikelola
Bidang terkelola berisi data yang terkait dengan hal-hal, grup benda, bayangan perangkat, konektivitas perangkat, dan pelanggaran Device Defender. AWS IoT mendefinisikan tipe data di bidang yang dikelola. Anda menentukan nilai dari setiap bidang yang dikelola saat Anda membuat AWS IoT
sesuatu. Misalnya, nama benda, grup benda, dan deskripsi benda semuanya adalah bidang yang dikelola. Indeks pengindeksan armada menampilkan bidang yang dikelola berdasarkan mode pengindeksan yang Anda tentukan. Bidang yang dikelola tidak dapat diubah atau muncul dicustomFields.
Bidang kustom
Anda dapat menggabungkan atribut, data Device Shadow, dan data pelanggaran Device Defender dengan membuat bidang khusus untuk mengindeksnya. A customFields tribut adalah daftar nama bidang dan pasangan tipe data. Anda dapat melakukan kueri agregasi berdasarkan tipe data. Mode pengindeksan yang Anda pilih memengaruhi bidang dapat ditentukan dicustomFields. Misalnya, jika Anda menentukan mode peng REGISTRY indeksan, Anda tidak dapat menentukan bidang kustom dari bayangan benda. Anda dapat menggunakan perintah update-indexing-configuration CLI untuk membuat atau memperbarui bidang kustom (lihat contoh perintah dalam Memper barui contoh konfigurasi pengindeksan). Untuk informasi selengkapnya, lihat Bid ang kustom.
Filter pengindeksan
Filter pengindeksan menyediakan pilihan tambahan untuk bayangan bernama, geolokasi, dan data konektivitas.
namedShadowNames
Untuk menambahkan bayangan bernama ke konfigurasi pengindeksan armada Anda, set namedShadowIndexingMode el menjadi ON dan tentukan nama bayangan bernama Anda di namedShadowNames filter.
Contoh
"filter": { "namedShadowNames": [ "namedShadow1", "namedShadow2" ] }
geoLocations
Untuk menambahkan data geolokasi ke konfigurasi pengindeksan armada Anda:
-
Jika data geolokasi Anda disimpan dalam bayangan klasik (tanpa nama), set
thingIndexingModeel menjadi REGISTRY_AND_SHADOW, dan tentukan data geolokasi Anda di filter.geoLocationsContoh filter di bawah ini menentukan objek GeoLocation dalam bayangan klasik (tanpa nama):
"filter": { "geoLocations": [ { "name": "shadow.reported.location", "order": "LonLat" } ] }
-
Jika data geolokasi Anda disimpan dalam bayangan bernama, setel
namedShadowIndexingModemenjadi ON, tambahkan nama bayangan dinamedShadowNamesfilter, dan tentukan data geolokasi Anda digeoLocationsfilter.Contoh filter di bawah ini menentukan objek GeoLocation dalam bayangan bernama (
nameShadow1):"filter": { "namedShadowNames": [ "namedShadow1" ], "geoLocations": [ { "name": "shadow.name.namedShadow1.reported.location", "order": "LonLat" } ] }
connectivity
-
Untuk menyertakan informasi soket (alamat IP sumber, alamat IP target, port sumber, port target, dan ID titik akhir VPC) dalam
GetThingConnectivityDatarespons, gunakanincludeSocketInformationopsi dalam filter konektivitas seperti yang ditunjukkan pada contoh berikut. Anda juga harus mengaturincludeSocketInformationparameter ketruesaat memanggilGetThingConnectivityDataAPI. Untuk membatasi penelepon tertentu mengakses informasi soket, Anda harus secara eksplisit menentukan ini dalam kebijakan IAM mereka dengan menyetel kunci konteksiot:IncludeSocketInformationkondisi ke.falsecatatan
Opsi untuk menyertakan informasi soket hanya didukung untuk
GetThingConnectivityDatarespons dan bukan untukSearchIndexatau API pengindeksan armada lainnya."filter": { "connectivity": { "includeSocketInformation": [ "GET_THING_CONNECTIVITY_DATA" ] } }Untuk menonaktifkan pengindeksan informasi soket, Anda harus
includeSocketInformationmengatur filter konektivitas ke array kosong seperti yang ditunjukkan pada contoh di bawah ini.catatan
Dalam
UpdateIndexingConfigurationpermintaan, jika pengindeksan konektivitas diaktifkan dan filter konektivitas tidak dikonfigurasi atau tidakincludeSocketInformationditentukan atau nol, nilai filter konektivitas sebelumnya dipertahankan saat memperbarui konfigurasi pengindeksan.Contoh untuk menonaktifkan pengindeksan informasi soket
"filter": { "connectivity": { "includeSocketInformation": [ ] } }
Untuk informasi selengkapnya, lihat IndexingFilter dari Referensi AWS IoT API.
Memperbarui contoh konfigurasi pengindeksan
Untuk memperbarui konfigurasi pengindeksan Anda, gunakan perintah AWS IoT update-indexing-configuration CLI. Contoh berikut menunjukkan cara menggunakanupdate-indexing-configuration.
Sintaks singkat:
aws iot update-indexing-configuration --thing-indexing-configuration \ 'thingIndexingMode=REGISTRY_AND_SHADOW, deviceDefenderIndexingMode=VIOLATIONS, namedShadowIndexingMode=ON,thingConnectivityIndexingMode=STATUS, filter={namedShadowNames=[namedShadow1],geoLocations=[{name=shadow.name.namedShadow1.reported.location,order=LonLat}],connectivity={includeSocketInformation=[GET_THING_CONNECTIVITY_DATA]}}, customFields=[{name=attributes.version,type=Number}, {name=shadow.name.namedShadow1.desired.DefaultDesired, type=String}, {name=shadow.desired.power, type=Boolean}, {name=deviceDefender.securityProfile1.NUMBER_VALUE_BEHAVIOR.lastViolationValue.number, type=Number}]'
Sintaks JSON:
aws iot update-indexing-configuration --cli-input-json \ '{ "thingIndexingConfiguration": { "thingIndexingMode": "REGISTRY_AND_SHADOW", "thingConnectivityIndexingMode": "STATUS", "deviceDefenderIndexingMode": "VIOLATIONS", "namedShadowIndexingMode": "ON", "filter": { "namedShadowNames": ["namedShadow1"], "geoLocations": [{"name": "shadow.name.namedShadow1.reported.location", "order": "LonLat"}], "connectivity": {"includeSocketInformation": ["GET_THING_CONNECTIVITY_DATA"]}}, "customFields": [ { "name": "shadow.desired.power", "type": "Boolean" }, {"name": "attributes.version", "type": "Number"}, {"name": "shadow.name.namedShadow1.desired.DefaultDesired", "type": "String"}, {"name": "deviceDefender.securityProfile1.NUMBER_VALUE_BEHAVIOR.lastViolationValue.number", "type": "Number"} ] } }'
Perintah ini tidak menghasilkan output apa pun.
Untuk memeriksa status indeks benda, jalankan perintah describe-index CLI:
aws iot describe-index --index-name "AWS_Things"
Output dari describe-index perintah terlihat seperti berikut:
{ "indexName": "AWS_Things", "indexStatus": "ACTIVE", "schema": "MULTI_INDEXING_MODE" }
catatan
Diperlukan waktu beberapa saat untuk pengindeksan armada untuk memperbarui indeks armada. Kami sarankan menunggu sampai indexStatus pertunjukan AKTIF sebelum menggunakannya. Anda dapat memiliki nilai yang berbeda di bidang skema tergantung pada sumber data apa yang telah Anda konfigurasi. Untuk informasi selengkapnya, lihat Men jelaskan indeks sesuatu.
Untuk mendapatkan detail konfigurasi pengindeksan barang Anda, jalankan perintah get-indexing-configuration CLI:
aws iot get-indexing-configuration
Output dari get-indexing-configuration perintah terlihat seperti berikut:
{ "thingIndexingConfiguration": { "thingIndexingMode": "REGISTRY_AND_SHADOW", "thingConnectivityIndexingMode": "STATUS", "deviceDefenderIndexingMode": "VIOLATIONS", "namedShadowIndexingMode": "ON", "managedFields": [ { "name": "connectivity.keepAliveDuration", "type": "Number" }, { "name": "connectivity.version", "type": "Number" }, { "name": "deviceDefender.*.*.metricName", "type": "String" }, { "name": "connectivity.connected", "type": "Boolean" }, { "name": "shadow.version", "type": "Number" }, { "name": "deviceDefender.*.*.lastViolationTime", "type": "Number" }, { "name": "deviceDefender.*.*.inViolation", "type": "Boolean" }, { "name": "thingName", "type": "String" }, { "name": "deviceDefender.version", "type": "Number" }, { "name": "shadow.name.*.version", "type": "Number" }, { "name": "registry.version", "type": "Number" }, { "name": "connectivity.sessionExpiry", "type": "Number" }, { "name": "registry.thingTypeName", "type": "String" }, { "name": "deviceDefender.violationCount", "type": "Number" }, { "name": "connectivity.timestamp", "type": "Number" }, { "name": "connectivity.clientId", "type": "String" }, { "name": "thingId", "type": "String" }, { "name": "shadow.name.*.hasDelta", "type": "Boolean" }, { "name": "registry.thingGroupNames", "type": "String" }, { "name": "shadow.hasDelta", "type": "Boolean" }, { "name": "connectivity.cleanSession", "type": "Boolean" }, { "name": "connectivity.disconnectReason", "type": "String" } ], "customFields": [ { "name": "attributes.version", "type": "Number" }, { "name": "shadow.desired.power", "type": "Boolean" }, { "name": "shadow.name.namedShadow1.desired.DefaultDesired", "type": "String" }, { "name": "deviceDefender.securityProfile1.NUMBER_VALUE_BEHAVIOR.lastViolationValue.number", "type": "Number" } ], "filter": { "namedShadowNames": [ "namedShadow1" ], "geoLocations": [ { "name": "shadow.name.namedShadow1.reported.location", "order": "LonLat" } ], "connectivity": { "includeSocketInformation": [ "GET_THING_CONNECTIVITY_DATA" ] } } }, "thingGroupIndexingConfiguration": { "thingGroupIndexingMode": "OFF" } }
Untuk memperbarui bidang khusus, Anda dapat menjalankan update-indexing-configuration perintah. Contohnya adalah sebagai berikut:
aws iot update-indexing-configuration --thing-indexing-configuration 'thingIndexingMode=REGISTRY_AND_SHADOW,customFields=[{name=attributes.version,type=Number},{name=attributes.color,type=String},{name=shadow.desired.power,type=Boolean},{name=shadow.desired.intensity,type=Number}]'
Perintah ini ditambahkan shadow.desired.intensity ke konfigurasi pengindeksan.
catatan
Memperbarui konfigurasi pengindeksan bidang kustom akan mengganti semua bidang kustom yang ada. Pastikan untuk menentukan semua bidang khusus saat meneleponupdate-indexing-configuration.
Setelah indeks dibangun kembali, Anda dapat menggunakan kueri agregasi pada bidang yang baru ditambahkan, data registri pencarian, data bayangan, dan data status konektivitas benda.
Saat mengubah mode pengindeksan, pastikan semua bidang kustom Anda valid dengan menggunakan mode pengindeksan baru. Misalnya, jika Anda mulai menggunakan REGISTRY_AND_SHADOW mode dengan bidang khusus dipanggilshadow.desired.temperature, Anda harus menghapus bidang ku shadow.desired.temperature stom sebelum mengubah mode pengindeksan menjadiREGISTRY. Jika konfigurasi pengindeksan berisi bidang khusus yang tidak diindeks oleh mode pengindeksan, pembaruan gagal.
Menggambarkan indeks sesuatu
Perintah berikut menunjukkan cara menggunakan perintah describe-index CLI untuk mengambil status indeks benda saat ini.
aws iot describe-index --index-name "AWS_Things"
Respons perintah dapat terlihat seperti berikut:
{ "indexName": "AWS_Things", "indexStatus": "BUILDING", "schema": "REGISTRY_AND_SHADOW_AND_CONNECTIVITY_STATUS" }
Pertama kali Anda melakukan pengindeksan armada, buat AWS IoT indeks Anda. Ketika indexStatus berada di BUILDING negara bagian, Anda tidak dapat menanyakan indeks. Indeks schema for the things menunjukkan jenis data (REGISTRY_AND_SHADOW_AND_CONNECTIVITY_STATUS) mana yang diindeks.
Mengubah konfigurasi indeks Anda menyebabkan indeks dibangun kembali. Selama proses ini, indexStatus adalahREBUILDING. Anda dapat menjalankan kueri pada data dalam indeks hal-hal saat sedang dibangun kembali. Misalnya, jika Anda mengubah konfigurasi indeks dari REGISTRY ke REGISTRY_AND_SHADOW saat indeks sedang dibangun kembali, Anda dapat menanyakan data registri, termasuk pembaruan terbaru. Namun, Anda tidak dapat menanyakan data bayangan sampai pembangunan kembali selesai. Jumlah waktu yang dibutuhkan untuk membangun atau membangun kembali indeks tergantung pada jumlah data.
Anda dapat melihat nilai yang berbeda di bidang skema tergantung pada sumber data yang telah Anda konfigurasi. Tabel berikut menunjukkan nilai skema yang berbeda dan deskripsi yang sesuai:
| Skema | Deskripsi |
|---|---|
| MATI | Tidak ada sumber data yang dikonfigurasi atau diindeks. |
| REGISTRI | Data registri diindeks. |
| REGISTRY_DAN_BAYANGAN | Data registri dan data bayangan (klasik) yang tidak disebutkan namanya diindeks. |
| REGISTRY_DAN_KONEKTIVITAS | Data registri dan data konektivitas diindeks. |
| REGISTRY_DAN_SHADOW_DAN_CONNECTIVITY_STATUS | Data registri, data bayangan (klasik) tanpa nama, dan data konektivitas diindeks. |
| MULTI_MODE PENGINDEKSAN | Data pelanggaran bayangan bernama atau Device Defender diindeks, selain registri, bayangan tanpa nama (klasik) atau data konektivitas. |
Mengkueri indeks sesuatu
Gunakan perintah search-index CLI untuk menanyakan data dalam indeks.
aws iot search-index --index-name "AWS_Things" --query-string "thingName:mything*"
{ "things": [ { "thingName": "mything1", "thingGroupNames": ["mygroup1"], "thingId": "a4b9f759-b0f2-4857-8a4b-967745ed9f4e", "attributes": { "attribute1": "abc" }, "connectivity": { "connected": false, "timestamp": 1556649874716, "disconnectReason": "CONNECTION_LOST", "clientId": "mything1", "keepAliveDuration": 60, "cleanSession": false, "sessionExpiry": 3600 } }, { "thingName": "mything2", "thingTypeName": "MyThingType", "thingGroupNames": ["mygroup1", "mygroup2"], "thingId": "01014ef9-e97e-44c6-985a-d0b06924f2af", "attributes": { "model": "1.2", "country": "usa" }, "shadow": { "desired": { "location": "new york", "myvalues": [3, 4, 5] }, "reported": { "location": "new york", "myvalues": [1, 2, 3], "stats": { "battery": 78 } }, "metadata": { "desired": { "location": { "timestamp": 123456789 }, "myvalues": { "timestamp": 123456789 } }, "reported": { "location": { "timestamp": 34535454 }, "myvalues": { "timestamp": 34535454 }, "stats": { "battery": { "timestamp": 34535454 } } } }, "version": 10, "timestamp": 34535454 }, "connectivity": { "connected": true, "timestamp": 1556649855046, "clientId": "mything2", "keepAliveDuration": 60, "cleanSession": true } } ], "nextToken": "AQFCuvk7zZ3D9pOYMbFCeHbdZ+h=G" }
Dalam respons JSON, "connectivity" (sebagaimana diaktifkan oleh thingConnectivityIndexingMode=STATUS pengaturan) menyediakan status koneksi, stempel waktu, alasan pemutusan hubungan, ID klien, durasi tetap hidup, tanda sesi bersih, dan kedaluwarsa sesi untuk perangkat. Perangkat "mything1" terputus (false) pada waktu POSIX 1556649874716 karenaCONNECTION_LOST. Untuk informasi selengkapnya tentang alasan pemutusan hubungan, lihat Per istiwa siklus hidup.
"connectivity": { "connected": false, "timestamp": 1556649874716, "disconnectReason": "CONNECTION_LOST", "clientId": "mything1", "keepAliveDuration": 60, "cleanSession": false, "sessionExpiry": 3600 }
Perangkat "mything2" terhubung (true) pada waktu POSIX: 1556649855046
"connectivity": { "connected": true, "timestamp": 1556649855046, "clientId": "mything2", "keepAliveDuration": 60, "cleanSession": true }
Stempel waktu diberikan dalam milidetik sejak zaman, jadi 1556649855046 mewakili 6:44:15.046 pada hari Selasa, 30 April 2019 (UTC).
penting
Jika perangkat tidak pernah terhubung ke IoT Core atau terputus selama lebih dari 1 jam sebelum pengindeksan armada thingConnectivityIndexingMode diaktifkan, respons akan mengatur connected bidang tanpa false rincian sesi tambahan.
Pembatasan dan batasan
Ini adalah batasan dan batasan untukAWS_Things.
- Bidang bayangan dengan tipe kompleks
-
Bidang bayangan diindeks hanya jika nilai bidang adalah tipe sederhana, seperti objek JSON yang tidak berisi array, atau array yang seluruhnya terdiri dari tipe sederhana. Tipe sederhana berarti string, angka, atau salah satu literal
trueataufalse. Misalnya, mengingat status bayangan berikut, nilai bidang"palette"tidak diindeks karena ini adalah array yang berisi item tipe kompleks. Nilai bidang"colors"diindeks karena setiap nilai dalam array adalah string.{ "state": { "reported": { "switched": "ON", "colors": [ "RED", "GREEN", "BLUE" ], "palette": [ { "name": "RED", "intensity": 124 }, { "name": "GREEN", "intensity": 68 }, { "name": "BLUE", "intensity": 201 } ] } } } - Nama bidang bayangan bersarang
-
Nama-nama bidang bayangan bersarang disimpan sebagai string yang dibatasi titik (.). Misalnya, diberikan dokumen bayangan:
{ "state": { "desired": { "one": { "two": { "three": "v2" } } } } }Nama bidang
threedisimpan sebagaidesired.one.two.three. Jika Anda juga memiliki dokumen bayangan, itu disimpan seperti ini:{ "state": { "desired": { "one.two.three": "v2" } } }Keduanya cocok dengan kueri untuk
shadow.desired.one.two.three:v2. Sebagai praktik terbaik, jangan gunakan titik dalam nama bidang bayangan. - Metadata bayangan
-
Bidang di bagian metadata bayangan diindeks, tetapi hanya jika bidang yang sesuai di
"state"bagian bayangan diindeks. (Dalam contoh sebelumnya,"palette"bidang di bagian metadata bayangan juga tidak diindeks.) - Perangkat yang tidak terdaftar
-
Pengindeksan armada tidak mengindeks data untuk perangkat yang tidak terdaftar. Hal-hal harus terdaftar di AWS IoT Registry dan harus menggunakan nama benda sebagai
clientIdsaat menghubungkan ke AWS IoT Core. - Bayangan yang tidak terdaftar
-
Jika Anda menggunakan UpdateThingShadow untuk membuat bayangan menggunakan nama benda yang belum terdaftar di AWS IoT akun Anda, bidang dalam bayangan ini tidak diindeks. Ini berlaku untuk bayangan klasik yang tidak disebutkan namanya dan bayangan bernama.
- Nilai numerik
-
Jika ada data registri atau bayangan yang dikenali oleh layanan sebagai nilai numerik, itu diindeks seperti itu. Anda dapat membentuk kueri yang melibatkan rentang dan operator perbandingan pada nilai numerik (misalnya,
"attribute.foo<5"atau"shadow.reported.foo:[75 TO 80]"). Untuk dikenali sebagai numerik, nilai data harus berupa nomor JSON tipe literal yang valid. Nilai dapat berupa bilangan bulat dalam kisaran -2^53... 2^53-1, titik mengambang presisi ganda dengan notasi eksponensial opsional, atau bagian dari array yang hanya berisi nilai-nilai ini. - Nilai nol
-
Nilai null tidak diindeks.
- Nilai maksimum
-
Jumlah maksimum bidang kustom untuk kueri agregasi adalah 5.
Jumlah maksimum persentil yang diminta untuk kueri agregasi adalah 100.
Otorisasi
Anda dapat menentukan indeks atau benda (untuk GetThingConnectivityData tindakan) sebagai Nama Sumber Daya Amazon (ARN) dalam tindakan AWS IoT kebijakan, sebagai berikut.
| Tindakan | Sumber daya |
|---|---|
|
|
Indeks ARN (misalnya, |
|
|
Indeks ARN (misalnya, |
|
|
Anda dapat memasukkan izin ini ke hal-hal tertentu. Gunakan tombol |
catatan
Jika Anda memiliki izin untuk menanyakan indeks armada, Anda dapat mengakses data hal-hal di seluruh armada.