

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

# Pengindeksan armada
<a name="iot-indexing"></a>

Anda dapat menggunakan pengindeksan armada untuk mengindeks, mencari, dan mengumpulkan data perangkat Anda dari sumber berikut: registri, [AWS IoT Device](thing-registry.md) [Shadow AWS IoT](iot-device-shadows.md), [AWS IoT konektivitas](life-cycle-events.md), [Katalog Paket Perangkat Lunak AWS IoT Manajemen Perangkat Lunak](software-package-catalog.md), dan pelanggaran. [AWS IoT Device Defender](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/what-is-device-defender.html) Anda dapat menanyakan sekelompok perangkat, dan statistik agregat pada catatan perangkat yang didasarkan pada kombinasi atribut perangkat yang berbeda, termasuk status, konektivitas, dan pelanggaran perangkat. Dengan pengindeksan armada, Anda dapat mengatur, menyelidiki, dan memecahkan masalah armada perangkat Anda.

Pengindeksan armada menyediakan kemampuan berikut.

## Mengelola pembaruan indeks
<a name="iot-indexing-manage-index-update"></a>

Anda dapat mengatur indeks armada untuk mengindeks pembaruan untuk grup hal Anda, pendaftar benda, bayangan perangkat, konektivitas perangkat, dan pelanggaran perangkat. Saat Anda mengaktifkan pengindeksan armada, AWS IoT buat indeks untuk hal-hal atau grup benda Anda. `AWS_Things`adalah indeks yang dibuat untuk semua hal Anda. `AWS_ThingGroups`adalah indeks yang berisi semua kelompok hal Anda. Setelah pengindeksan armada aktif, Anda dapat menjalankan kueri pada indeks Anda. Misalnya, Anda dapat menemukan semua perangkat yang genggam dan memiliki daya tahan baterai lebih dari 70 persen. AWS IoT memperbarui indeks secara terus menerus dengan data terbaru Anda. Untuk informasi selengkapnya, lihat [Mengelola pengindeksan armada](managing-fleet-index.md).

## Menanyakan status konektivitas untuk perangkat tertentu
<a name="querying-connectivity-status-for-specific-device"></a>

API ini menyediakan latensi rendah, akses throughput tinggi ke informasi konektivitas khusus perangkat terbaru. Untuk informasi selengkapnya, lihat [Status konektivitas perangkat.](https://docs.aws.amazon.com/iot/latest/developerguide/device-connectivity-status.html)

## Mencari di seluruh sumber data
<a name="iot-indexing-search-data-source"></a>

Anda dapat membuat string kueri berdasarkan [bahasa kueri](query-syntax.md) dan menggunakannya untuk mencari di seluruh sumber data. Anda juga perlu mengonfigurasi sumber data dalam pengaturan pengindeksan armada sehingga konfigurasi pengindeksan berisi sumber data yang ingin Anda cari. String kueri menjelaskan hal-hal yang ingin Anda temukan. Anda dapat membuat kueri dengan menggunakan bidang AWS terkelola, bidang khusus, dan atribut apa pun dari sumber data yang diindeks. Untuk informasi selengkapnya tentang sumber data yang mendukung pengindeksan armada, lihat [Mengelola pengindeksan hal](managing-index.md).

## Membuat kueri untuk data agregat
<a name="iot-indexing-query-aggregate-data"></a>

Anda dapat mencari data agregat dan mengembalikan statistik, persentil, kardinalitas, atau daftar hal-hal dengan kueri penelusuran tentang bidang tertentu. Anda dapat menjalankan agregasi pada bidang AWS terkelola atau atribut apa pun yang Anda konfigurasikan sebagai bidang kustom dalam pengaturan pengindeksan armada. Untuk informasi selengkapnya tentang kueri agregasi, lihat [Menanyakan data agregat](index-aggregate.md).

## Memantau data agregat dan membuat alarm dengan menggunakan metrik armada
<a name="iot-indexing-monitor-aggregate-date"></a>

Anda dapat menggunakan metrik armada untuk mengirim data agregat CloudWatch secara otomatis, menganalisis tren, dan membuat alarm untuk memantau status agregat armada Anda berdasarkan ambang batas yang telah ditentukan sebelumnya. Untuk informasi selengkapnya tentang metrik armada, lihat [Metrik armada](iot-fleet-metrics.md).

# Mengelola pengindeksan armada
<a name="managing-fleet-index"></a>

Pengindeksan armada mengelola dua jenis indeks untuk Anda: pengindeksan benda dan pengindeksan grup benda. 

## Pengindeksan hal
<a name="thing-index"></a>

Indeks yang dibuat untuk semua barang Anda disebut`AWS_Things`. Pengindeksan hal mendukung sumber data berikut: data [AWS IoT registri](thing-registry.md), data [AWS IoT Device Shadow](iot-device-shadows.md), data [AWS IoT konektivitas](life-cycle-events.md), dan data [AWS IoT Device Defender](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/what-is-device-defender.html)pelanggaran. Dengan menambahkan sumber data ini ke konfigurasi pengindeksan armada, Anda dapat mencari sesuatu, meminta data agregat, dan membuat grup benda dinamis dan metrik armada berdasarkan kueri penelusuran Anda.

**Registry** -AWS IoT menyediakan registri yang membantu Anda mengelola berbagai hal. Anda dapat menambahkan data registri ke konfigurasi pengindeksan armada untuk mencari perangkat berdasarkan nama benda, deskripsi, dan atribut registri lainnya. Untuk informasi selengkapnya tentang registri, lihat [Cara mengelola sesuatu dengan registri](thing-registry.md).

**Shadow** [-Layanan AWS IoT Device Shadow](iot-device-shadows.md) menyediakan bayangan yang membantu Anda menyimpan data status perangkat Anda. Pengindeksan hal mendukung bayangan klasik tanpa nama dan bayangan bernama. Untuk mengindeks bayangan bernama, aktifkan pengaturan bayangan bernama Anda dan tentukan nama bayangan Anda dalam konfigurasi pengindeksan benda. Secara default, Anda dapat menambahkan hingga 10 nama bayangan per Akun AWS. Untuk melihat cara meningkatkan jumlah batas nama bayangan, lihat [AWS IoT Device Management Kuota](https://docs.aws.amazon.com/general/latest/gr/iot_device_management.html#fleet-indexing-limits) di *Referensi AWS Umum*.

Untuk menambahkan bayangan bernama untuk pengindeksan:
+ Jika Anda menggunakan [AWS IoT konsol](https://console.aws.amazon.com/iot/home), aktifkan **pengindeksan Thing**, pilih **Tambahkan bayangan bernama**, dan tambahkan nama bayangan Anda melalui **pemilihan bayangan Bernama**. 
+ Jika Anda menggunakan AWS Command Line Interface (AWS CLI), atur `namedShadowIndexingMode` menjadi`ON`, dan tentukan nama bayangan di [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html). Untuk melihat contoh perintah CLI, lihat [Mengelola pengindeksan hal](managing-index.md#enable-index).

**penting**  
20 Juli 2022 adalah rilis General Availability (GA) dari integrasi pengindeksan armada Manajemen AWS IoT Perangkat dengan bayangan AWS IoT Core bernama dan AWS IoT Device Defender mendeteksi pelanggaran. Dengan rilis GA ini, Anda dapat mengindeks bayangan bernama tertentu dengan menentukan nama bayangan. Jika Anda menambahkan bayangan bernama untuk pengindeksan selama periode pratinjau publik fitur ini dari 30 November 2021 hingga 19 Juli 2022, kami mendorong Anda untuk mengonfigurasi ulang pengaturan pengindeksan armada Anda dan memilih nama bayangan tertentu untuk mengurangi biaya pengindeksan dan mengoptimalkan kinerja. 

 Untuk informasi selengkapnya tentang bayangan, lihat [Layanan AWS IoT Device Shadow](iot-device-shadows.md).

**Konektivitas** -Data konektivitas perangkat membantu Anda mengidentifikasi status koneksi perangkat Anda. Data konektivitas ini didorong oleh peristiwa [siklus hidup](life-cycle-events.md). Saat klien menghubungkan atau memutuskan sambungan, AWS IoT menerbitkan peristiwa siklus hidup dengan pesan ke topik MQTT. Pesan sambungkan atau putuskan sambungan dapat berupa daftar elemen JSON yang memberikan rincian status koneksi. Untuk informasi selengkapnya tentang konektivitas perangkat, lihat [Peristiwa siklus hidup](life-cycle-events.md).

**Pelanggaran Device Defender** - data AWS IoT Device Defender pelanggaran membantu mengidentifikasi perilaku perangkat anomali terhadap perilaku normal yang Anda tentukan dalam Profil Keamanan. Profil Keamanan berisi serangkaian perilaku perangkat yang diharapkan. Setiap perilaku menggunakan metrik yang menentukan perilaku normal perangkat Anda. Untuk informasi selengkapnya tentang pelanggaran Device Defender, lihat [AWS IoT Device Defender mendeteksi](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-defender-detect.html).

Untuk informasi selengkapnya, lihat [Mengelola pengindeksan hal](managing-index.md).

## Pengindeksan kelompok hal
<a name="thing-group-index"></a>

`AWS_ThingGroups`adalah indeks yang berisi semua kelompok hal Anda. Anda dapat menggunakan indeks ini untuk mencari grup berdasarkan nama grup, deskripsi, atribut, dan semua nama grup induk.

Untuk informasi selengkapnya, lihat [Mengelola pengindeksan grup hal](thinggroup-index.md).

## Bidang yang dikelola
<a name="managed-field"></a>

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 terkelola. Anda menentukan nilai dari setiap bidang terkelola saat Anda membuat AWS IoT sesuatu. Misalnya, nama benda, grup benda, dan deskripsi benda semuanya adalah bidang yang dikelola. Pengindeksan armada mengindeks bidang terkelola berdasarkan mode pengindeksan yang Anda tentukan. Kolom terkelola tidak dapat diubah atau ditampilkan`customFields`. Untuk informasi selengkapnya, lihat [Bidang kustom](#custom-field).

Berikut daftar bidang terkelola untuk pengindeksan hal: 
+ Bidang terkelola untuk registri

  ```
  "managedFields" : [
    {name:thingId, type:String},
    {name:thingName, type:String},
    {name:registry.version, type:Number},
    {name:registry.thingTypeName, type:String},
    {name:registry.thingGroupNames, type:String},
  ]
  ```
+ Bidang terkelola untuk bayangan klasik yang tidak disebutkan namanya

  ```
  "managedFields" : [
    {name:shadow.version, type:Number},
    {name:shadow.hasDelta, type:Boolean}
  ]
  ```
+ Bidang terkelola untuk bayangan bernama

  ```
  "managedFields" : [
    {name:shadow.name.shadowName.version, type:Number},
    {name:shadow.name.shadowName.hasDelta, type:Boolean}
  ]
  ```
+ Bidang terkelola untuk konektivitas benda

  ```
  "managedFields" : [
    {name:connectivity.timestamp, type:Number},
    {name:connectivity.version, type:Number},
    {name:connectivity.connected, type:Boolean},
    {name:connectivity.disconnectReason, type:String}
  ]
  ```
+ Bidang terkelola untuk Device Defender

  ```
  "managedFields" : [
    {name:deviceDefender.violationCount, type:Number},
    {name:deviceDefender.securityprofile.behaviorname.metricName, type:String},
    {name:deviceDefender.securityprofile.behaviorname.lastViolationTime, type:Number},
    {name:deviceDefender.securityprofile.behaviorname.lastViolationValue, type:String},
    {name:deviceDefender.securityprofile.behaviorname.inViolation, type:Boolean}
  ]
  ```
+ Bidang terkelola untuk grup benda

  ```
  "managedFields" : [
    {name:description, type:String},
    {name:parentGroupNames, type:String},
    {name:thingGroupId, type:String},
    {name:thingGroupName, type:String},
    {name:version, type:Number},
  ]
  ```

Tabel berikut mencantumkan bidang terkelola yang tidak dapat dicari. 


| Sumber data | Bidang terkelola yang tidak dapat dicari | 
| --- | --- | 
| Registri | registry.version | 
| Bayangan tanpa nama | shadow.version | 
| Bayangan bernama | shadow.name.\$1.version | 
| Pertahanan Perangkat | deviceDefender.version | 
| Grup benda | version | 

## Bidang kustom
<a name="custom-field"></a>

Anda dapat menggabungkan atribut benda, data Device Shadow, dan data pelanggaran Device Defender dengan membuat bidang khusus untuk mengindeksnya. `customFields`Atribut adalah daftar nama bidang dan pasangan tipe data. Anda dapat melakukan kueri agregasi berdasarkan tipe data. Mode pengindeksan yang Anda pilih mempengaruhi bidang dapat ditentukan. `customFields` Misalnya, jika Anda menentukan mode `REGISTRY` pengindeksan, Anda tidak dapat menentukan bidang khusus dari bayangan benda. Anda dapat menggunakan perintah [update-indexing-configuration](https://docs.aws.amazon.com/cli/latest/reference/iot/update-indexing-configuration.html)CLI untuk membuat atau memperbarui bidang khusus (lihat perintah contoh di [Memperbarui contoh konfigurasi pengindeksan](managing-index.md#update-index-examples)). 
+ **Nama bidang kustom**

Nama bidang khusus untuk atribut grup benda dan benda dimulai dengan`attributes.`, diikuti dengan nama atribut. Jika pengindeksan bayangan tanpa nama aktif, hal-hal dapat memiliki nama bidang khusus yang dimulai dengan `shadow.desired` atau`shadow.reported`, diikuti oleh nama nilai data bayangan yang tidak disebutkan namanya. Jika pengindeksan bayangan bernama aktif, hal-hal dapat memiliki nama bidang khusus yang dimulai dengan `shadow.name.*.desired.` atau`shadow.name.*.reported.`, diikuti oleh nilai data bayangan bernama. Jika pengindeksan pelanggaran Device Defender aktif, hal-hal dapat memiliki nama bidang khusus yang dimulai`deviceDefender.`, diikuti dengan nilai data pelanggaran Device Defender.

Atribut atau nama nilai data yang mengikuti awalan hanya dapat memiliki karakter alfanumerik, - (tanda hubung), dan \$1 (garis bawah). Itu tidak bisa memiliki spasi.

Jika ada inkonsistensi tipe antara bidang kustom dalam konfigurasi Anda dan nilai yang diindeks, pengindeksan armada mengabaikan nilai yang tidak konsisten untuk kueri agregasi. CloudWatch Log sangat membantu saat memecahkan masalah kueri agregasi. Untuk informasi selengkapnya, lihat [Memecahkan masalah kueri agregasi untuk layanan pengindeksan armada](fleet-indexing-troubleshooting.md#aggregation-troubleshooting). 
+ **Jenis bidang kustom**

Jenis bidang kustom memiliki nilai yang didukung berikut:`Number`,`String`, dan`Boolean`.

# Kelola pengindeksan hal
<a name="managing-index"></a>

Indeks yang dibuat untuk semua barang Anda adalah`AWS_Things`. Anda dapat mengontrol apa yang akan diindeks dari sumber data berikut: data [AWS IoT registri](thing-registry.md), data [AWS IoT Device Shadow](iot-device-shadows.md), data [AWS IoT konektivitas](life-cycle-events.md), dan data [AWS IoT Device Defender](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/what-is-device-defender.html)pelanggaran.

**Topics**
+ [Mengaktifkan pengindeksan hal](#enable-index)
+ [Menggambarkan indeks sesuatu](#describe-index)
+ [Menanyakan indeks sesuatu](#search-index)
+ [Pembatasan dan batasan](#index-limitations)
+ [Otorisasi](#query-auth)

## Mengaktifkan pengindeksan hal
<a name="enable-index"></a>

Anda menggunakan perintah [update-indexing-configuration](https://docs.aws.amazon.com/cli/latest/reference/iot/update-indexing-configuration.html)CLI atau operasi [UpdateIndexingConfiguration](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateIndexingConfiguration.html)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-configuration`Parameter 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"
        }
    ]
  }
}
```

### Mode pengindeksan hal
<a name="index-mode"></a>

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`: Kontrol jika registri atau bayangan diindeks. Kapan `thingIndexingMode` diatur menjadi`OFF`, pengindeksan hal dinonaktifkan.
+ `thingConnectivityIndexingMode`: Menentukan apakah data konektivitas hal diindeks.
+ `deviceDefenderIndexingMode`: Menentukan apakah data pelanggaran Device Defender diindeks.
+ `namedShadowIndexingMode`: Menentukan jika bernama data bayangan diindeks. Untuk memilih bayangan bernama untuk ditambahkan ke konfigurasi pengindeksan armada Anda, setel `namedShadowIndexingMode` menjadi `ON` dan tentukan nama bayangan bernama Anda. [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html)

Tabel di bawah ini menunjukkan nilai yang valid untuk setiap mode pengindeksan dan sumber data yang diindeks untuk setiap nilai.


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/managing-index.html)

### Bidang terkelola dan bidang kustom
<a name="managed-custom-field"></a>

**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 terkelola. Anda menentukan nilai dari setiap bidang terkelola saat Anda membuat AWS IoT sesuatu. Misalnya, nama benda, grup benda, dan deskripsi benda semuanya adalah bidang yang dikelola. Pengindeksan armada mengindeks bidang terkelola berdasarkan mode pengindeksan yang Anda tentukan. Kolom terkelola tidak dapat diubah atau ditampilkan`customFields`.

**Bidang kustom**

Anda dapat menggabungkan atribut, data Device Shadow, dan data pelanggaran Device Defender dengan membuat bidang khusus untuk mengindeksnya. `customFields`Atribut adalah daftar nama bidang dan pasangan tipe data. Anda dapat melakukan kueri agregasi berdasarkan tipe data. Mode pengindeksan yang Anda pilih mempengaruhi bidang dapat ditentukan. `customFields` Misalnya, jika Anda menentukan mode `REGISTRY` pengindeksan, Anda tidak dapat menentukan bidang khusus dari bayangan benda. Anda dapat menggunakan perintah [update-indexing-configuration](https://docs.aws.amazon.com/cli/latest/reference/iot/update-indexing-configuration.html)CLI untuk membuat atau memperbarui bidang khusus (lihat perintah contoh di [Memperbarui contoh konfigurasi pengindeksan](#update-index-examples)). Untuk informasi selengkapnya, lihat [Bidang kustom](managing-fleet-index.md#custom-field).

### Filter pengindeksan
<a name="thing-indexing-filter"></a>

Filter pengindeksan menyediakan pilihan tambahan untuk bayangan bernama dan data geolokasi. 

**`namedShadowNames`**

Untuk menambahkan bayangan bernama ke konfigurasi pengindeksan armada Anda, atur `namedShadowIndexingMode` 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), atur `thingIndexingMode` menjadi REGISTRY\$1AND\$1SHADOW, dan tentukan data geolokasi Anda dalam filter. `geoLocations`

  Contoh 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, atur `namedShadowIndexingMode` menjadi ON, tambahkan nama bayangan di `namedShadowNames` filter, dan tentukan data geolokasi Anda di `geoLocations` filter.

  Contoh filter di bawah ini menentukan objek GeoLocation dalam bayangan bernama ()`nameShadow1`:

  ```
  "filter": {
       "namedShadowNames": [ "namedShadow1" ],
       "geoLocations": [
          {
              "name": "shadow.name.namedShadow1.reported.location",
              "order": "LonLat"
          }
       ]
    }
  ```

Untuk informasi selengkapnya, lihat [ IndexingFilter](https://docs.aws.amazon.com/iot/latest/apireference/API_IndexingFilter.html)dari *Referensi *AWS IoT*API*.

### Memperbarui contoh konfigurasi pengindeksan
<a name="update-index-examples"></a>

Untuk memperbarui konfigurasi pengindeksan Anda, gunakan perintah AWS IoT **update-indexing-configuration** CLI. Contoh berikut menunjukkan cara menggunakan**update-indexing-configuration**.

Sintaks pendek:

```
aws iot update-indexing-configuration --thing-indexing-configuration \
'thingIndexingMode=REGISTRY_AND_SHADOW, deviceDefenderIndexingMode=VIOLATIONS, 
namedShadowIndexingMode=ON,filter={namedShadowNames=[thing1shadow]}, thingConnectivityIndexingMode=STATUS,
customFields=[{name=attributes.version,type=Number},
{name=shadow.name.thing1shadow.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": ["thing1shadow"]},
          "customFields": [ { "name": "shadow.desired.power", "type": "Boolean" }, 
          {"name": "attributes.version", "type": "Number"}, 
          {"name": "shadow.name.thing1shadow.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 sejenak bagi pengindeksan armada untuk memperbarui indeks armada. Kami sarankan menunggu hingga `indexStatus` acara ACTIVE sebelum menggunakannya. Anda dapat memiliki nilai yang berbeda di bidang skema tergantung pada sumber data apa yang telah Anda konfigurasikan. Untuk informasi selengkapnya, lihat [Menjelaskan indeks sesuatu](#describe-index).

Untuk mendapatkan detail konfigurasi pengindeksan hal 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.disconnectReason",
                "type": "String"
            },
            {
                "name": "registry.version",
                "type": "Number"
            },
            {
                "name": "thingName",
                "type": "String"
            },
            {
                "name": "deviceDefender.violationCount",
                "type": "Number"
            },
            {
                "name": "shadow.hasDelta",
                "type": "Boolean"
            },
            {
                "name": "shadow.name.*.version",
                "type": "Number"
            },
            {
                "name": "shadow.version",
                "type": "Number"
            },
            {
                "name": "connectivity.version",
                "type": "Number"
            },
            {
                "name": "connectivity.timestamp",
                "type": "Number"
            },
            {
                "name": "shadow.name.*.hasDelta",
                "type": "Boolean"
            },
            {
                "name": "registry.thingTypeName",
                "type": "String"
            },
            {
                "name": "thingId",
                "type": "String"
            },
            {
                "name": "connectivity.connected",
                "type": "Boolean"
            },
            {
                "name": "registry.thingGroupNames",
                "type": "String"
            }
        ],
        "customFields": [
            {
                "name": "shadow.name.thing1shadow.desired.DefaultDesired",
                "type": "String"
            },

            {
                "name": "deviceDefender.securityProfile1.NUMBER_VALUE_BEHAVIOR.lastViolationValue.number",
                "type": "Number"
            },
            {
                "name": "shadow.desired.power",
                "type": "Boolean"
            },
            {
                "name": "attributes.version",
                "type": "Number"
            }
        ], 
        "filter": {
              "namedShadowNames": [
                  "thing1shadow"
              ]
          }
      },
    "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 menimpa semua bidang kustom yang ada. Pastikan untuk menentukan semua bidang khusus saat menelepon**update-indexing-configuration**.

Setelah indeks dibangun kembali, Anda dapat menggunakan kueri agregasi pada bidang yang baru ditambahkan, mencari data registri, 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 yang disebut`shadow.desired.temperature`, Anda harus menghapus bidang `shadow.desired.temperature` khusus sebelum mengubah mode pengindeksan menjadi`REGISTRY`. Jika konfigurasi pengindeksan Anda berisi bidang khusus yang tidak diindeks oleh mode pengindeksan, pembaruan gagal. 

## Menggambarkan indeks sesuatu
<a name="describe-index"></a>

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 mengindeks armada, AWS IoT membangun indeks Anda. `indexStatus`Kapan dalam `BUILDING` keadaan, Anda tidak dapat menanyakan indeks. Indeks `schema` for the things menunjukkan jenis data (`REGISTRY_AND_SHADOW_AND_CONNECTIVITY_STATUS`) yang diindeks.

Mengubah konfigurasi indeks Anda menyebabkan indeks dibangun kembali. Selama proses ini, `indexStatus` adalah`REBUILDING`. Anda dapat menjalankan kueri pada data dalam indeks things saat sedang dibangun kembali. Misalnya, jika Anda mengubah konfigurasi indeks dari `REGISTRY` ke `REGISTRY_AND_SHADOW` saat indeks sedang dibangun kembali, Anda dapat meminta data registri, termasuk pembaruan terbaru. Namun, Anda tidak dapat menanyakan data bayangan hingga pembangunan kembali selesai. Jumlah waktu yang diperlukan 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. | 
| REGISTRASI | Data registri diindeks. | 
| REGISTRY\$1AND\$1SHADOW | Data registri dan data bayangan (klasik) yang tidak disebutkan namanya diindeks. | 
| REGISTRY\$1AND\$1CONNECTIVITY | Data registri dan data konektivitas diindeks. | 
| REGISTRY\$1AND\$1SHADOW\$1AND\$1CONNECTIVITY\$1STATUS REGISTRY\$1SHADOW\$1STATUS | Data registri, data bayangan tanpa nama (klasik), dan data konektivitas diindeks. | 
| MULTI\$1INDEXING\$1MODE | Bayangan bernama atau Device Defender data pelanggaran diindeks, selain registri, bayangan tanpa nama (klasik) atau data konektivitas. | 

## Menanyakan indeks sesuatu
<a name="search-index"></a>

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"
         }         
    },
    {  
        "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
        }        
    }],
    "nextToken":"AQFCuvk7zZ3D9pOYMbFCeHbdZ+h=G"
}
```

Dalam respons JSON, `"connectivity"` (sebagaimana diaktifkan oleh `thingConnectivityIndexingMode=STATUS` pengaturan) memberikan nilai Boolean, stempel waktu, dan DisconnectAson yang menunjukkan apakah perangkat terhubung ke. AWS IoT Core Perangkat `"mything1"` terputus (`false`) pada waktu POSIX `1556649874716` karena. `CONNECTION_LOST` Untuk informasi selengkapnya tentang alasan pemutusan sambungan, lihat Peristiwa [siklus hidup](life-cycle-events.md). 

```
"connectivity": { 
    "connected":false,
    "timestamp":1556649874716, 
    "disconnectReason": "CONNECTION_LOST"
}
```

Perangkat `"mything2"` terhubung (`true`) pada waktu `1556649855046` POSIX:

```
"connectivity": { 
    "connected":true,
    "timestamp":1556649855046
}
```

Stempel waktu diberikan dalam milidetik sejak zaman, jadi `1556649855046` mewakili 18:44:15.046 pada hari Selasa, 30 April 2019 (UTC).

**penting**  
Jika perangkat telah terputus selama kurang lebih satu jam, `"timestamp"` nilai dan `"disconnectReason"` nilai status konektivitas mungkin hilang.

## Pembatasan dan batasan
<a name="index-limitations"></a>

Ini adalah batasan dan batasan untuk`AWS_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 `true` atau`false`. Misalnya, mengingat status bayangan berikut, nilai bidang `"palette"` tidak diindeks karena itu adalah array yang berisi item dari 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 terbatas periode (.). Misalnya, diberikan dokumen bayangan:  

```
{
  "state": {
    "desired": {
      "one": {
        "two": {
          "three": "v2"
        }
      }
    }    
  }
}
```
Nama bidang `three` disimpan sebagai`desired.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 bagian bayangan diindeks. `"state"` (Pada contoh sebelumnya, `"palette"` bidang di bagian metadata bayangan juga tidak diindeks.)

**Perangkat yang tidak terdaftar**  
[Pengindeksan armada mengindeks status konektivitas untuk perangkat yang `clientId` koneksinya sama dengan hal `thingName` yang terdaftar di Registry.](https://docs.aws.amazon.com//iot/latest/developerguide/thing-registry.html)

**Bayangan yang tidak terdaftar**  
Jika Anda menggunakan [UpdateThingShadow](https://docs.aws.amazon.com/iot/latest/apireference/API_iotdata_UpdateThingShadow.html)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 diakui 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 rentang -2^53... 2^53-1, floating point presisi ganda dengan notasi eksponensial opsional, atau bagian dari array yang hanya berisi nilai-nilai ini. 

**Nilai nol**  
Nilai nol tidak diindeks.

**Nilai maksimum**  
Jumlah maksimum bidang kustom untuk kueri agregasi adalah 5.  
Jumlah maksimum persentil yang diminta untuk kueri agregasi adalah 100.

## Otorisasi
<a name="query-auth"></a>

Anda dapat menentukan indeks things sebagai Amazon Resource Name (ARN) dalam tindakan AWS IoT kebijakan, sebagai berikut.


****  

| Tindakan | Sumber daya | 
| --- | --- | 
|  `iot:SearchIndex`  |  Indeks ARN (misalnya,`arn:aws:iot:your-aws-regionyour-aws-account:index/AWS_Things`).  | 
|  `iot:DescribeIndex`  |  Indeks ARN (misalnya,`arn:aws:iot:your-aws-region:index/AWS_Things`).  | 

**catatan**  
Jika Anda memiliki izin untuk menanyakan indeks armada, Anda dapat mengakses data berbagai hal di seluruh armada.

# Kelola pengindeksan grup hal
<a name="thinggroup-index"></a>

`AWS_ThingGroups`adalah indeks yang berisi semua kelompok hal Anda. Anda dapat menggunakan indeks ini untuk mencari grup berdasarkan nama grup, deskripsi, atribut, dan semua nama grup induk.

## Mengaktifkan pengindeksan grup hal
<a name="enable-group-index"></a>

Anda dapat menggunakan `thing-group-indexing-configuration` pengaturan di [UpdateIndexingConfiguration](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateIndexingConfiguration.html)API untuk membuat `AWS_ThingGroups` indeks dan mengontrol konfigurasinya. Anda dapat menggunakan [GetIndexingConfiguration](https://docs.aws.amazon.com/iot/latest/apireference/API_GetIndexingConfiguration.html)API untuk mengambil konfigurasi pengindeksan saat ini. 

Untuk memperbarui konfigurasi pengindeksan grup benda, jalankan perintah CLI**update-indexing-configuration**:

```
aws iot update-indexing-configuration --thing-group-indexing-configuration thingGroupIndexingMode=ON
```

Anda juga dapat memperbarui konfigurasi untuk pengindeksan grup benda dan benda dalam satu perintah, sebagai berikut:

```
aws iot update-indexing-configuration --thing-indexing-configuration thingIndexingMode=REGISTRY --thing-group-indexing-configuration thingGroupIndexingMode=ON
```

Berikut ini adalah nilai yang valid untuk`thingGroupIndexingMode`.

MATI  
Tidak ada indexing/delete indeks.

PADA  
Buat atau konfigurasikan `AWS_ThingGroups` indeks.

Untuk mengambil konfigurasi pengindeksan grup benda dan benda saat ini, jalankan perintah CLI**get-indexing-configuration**:

```
aws iot get-indexing-configuration
```

Respons perintah terlihat seperti berikut:

```
{
   "thingGroupIndexingConfiguration": {
        "thingGroupIndexingMode": "ON"
    }
}
```

## Menggambarkan indeks grup
<a name="describe-group-index"></a>

Untuk mengambil status `AWS_ThingGroups` indeks saat ini, gunakan perintah **describe-index** CLI:

```
aws iot describe-index --index-name "AWS_ThingGroups"
```

Respons perintah terlihat seperti berikut:

```
{
   "indexStatus": "ACTIVE", 
   "indexName": "AWS_ThingGroups", 
   "schema": "THING_GROUPS"
}
```

 AWS IoT membangun indeks Anda saat pertama kali Anda mengindeks. Anda tidak dapat menanyakan indeks jika `indexStatus` ada`BUILDING`.

## Menanyakan indeks grup benda
<a name="search-group-index"></a>

Untuk kueri data dalam indeks, gunakan perintah **search-index** CLI:

```
aws iot search-index --index-name "AWS_ThingGroups" --query-string "thingGroupName:mythinggroup*"
```

## Otorisasi
<a name="query-thinggroup-auth"></a>

Anda dapat menentukan indeks grup benda sebagai ARN sumber daya dalam tindakan AWS IoT kebijakan, sebagai berikut.


****  

| Tindakan | Sumber daya | 
| --- | --- | 
|  `iot:SearchIndex`  |  Indeks ARN (misalnya,`arn:aws:iot:your-aws-region:index/AWS_ThingGroups`).  | 
|  `iot:DescribeIndex`  |  Indeks ARN (misalnya,`arn:aws:iot:your-aws-region:index/AWS_ThingGroups`).  | 

# Kueri status konektivitas perangkat
<a name="device-connectivity-status"></a>

AWS IoT Fleet Indexing mendukung kueri konektivitas perangkat individual, memungkinkan Anda untuk secara efisien mengambil status konektivitas dan metadata terkait untuk perangkat tertentu. Fitur ini melengkapi kemampuan pengindeksan dan kueri di seluruh armada yang ada.

## Cara kerjanya
<a name="w2aac37c21b5"></a>

Dukungan kueri konektivitas perangkat dapat digunakan untuk pengambilan status konektivitas perangkat tunggal yang dioptimalkan. API ini menyediakan latensi rendah, akses throughput tinggi ke informasi konektivitas khusus perangkat terbaru. Setelah Anda mengaktifkan pengindeksan konektivitas, Anda akan memiliki akses ke API kueri ini yang akan dikenakan biaya sebagai kueri standar. Untuk informasi selengkapnya, lihat [Harga Manajemen AWS IoT Perangkat](https://aws.amazon.com/iot-device-management/pricing/#:~:text=Search%20queries%20(per%2010%2C000%20queries))

## Fitur
<a name="w2aac37c21b7"></a>

Dengan dukungan kueri konektivitas perangkat, Anda dapat:

1. Kueri status konektivitas saat ini (terhubung atau terputus) untuk perangkat tertentu yang menggunakannya. `thingName`

1. Ambil metadata konektivitas tambahan, termasuk:

   1. Putuskan alasan

   1. Stempel waktu untuk acara sambungkan atau putuskan sambungan terbaru.

**catatan**  
[Pengindeksan armada mengindeks status konektivitas untuk perangkat yang `clientId` koneksinya sama dengan hal `thingName` yang terdaftar di Registry.](https://docs.aws.amazon.com/iot/latest/developerguide/thing-registry.html)

## Manfaat
<a name="w2aac37c21b9"></a>

1. **Latensi rendah:** Mencerminkan status konektivitas perangkat terbaru dan menawarkan latensi rendah untuk mencerminkan perubahan status koneksi dari IoT Core. IoT Core menentukan perangkat sebagai terputus baik segera setelah menerima permintaan pemutusan dari perangkat atau jika perangkat terputus tanpa mengirim permintaan pemutusan sambungan. Inti IoT akan menunggu 1,5x dari waktu keep-alive yang dikonfigurasi sebelum klien ditentukan untuk terputus. Connectivity status API akan mencerminkan perubahan ini biasanya kurang dari satu detik setelah IoT Core menentukan perubahan status terhubung perangkat.

1. **Throughput tinggi:** Mendukung 350 Transaksi Per Detik (TPS) secara default, dan dapat disesuaikan ke lebih tinggi berdasarkan permintaan.

1. **Retensi data:** Menyimpan data peristiwa tanpa batas waktu saat ConnectivityIndexing mode Fleet Indexing (FI) diaktifkan dan masalahnya tidak dihapus. Jika Anda menonaktifkan Pengindeksan Konektivitas, catatan tidak akan disimpan.

**catatan**  
Jika pengindeksan status konektivitas diaktifkan sebelum peluncuran API ini, Fleet Indexing mulai melacak perubahan status konektivitas setelah peluncuran API dan mencerminkan status yang diperbarui berdasarkan perubahan tersebut.

## Prasyarat
<a name="w2aac37c21c11"></a>

Untuk menggunakan dukungan kueri konektivitas perangkat:

1. [Siapkan AWS akun](https://docs.aws.amazon.com/iot/latest/developerguide/setting-up.html)

1. Onboard dan daftarkan perangkat ke AWS IoT Core wilayah pilihan Anda

1. [Aktifkan Pengindeksan Armada dengan pengindeksan](https://docs.aws.amazon.com/iot/latest/developerguide/managing-index.html) Konektivitas

**catatan**  
Tidak diperlukan pengaturan tambahan jika Anda sudah mengaktifkan pengindeksan konektivitas

Untuk petunjuk penyiapan terperinci, lihat [Panduan AWS IoT Pengembang](https://docs.aws.amazon.com/iot/latest/developerguide/setting-up.html)

## Contoh
<a name="w2aac37c21c13"></a>

```
aws iot get-thing-connectivity-data --thing-name myThingName
```

```
{
   "connected": true,
   "disconnectReason": "NONE",
   "thingName": "myThingName",
   "timestamp": "2024-12-19T10:00:00.000000-08:00"
}
```
+ `thingName`: Nama perangkat seperti yang ditunjukkan oleh permintaan. Ini juga cocok dengan clientID yang digunakan untuk terhubung. AWS IoT Core
+ `disconnectReason`: Alasan untuk memutuskan sambungan. Tidak akan ada untuk perangkat yang terhubung.
+ `connected`: Nilai boolean true yang menunjukkan perangkat ini saat ini terhubung.
+ `timestamp`: Stempel waktu yang mewakili pemutusan terbaru perangkat dalam milidetik.

```
aws iot get-thing-connectivity-data --thing-name myThingName
```

```
{
   "connected": false,
   "disconnectReason": "CLIENT_INITIATED_DISCONNECT",
   "thingName": "myThingName",
   "timestamp": "2024-12-19T10:30:00.000000-08:00"
}
```
+ `thingName`: Nama perangkat seperti yang ditunjukkan oleh permintaan. Ini juga cocok dengan clientID yang digunakan untuk terhubung. AWS IoT Core
+ `disconnectReason`: Alasan untuk memutuskan sambungan adalah CLIENT\$1INITIATED\$1DISCONNECT yang menunjukkan klien yang menunjukkan bahwa itu akan terputus. AWS IoT Core 
+ `connected`: Nilai boolean false yang menunjukkan perangkat ini saat ini terputus.
+ `timestamp`: Stempel waktu yang mewakili pemutusan terbaru perangkat dalam milidetik.

```
aws iot get-thing-connectivity-data --thing-name neverConnectedThing
```

```
{
   "connected": false,
   "disconnectReason": "UNKNOWN",
   "thingName": "neverConnectedThing"
}
```
+ `thingName`: Nama perangkat seperti yang ditunjukkan oleh permintaan. Ini juga cocok dengan clientID yang digunakan untuk terhubung. AWS IoT Core
+ `disconnectReason`: Alasan untuk memutuskan sambungan. Akan menjadi “TIDAK DIKETAHUI” untuk perangkat yang belum pernah terhubung atau yang Pengindeksan Armada tidak memiliki alasan pemutusan terakhir yang disimpan. 
+ `connected`: Nilai boolean false yang menunjukkan perangkat ini saat ini terputus. 
+ `timestamp`: Stempel waktu tidak dikembalikan untuk perangkat yang belum pernah terhubung atau yang Pengindeksan Armada tidak menyimpan stempel waktu terakhir. 

# Membuat kueri untuk data agregat
<a name="index-aggregate"></a>

AWS IoT menyediakan empat APIs (`GetStatistics`,`GetCardinality`,`GetPercentiles`, dan`GetBucketsAggregation`) yang memungkinkan Anda mencari data agregat armada perangkat Anda. 

**catatan**  
 Untuk masalah dengan nilai agregasi yang hilang atau tidak terduga APIs, baca panduan [pemecahan masalah pengindeksan Armada](fleet-indexing-troubleshooting.md). 

## GetStatistics
<a name="get-statistics"></a>

[GetStatistics](https://docs.aws.amazon.com/iot/latest/apireference/API_GetStatistics.html)API dan perintah **get-statistics** CLI mengembalikan hitungan, rata-rata, jumlah, minimum, maksimum, jumlah kuadrat, varians, dan standar deviasi untuk bidang agregat yang ditentukan.

Perintah **get-statistics** CLI mengambil parameter berikut:

`index-name`  
Nama indeks yang akan dicari. Nilai default-nya adalah `AWS_Things`.

`query-string`  
Query yang digunakan untuk mencari indeks. Anda dapat menentukan `"*"` untuk mendapatkan hitungan semua hal yang diindeks di Anda. Akun AWS

`aggregationField`  
(Opsional) Bidang untuk agregat. Bidang ini harus berupa bidang terkelola atau kustom yang ditentukan saat Anda menelepon**update-indexing-configuration**. Jika Anda tidak menentukan bidang agregasi, `registry.version` digunakan sebagai bidang agregasi.

`query-version`  
Versi kueri yang akan digunakan. Nilai default-nya adalah `2017-09-30`.

Jenis bidang agregasi dapat mempengaruhi statistik yang dikembalikan. 

### GetStatistics dengan nilai string
<a name="string-aggregation"></a>

Jika Anda menggabungkan pada bidang string, pemanggilan akan `GetStatistics` mengembalikan jumlah perangkat yang memiliki atribut yang cocok dengan kueri. Contoh:

```
aws iot get-statistics --aggregation-field 'attributes.stringAttribute'
            --query-string '*'
```

Perintah ini mengembalikan jumlah perangkat yang berisi atribut bernama`stringAttribute`:

```
{
  "statistics": {
    "count": 3
  }
}
```

### GetStatistics dengan nilai Boolean
<a name="boolean-aggregation"></a>

Saat Anda memanggil `GetStatistics` dengan bidang agregasi Boolean:
+ AVERAGE adalah persentase perangkat yang cocok dengan kueri.
+ MINIMUM adalah 0 atau 1 sesuai dengan aturan berikut:
  + Jika semua nilai untuk bidang agregasi adalah`false`, MINIMUM adalah 0.
  + Jika semua nilai untuk bidang agregasi adalah`true`, MINIMUM adalah 1.
  + Jika nilai untuk bidang agregasi adalah campuran dari `false` dan`true`, MINIMUM adalah 0.
+ MAKSIMUM adalah 0 atau 1 sesuai dengan aturan berikut:
  + Jika semua nilai untuk bidang agregasi adalah`false`, MAXIMUM adalah 0.
  + Jika semua nilai untuk bidang agregasi adalah`true`, MAXIMUM adalah 1.
  + Jika nilai untuk bidang agregasi adalah campuran dari `false` dan`true`, MAXIMUM adalah 1.
+ SUM adalah jumlah dari ekuivalen integer dari nilai Boolean.
+ COUNT adalah jumlah hal-hal yang cocok dengan kriteria string kueri dan berisi nilai bidang agregasi yang valid.

### GetStatistics dengan nilai numerik
<a name="numerical-aggregation"></a>

Ketika Anda memanggil `GetStatistics` dan menentukan bidang agregasi jenis`Number`, `GetStatistics` mengembalikan nilai-nilai berikut:

count  
Hitungan hal-hal yang cocok dengan kriteria string kueri dan berisi nilai bidang agregasi yang valid.

rata-rata  
Rata-rata nilai numerik yang cocok dengan query.

sum  
Jumlah nilai numerik yang cocok dengan query.

minimum  
Nilai numerik terkecil yang cocok dengan kueri.

maksimum  
Nilai numerik terbesar yang cocok dengan kueri.

sumOfSquares  
Jumlah kuadrat dari nilai numerik yang cocok dengan query.

perbedaan  
Varians dari nilai numerik yang cocok dengan query. Varians dari satu set nilai adalah rata-rata kuadrat dari perbedaan setiap nilai dari nilai rata-rata himpunan.

stdDeviation  
Standar deviasi dari nilai numerik yang cocok dengan query. Standar deviasi dari satu set nilai adalah ukuran seberapa tersebar nilai-nilai tersebut.

Contoh berikut menunjukkan cara memanggil **get-statistics** dengan bidang kustom numerik.

```
aws iot get-statistics --aggregation-field 'attributes.numericAttribute2'
            --query-string '*'
```

```
{
  "statistics": {
    "count": 3,
    "average": 33.333333333333336,
    "sum": 100.0,
    "minimum": -125.0,
    "maximum": 150.0,
    "sumOfSquares": 43750.0,
    "variance": 13472.22222222222,
    "stdDeviation": 116.06990230986766
  }
}
```

Untuk bidang agregasi numerik, jika nilai bidang melebihi nilai ganda maksimum, nilai statistik kosong.

## GetCardinality
<a name="get-cardinality"></a>

[GetCardinality](https://docs.aws.amazon.com/iot/latest/apireference/API_GetCardinality.html)API dan perintah **get-cardinality** CLI mengembalikan perkiraan jumlah nilai unik yang cocok dengan kueri. Misalnya, Anda mungkin ingin menemukan jumlah perangkat dengan tingkat baterai kurang dari 50 persen:

```
aws iot get-cardinality --index-name AWS_Things --query-string "batterylevel
          > 50" --aggregation-field "shadow.reported.batterylevel"
```

Perintah ini mengembalikan jumlah hal dengan tingkat baterai lebih dari 50 persen:

```
{
    "cardinality": 100
}
```

`cardinality`selalu dikembalikan **get-cardinality** bahkan jika tidak ada bidang yang cocok. Contoh:

```
aws iot get-cardinality --query-string "thingName:Non-existent*"
          --aggregation-field "attributes.customField_STR"
```

```
{
    "cardinality": 0
}
```

Perintah **get-cardinality** CLI mengambil parameter berikut:

`index-name`  
Nama indeks yang akan dicari. Nilai default-nya adalah `AWS_Things`.

`query-string`  
Query yang digunakan untuk mencari indeks. Anda dapat menentukan `"*"` untuk mendapatkan hitungan semua hal yang diindeks di Anda. Akun AWS

`aggregationField`  
Bidang untuk agregat.

`query-version`  
Versi kueri yang akan digunakan. Nilai default-nya adalah `2017-09-30`.

## GetPercentiles
<a name="get-percentiles"></a>

[GetPercentiles](https://docs.aws.amazon.com/iot/latest/apireference/API_GetPercentiles.html)API dan perintah **get-percentiles** CLI mengelompokkan nilai agregat yang cocok dengan kueri ke dalam pengelompokan persentil. Pengelompokan persentil default adalah: 1,5,25,50,75,95,99, meskipun Anda dapat menentukan sendiri saat menelepon. `GetPercentiles` Fungsi ini mengembalikan nilai untuk setiap kelompok persentil yang ditentukan (atau pengelompokan persentil default). Grup persentil “1" berisi nilai bidang agregat yang terjadi di sekitar satu persen dari nilai yang cocok dengan kueri. Grup persentil “5" berisi nilai bidang agregat yang terjadi di sekitar lima persen dari nilai yang cocok dengan kueri, dan seterusnya. Hasilnya adalah perkiraan, semakin banyak nilai yang cocok dengan kueri, semakin akurat nilai persentil.

Contoh berikut menunjukkan cara memanggil perintah **get-percentiles** CLI.

```
aws iot get-percentiles --query-string "thingName:*" --aggregation-field
          "attributes.customField_NUM" --percents 10 20 30 40 50 60 70 80 90 99
```

```
{
    "percentiles": [
        {
            "value": 3.0,
            "percent": 80.0
        },
        {
            "value": 2.5999999999999996,
            "percent": 70.0
        },
        {
            "value": 3.0,
            "percent": 90.0
        },
        {
            "value": 2.0,
            "percent": 50.0
        },
        {
            "value": 2.0,
            "percent": 60.0
        },
        {
            "value": 1.0,
            "percent": 10.0
        },
        {
            "value": 2.0,
            "percent": 40.0
        },
        {
            "value": 1.0,
            "percent": 20.0
        },
        {
            "value": 1.4,
            "percent": 30.0
        },
        {
            "value": 3.0,
            "percent": 99.0
        }
    ]
}
```

Perintah berikut menunjukkan output yang dikembalikan dari **get-percentiles** saat tidak ada dokumen yang cocok.

```
aws iot get-percentiles --query-string "thingName:Non-existent*"
          --aggregation-field "attributes.customField_NUM"
```

```
{
    "percentiles": []
}
```

Perintah **get-percentile** CLI mengambil parameter berikut:

`index-name`  
Nama indeks yang akan dicari. Nilai default-nya adalah `AWS_Things`.

`query-string`  
Query yang digunakan untuk mencari indeks. Anda dapat menentukan `"*"` untuk mendapatkan hitungan semua hal yang diindeks di Anda. Akun AWS

`aggregationField`  
Bidang agregat, yang harus `Number` bertipe.

`query-version`  
Versi kueri yang akan digunakan. Nilai default-nya adalah `2017-09-30`.

`percents`  
(Opsional) Anda dapat menggunakan parameter ini untuk menentukan pengelompokan persentil kustom.

## GetBucketsAggregation
<a name="get-buckets"></a>

[GetBucketsAggregation](https://docs.aws.amazon.com/iot/latest/apireference/API_GetBucketsAggregation.html)API dan perintah **get-buckets-aggregation** CLI mengembalikan daftar bucket dan jumlah total hal yang sesuai dengan kriteria string kueri.

Contoh berikut menunjukkan cara memanggil perintah get-buckets-aggregation CLI.

```
aws iot get-buckets-aggregation --query-string '*' --index-name AWS_Things --aggregation-field 'shadow.reported.batterylevelpercent' --buckets-aggregation-type 'termsAggregation={maxBuckets=5}'
```

Perintah ini mengembalikan yang berikut:

```
{
    "totalCount": 20,
    "buckets": [
        {
            "keyValue": "100",
            "count": 12
        },
        {
            "keyValue": "90",
            "count": 5
        },
        {
            "keyValue": "75",
            "count": 3
        }
    ]
}
```

Perintah get-buckets-aggregation CLI mengambil parameter berikut:

`index-name`  
Nama indeks yang akan dicari. Nilai default-nya adalah `AWS_Things`.

`query-string`  
Query yang digunakan untuk mencari indeks. Anda dapat menentukan `"*"` untuk mendapatkan hitungan semua hal yang diindeks di Anda. Akun AWS

`aggregation-field`  
Bidang untuk agregat.

`buckets-aggregation-type`  
Kontrol dasar bentuk respons dan jenis agregasi bucket yang akan dilakukan.

## Otorisasi
<a name="index-aggregate-authorization"></a>

Anda dapat menentukan indeks grup benda sebagai ARN sumber daya dalam tindakan AWS IoT kebijakan, sebagai berikut.


| Tindakan | Sumber daya | 
| --- | --- | 
|  `iot:GetStatistics`  |  Indeks ARN (misalnya, `arn:aws:iot:your-aws-region:index/AWS_Things` atau`arn:aws:iot:your-aws-region:index/AWS_ThingGroups`).  | 

# Sintaks kueri
<a name="query-syntax"></a>

Dalam pengindeksan armada, Anda menggunakan sintaks kueri untuk menentukan kueri.

## Fitur yang didukung
<a name="supported-query-syntax"></a>

Sintaks query mendukung fitur-fitur berikut:
+ Syarat dan frasa
+ Mencari bidang
+ Pencarian awalan
+ Rentang pencarian
+ Operator Boolean`AND`,`OR`,`NOT`, dan`–`. Tanda hubung digunakan untuk mengecualikan sesuatu dari hasil pencarian (misalnya,`thingName:(tv* AND -plasma)`).
+ Pengelompokan
+ Pengelompokan lapangan
+ Melarikan diri dari karakter khusus (seperti dengan*\$1*)
+ Penggunaan wildcard terkemuka dibatasi hingga 1 istilah kueri per kueri. Misalnya, Anda tidak dapat mencari `thingName:*my` dan `thingGroupNames:*echo` dalam kueri yang sama. Kueri yang menyertakan wildcard terkemuka memiliki panjang kueri maksimal 100 karakter.
**catatan**  
 Akun dengan batas API kueri Pengindeksan Armada melebihi 30 permintaan per detik tunduk pada pembatasan saat menggunakan istilah kueri wildcard terkemuka. requests-per-secondBatas 30 ini berlaku di tingkat akun di semua kueri APIs Pengindeksan Armada. 

## Fitur yang tidak didukung
<a name="unsupported-query-syntax"></a>

Sintaks kueri tidak mendukung fitur berikut:
+ Ekspresi reguler
+ Meningkatkan
+ Peringkat
+ Pencarian fuzzy
+ Pencarian kedekatan
+ Penyortiran
+ Agregasi
+ Karakter khusus: ````@`,`#`,,`%`,`\`,`/`,`'`,`;`, dan`,`. Perhatikan bahwa `,` hanya didukung di geoquery.

## Catatan
<a name="query-syntax-limitations"></a>

Beberapa hal yang perlu diperhatikan tentang bahasa kueri:
+ Operator defaultnya adalah AND. Kueri untuk `"thingName:abc thingType:xyz"` setara dengan`"thingName:abc AND thingType:xyz"`.
+ Jika bidang tidak ditentukan, AWS IoT cari istilah di semua bidang registri, Device Shadow, dan Device Defender.
+ Semua nama bidang peka huruf besar/kecil.
+ Pencarian tidak peka huruf besar/kecil. Kata-kata dipisahkan oleh karakter spasi putih seperti yang didefinisikan oleh Java. `Character.isWhitespace(int)`
+ Pengindeksan data Device Shadow (bayangan tanpa nama dan bayangan bernama) mencakup bagian yang dilaporkan, diinginkan, delta, dan metadata.
+ Versi bayangan perangkat dan registri tidak dapat dicari, tetapi ada dalam respons.
+ Jumlah maksimum istilah dalam kueri adalah dua belas.
+ Karakter khusus hanya `,` didukung di geoqueries.

# Contoh kueri benda
<a name="example-queries"></a>

Tentukan kueri dalam string kueri menggunakan sintaks kueri. Kueri diteruskan ke [https://docs.aws.amazon.com/iot/latest/apireference/API_SearchIndex.html](https://docs.aws.amazon.com/iot/latest/apireference/API_SearchIndex.html)API. Tabel berikut mencantumkan beberapa contoh string query.


| String kueri | Hasil | 
| --- | --- | 
|  abc  |  Kueri untuk “abc” di registri apa pun, bayangan (bayangan klasik tanpa nama dan bayangan bernama), atau bidang pelanggaran Pembela Perangkat.  | 
|  thingName:myThingName  |  Pertanyaan untuk sesuatu dengan nama "myThingName”.  | 
|  thingName:my\$1  |  Pertanyaan untuk hal-hal dengan nama yang dimulai dengan “saya”.  | 
|  thingName:\$1my  |  Pertanyaan untuk hal-hal dengan nama yang diakhiri dengan “saya”. Penggunaan wildcard terkemuka dibatasi hingga 1 istilah kueri per kueri. Kueri yang menyertakan wildcard terkemuka memiliki panjang kueri maksimal 100 karakter.  | 
|  thingName:\$1my\$1  |  Kueri untuk hal-hal yang berisi substring “my”. Penggunaan wildcard terkemuka dibatasi hingga 1 istilah kueri per kueri. Kueri yang menyertakan wildcard terkemuka memiliki panjang kueri maksimal 100 karakter.  | 
|  thingName:ab?  |  Kueri untuk hal-hal dengan nama yang memiliki “ab” ditambah satu karakter tambahan (misalnya, “aba”, “abb”, “abc”, dan sebagainya.  | 
|  thingTypeName:aa  |  Kueri untuk hal-hal yang terkait dengan tipe “aa”.  | 
|  thingGroupNames:a  | Kueri untuk hal-hal dengan grup hal induk atau nama grup penagihan “a”. | 
|  thingGroupNames:a\$1  | Kueri untuk hal-hal dengan grup hal induk atau nama grup penagihan yang cocok dengan pola “a\$1”. | 
|  attributes.myAttribute:75  |  Kueri untuk hal-hal dengan atribut bernama “myAttribute” yang memiliki nilai 75.  | 
|  attributes.myAttribute:[75 TO 80]  |  Kueri untuk hal-hal dengan atribut bernama “myAttribute” yang memiliki nilai yang termasuk dalam rentang numerik (75—80, inklusif).  | 
|  attributes.myAttribute:\$175 TO 80]  |  Kueri untuk hal-hal dengan atribut bernama “MyAttribute” yang memiliki nilai yang termasuk dalam rentang numerik (>75 dan <=80).  | 
|  attributes.serialNumber:["abcd" TO "abcf"]  |  Kueri untuk hal-hal dengan atribut bernama “SerialNumber” yang memiliki nilai dalam rentang string alfanumerik. Kueri ini mengembalikan hal-hal dengan atribut “serialNumber” dengan nilai “abcd”, “abce”, atau “abcf”.  | 
|  attributes.myAttribute:i\$1t |  Kueri untuk hal-hal dengan atribut bernama “myAttribute” di mana nilainya adalah 'i', diikuti oleh sejumlah karakter, diikuti oleh 't'.  | 
|  attributes.attr1:abc AND attributes.attr2<5 NOT attributes.attr3>10  |  Kueri untuk hal-hal yang menggabungkan istilah menggunakan ekspresi Boolean. Kueri ini mengembalikan hal-hal yang memiliki atribut bernama “attr1" dengan nilai “abc”, atribut bernama “attr2" yang kurang dari 5, dan atribut bernama “attr3" yang 'tidak lebih besar dari 10.  | 
|  shadow.hasDelta:true  |  Kueri untuk hal-hal dengan bayangan tanpa nama yang memiliki elemen delta.  | 
|  NOT attributes.model:legacy  |  Kueri untuk hal-hal di mana atribut bernama “model” bukan “warisan”.  | 
|  shadow.reported.stats.battery:\$170 TO 100\$1 (v2 OR v3) NOT attributes.model:legacy  |  Kueri untuk hal-hal dengan yang berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/example-queries.html)  | 
|  shadow.reported.myvalues:2  |  Kueri untuk hal-hal di mana `myvalues` array di bagian bayangan yang dilaporkan berisi nilai 2.  | 
|  shadow.reported.location:\$1 NOT shadow.desired.stats.battery:\$1  |  Kueri untuk hal-hal dengan yang berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/example-queries.html)  | 
|  shadow.name.<shadowName>.hasDelta:true  |  Kueri untuk hal-hal yang memiliki bayangan dengan nama yang diberikan dan juga elemen delta.   | 
|  shadow.name.<shadowName>.desired.filament:\$1  |  Kueri untuk hal-hal yang memiliki bayangan dengan nama yang diberikan dan juga properti filamen yang diinginkan.   | 
|  shadow.name.<shadowName>.reported.location:\$1  |  Kueri untuk hal-hal yang memiliki bayangan dengan nama yang diberikan dan di mana `location` atribut ada di bagian yang dilaporkan bayangan bernama.  | 
|  connectivity.connected:true  |  Kueri untuk semua perangkat yang terhubung.  | 
|  connectivity.connected:false  | Kueri untuk semua perangkat yang terputus. | 
|  connectivity.connected:true AND connectivity.timestamp : [1557651600000 TO 1557867600000]  | Kueri untuk semua perangkat yang terhubung dengan stempel waktu sambungan>= 1557651600000 dan <= 1557867600000. Stempel waktu diberikan dalam milidetik sejak zaman. | 
|  connectivity.connected:false AND connectivity.timestamp : [1557651600000 TO 1557867600000]  | Kueri untuk semua perangkat yang terputus dengan stempel waktu pemutus> = 1557651600000 dan <= 1557867600000. Stempel waktu diberikan dalam milidetik sejak zaman. | 
|  connectivity.connected:true AND connectivity.timestamp > 1557651600000  | Kueri untuk semua perangkat yang terhubung dengan stempel waktu sambungan> 1557651600000. Stempel waktu diberikan dalam milidetik sejak zaman. | 
|  connectivity.connected:\$1  | Kueri untuk semua perangkat dengan informasi konektivitas hadir. | 
|  connectivity.disconnectReason:\$1  | Kueri untuk semua perangkat dengan konektivitas DisconnectAson hadir. | 
|  connectivity.disconnectReason:CLIENT\$1INITIATED\$1DISCONNECT  | Kueri untuk semua perangkat terputus karena CLIENT\$1INITIATED\$1DISCONNECT. | 
|  deviceDefender.violationCount:[0 TO 100]  | Kueri untuk hal-hal dengan pelanggaran Device Defender menghitung nilai yang termasuk dalam rentang numerik (0-100, inklusif).  | 
|  deviceDefender.<device-SecurityProfile>.disconnectBehavior.inViolation:true  | Pertanyaan untuk hal-hal yang melanggar perilaku disconnectBehavior sebagaimana didefinisikan dalam profil device-SecurityProfile keamanan. Perhatikan bahwa Inviolation:false bukan kueri yang valid.  | 
|  deviceDefender.<device-SecurityProfile>.disconnectBehavior.lastViolationValue.number>2  | Kueri untuk hal-hal yang melanggar perilaku disconnectBehavior sebagaimana didefinisikan dalam perangkat profil keamanan- SecurityProfile dengan nilai peristiwa pelanggaran terakhir lebih besar dari 2.  | 
|  deviceDefender.<device-SecurityProfile>.disconnectBehavior.lastViolationTime>1634227200000  |  Kueri untuk hal-hal yang melanggar perilaku `disconnectBehavior` sebagaimana didefinisikan dalam perangkat profil keamanan- SecurityProfile dengan peristiwa pelanggaran terakhir setelah waktu yang ditentukan.   | 
|  shadow.name.gps-tracker.reported.coordinates:geo\$1distance,47.6204,-122.3491,15.5km | Kueri untuk hal-hal yang berada dalam jarak radial 15,5 km dari koordinat 47.6204, -122.3491. String kueri ini berlaku ketika data lokasi Anda disimpan dalam bayangan bernama. | 
|  shadow.reported.coordinates:geo\$1distance,47.6204,-122.3491,15.5km | Kueri untuk hal-hal yang berada dalam jarak radial 15,5 km dari koordinat 47.6204, -122.3491. String kueri ini berlaku saat data lokasi Anda disimpan dalam bayangan klasik. | 

# Contoh kueri grup benda
<a name="example-thinggroup-queries"></a>

Kueri ditentukan dalam string kueri menggunakan sintaks kueri dan diteruskan ke API. [https://docs.aws.amazon.com/iot/latest/apireference/API_SearchIndex.html](https://docs.aws.amazon.com/iot/latest/apireference/API_SearchIndex.html) Tabel berikut mencantumkan beberapa contoh string query.


| String kueri | Hasil | 
| --- | --- | 
|  abc  |  Kueri untuk “abc” di bidang apa pun.  | 
|  thingGroupName:myGroupThingName  |  Kueri untuk grup benda dengan nama "myGroupThingNama”.  | 
|  thingGroupName:my\$1  |  Kueri untuk grup benda dengan nama yang dimulai dengan “saya”.  | 
|  thingGroupName:ab?  |  Kueri untuk grup benda dengan nama yang memiliki “ab” ditambah satu karakter tambahan (misalnya: “aba”, “abb”, “abc”, dan sebagainya).  | 
|  attributes.myAttribute:75  |  Kueri untuk grup benda dengan atribut bernama “myAttribute” yang memiliki nilai 75.  | 
|  attributes.myAttribute:[75 TO 80]  |  Kueri untuk grup benda dengan atribut bernama “myAttribute” yang nilainya berada dalam rentang numerik (75—80, inklusif).  | 
|  attributes.myAttribute:[75 TO 80]  |  Kueri untuk grup benda dengan atribut bernama “MyAttribute” yang nilainya berada dalam rentang numerik (>75 dan <=80).  | 
|  attributes.myAttribute:["abcd" TO "abcf"]  |  Kueri untuk grup benda dengan atribut bernama “myAttribute” yang nilainya berada dalam rentang string alfanumerik. Kueri ini mengembalikan grup benda dengan atribut “serialNumber” dengan nilai “abcd”, “abce”, atau “abcf”.  | 
|  attributes.myAttribute:i\$1t  |  Kueri untuk grup benda dengan atribut bernama “myAttribute” yang nilainya 'i', diikuti oleh sejumlah karakter, diikuti oleh 't'.  | 
|  attributes.attr1:abc AND attributes.attr2<5 NOT attributes.attr3>10  |  Kueri untuk grup benda yang menggabungkan istilah menggunakan ekspresi Boolean. Kueri ini mengembalikan grup benda yang memiliki atribut bernama “attr1" dengan nilai “abc”, atribut bernama “attr2" yang kurang dari 5, dan atribut bernama “attr3" yang tidak lebih besar dari 10.  | 
|  NOT attributes.myAttribute:cde  |  Kueri untuk grup benda di mana atribut bernama “myAttribute” bukan “cde”.  | 
|  parentGroupNames:(myParentThingGroupName)  |   Kueri untuk grup benda yang nama grup induknya cocok dengan "myParentThingGroupName”.  | 
|  parentGroupNames:(myParentThingGroupName OR myRootThingGroupName)  |  Kueri untuk grup benda yang nama grup induknya cocok dengan "myParentThingGroupName" atau "myRootThingGroupName”.  | 
|  parentGroupNames:(myParentThingGroupNa\$1)  |  Kueri untuk grup benda yang nama grup induknya dimulai dengan "myParentThingGroupNa”.  | 

# Pengindeksan data lokasi
<a name="location-indexing-geoquery"></a>

Anda dapat menggunakan [pengindeksan AWS IoT armada untuk mengindeks](https://docs.aws.amazon.com//iot/latest/developerguide/iot-indexing.html) data lokasi terkirim terakhir perangkat Anda dan mencari perangkat menggunakan geoquery. Fitur ini menyelesaikan pemantauan perangkat dan kasus penggunaan manajemen seperti pelacakan lokasi dan pencarian kedekatan. [Pengindeksan lokasi bekerja mirip dengan fitur pengindeksan armada lainnya, dan dengan konfigurasi tambahan untuk ditentukan dalam pengindeksan hal Anda.](managing-fleet-index.md) 

[Kasus penggunaan umum meliputi: pencarian dan agregat perangkat yang terletak dalam batas geografis yang diinginkan, dapatkan wawasan spesifik lokasi menggunakan istilah kueri yang terkait dengan metadata perangkat dan status dari sumber data yang diindeks, memberikan tampilan terperinci seperti memfilter hasil ke area geografis tertentu untuk mengurangi kelambatan rendering dalam peta pemantauan armada Anda dan melacak lokasi perangkat yang terakhir dilaporkan, dan mengidentifikasi perangkat yang berada di luar batas batas yang diinginkan dan menghasilkan alarm menggunakan armada meta rik.](iot-fleet-metrics.md) Untuk memulai pengindeksan lokasi dan geoquery, lihat. [Tutorial memulai](location-indexing-tutorial.md)

## Format data yang didukung
<a name="location-indexing-format"></a>

AWS IoT pengindeksan armada mendukung format data lokasi berikut:

1. 

**Representasi teks terkenal dari sistem referensi koordinat**

   String yang mengikuti [informasi Geografis - Representasi teks terkenal dari format sistem referensi koordinat](https://docs.ogc.org/is/12-063r5/12-063r5.html). Contohnya bisa`"POINT(long lat)"`.

1. 

**String yang mewakili koordinat**

   String dengan format `"latitude, longitude"` atau`"longitude, latitude"`. Jika Anda menggunakan`"longitude, latitude"`, Anda juga harus menentukan `order``geoLocations`. Contohnya bisa`"41.12,-71.34"`.

1. 

**Objek kunci lat (lintang), lon (bujur)**

   Format ini berlaku untuk bayangan klasik dan bernama bayangan. Kunci yang didukung:`lat`,`latitude`,`lon`,`long`,`longitude`. Contohnya bisa`{"lat": 41.12, "lon": -71.34}`.

1. 

**Array yang mewakili koordinat**

   Array dengan format `[lat,lon]` atau`[lon,lat]`. Jika Anda menggunakan format`[lon,lat]`, yang sama dengan koordinat di [GeoJSON](https://geojson.org/) (berlaku untuk bayangan klasik dan bayangan bernama), Anda juga harus menentukan. `order` `geoLocations`

   Contohnya dapat berupa:

   ```
   {
     "location": {
       "coordinates": [
         **Longitude**,
         **Latitude**
       ],
       "type": "Point",
       "properties": {
         "country": "United States",
         "city": "New York",
         "postalCode": "*****",
         "horizontalAccuracy": 20,
         "horizontalConfidenceLevel": 0.67,
         "state": "New York",
         "timestamp": "2023-01-04T20:59:13.024Z"
       }
     }
   }
   ```

## Cara mengindeks data lokasi
<a name="location-indexing-steps"></a>

Langkah-langkah berikut menunjukkan cara memperbarui konfigurasi pengindeksan untuk data lokasi Anda dan menggunakan geoquery untuk mencari perangkat.

1. 

**Ketahui di mana data lokasi Anda disimpan**

   Pengindeksan armada saat ini mendukung pengindeksan data lokasi yang disimpan dalam bayangan klasik atau bayangan bernama.

1. 

**Gunakan format data lokasi yang didukung**

   Pastikan format data lokasi Anda mengikuti salah satu [format data yang didukung](#location-indexing-format).

1. 

**Perbarui konfigurasi pengindeksan**

   Pada kebutuhan minimum, aktifkan konfigurasi pengindeksan hal (registri). Anda juga harus mengaktifkan pengindeksan pada bayangan klasik atau bayangan bernama yang berisi data lokasi Anda. Saat memperbarui pengindeksan hal Anda, Anda harus menyertakan data lokasi Anda dalam konfigurasi pengindeksan.

1. 

**Membuat dan menjalankan geoqueries**

   Bergantung pada kasus penggunaan Anda, buat geoquery dan jalankan untuk mencari perangkat. [Geoqeury yang Anda tulis harus mengikuti sintaks Query.](https://docs.aws.amazon.com//iot/latest/developerguide/query-syntax.html) Anda dapat menemukan beberapa contoh di[Contoh geoqueries](#location-indexing-geoqueries).

## Perbarui konfigurasi pengindeksan hal
<a name="location-indexing-configuration"></a>

Untuk mengindeks data lokasi, Anda harus memperbarui konfigurasi pengindeksan dan menyertakan data lokasi Anda. Tergantung di mana data lokasi Anda disimpan, ikuti langkah-langkah untuk memperbarui konfigurasi pengindeksan Anda:

### Data lokasi disimpan dalam bayangan klasik
<a name="location-indexing-shadow-configuration"></a>

Jika data lokasi Anda disimpan dalam bayangan klasik, Anda harus `thingIndexingMode` menyetel menjadi `REGISTRY_AND_SHADOW` dan menentukan data lokasi Anda di `geoLocations` bidang (`name`dan`order`) di [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html).

Dalam contoh konfigurasi pengindeksan hal berikut, Anda menentukan jalur data lokasi `shadow.reported.coordinates` sebagai `name` dan `LonLat` sebagai`order`.

```
{
	"thingIndexingMode": "REGISTRY_AND_SHADOW",
	"filter": {
		"geoLocations": [
			{
				"name": "shadow.reported.coordinates",
				"order": "LonLat"
			}
		]
	}
}
```
+ `thingIndexingMode`

  Mode pengindeksan mengontrol jika registri atau bayangan diindeks. Kapan `thingIndexingMode` diatur menjadi`OFF`, pengindeksan hal dinonaktifkan. 

  Untuk mengindeks data lokasi yang disimpan dalam bayangan klasik, Anda harus `thingIndexingMode` menyetel menjadi`REGISTRY_AND_SHADOW`. Untuk informasi selengkapnya, lihat [Mode pengindeksan hal](managing-index.md#index-mode).
+ `filter`

  Filter pengindeksan menyediakan pilihan tambahan untuk bayangan bernama dan data geolokasi. Untuk informasi selengkapnya, lihat [Filter pengindeksan](managing-index.md#thing-indexing-filter).
+ `geoLocations`

  Daftar target geolokasi yang Anda pilih untuk diindeks. Jumlah maksimum target geolokasi default untuk pengindeksan adalah. `1` Untuk meningkatkan batas, lihat [AWS IoT Device Management Kuota](https://docs.aws.amazon.com//general/latest/gr/iot_device_management.html#fleet-indexing-limits).
+ `name`

  Nama bidang target geolokasi. Contoh nilai `name` dapat berupa jalur data lokasi bayangan Anda:`shadow.reported.coordinates`.
+ `order`

  Urutan bidang target geolokasi. Nilai yang valid: `LatLon` dan`LonLat`. `LatLon`berarti garis lintang dan bujur. `LonLat`berarti bujur dan lintang. Bidang ini bersifat opsional. Nilai default-nya adalah `LatLon`.

### Data lokasi disimpan dalam bayangan bernama
<a name="location-indexing-named-shadow-configuration"></a>

Jika data lokasi Anda disimpan dalam bayangan bernama, atur `namedShadowIndexingMode` menjadi`ON`, tambahkan nama bayangan bernama Anda ke `namedShadowNames` bidang di [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html), dan tentukan jalur data lokasi Anda di `geoLocations` bidang di [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html).

Dalam contoh konfigurasi pengindeksan hal berikut, Anda menentukan jalur data lokasi `shadow.name.namedShadow1.reported.coordinates` sebagai `name` dan `LonLat` sebagai`order`.

```
{
	"thingIndexingMode": "REGISTRY",
	"namedShadowIndexingMode": "ON",
	"filter": {
		"namedShadowNames": [
			"namedShadow1"
		],
		"geoLocations": [
			{
				"name": "shadow.name.namedShadow1.reported.coordinates",
				"order": "LonLat"
			}
		]
	}
}
```
+ `thingIndexingMode`

  Mode pengindeksan mengontrol jika registri atau bayangan diindeks. Kapan `thingIndexingMode` diatur menjadi`OFF`, pengindeksan hal dinonaktifkan. 

  Untuk mengindeks data lokasi yang disimpan dalam bayangan bernama, Anda `thingIndexingMode` harus mengatur menjadi `REGISTRY` (atau`REGISTRY_AND_SHADOW`). Untuk informasi selengkapnya, lihat [Mode pengindeksan hal](managing-index.md#index-mode).
+ `filter`

  Filter pengindeksan menyediakan pilihan tambahan untuk bayangan bernama dan data geolokasi. Untuk informasi selengkapnya, lihat [Filter pengindeksan](managing-index.md#thing-indexing-filter).
+ `geoLocations`

  Daftar target geolokasi yang Anda pilih untuk diindeks. Jumlah maksimum target geolokasi default untuk pengindeksan adalah. `1` Untuk meningkatkan batas, lihat [AWS IoT Device Management Kuota](https://docs.aws.amazon.com//general/latest/gr/iot_device_management.html#fleet-indexing-limits).
+ `name`

  Nama bidang target geolokasi. Contoh nilai `name` dapat berupa jalur data lokasi bayangan Anda:`shadow.name.namedShadow1.reported.coordinates`.
+ `order`

  Urutan bidang target geolokasi. Nilai yang valid: `LatLon` dan`LonLat`. `LatLon`berarti garis lintang dan bujur. `LonLat`berarti bujur dan lintang. Bidang ini bersifat opsional. Nilai default-nya adalah `LatLon`.

## Contoh geoqueries
<a name="location-indexing-geoqueries"></a>

Setelah Anda menyelesaikan konfigurasi pengindeksan untuk data lokasi Anda, jalankan geoquery untuk mencari perangkat. Anda juga dapat menggabungkan geoquery Anda dengan string kueri lainnya. Untuk informasi selengkapnya, lihat [Sintaks kueri](query-syntax.md) dan [Contoh kueri benda](example-queries.md).

**Contoh kueri 1**

Contoh ini mengasumsikan data lokasi disimpan dalam bayangan `gps-tracker` bernama. Output dari perintah ini adalah daftar 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.gps-tracker.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km"
```

**Contoh kueri 2**

Contoh ini mengasumsikan data lokasi disimpan dalam bayangan klasik. Output dari perintah ini adalah daftar 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.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km"
```

**Contoh kueri 3**

Contoh ini mengasumsikan data lokasi disimpan dalam bayangan klasik. Output dari perintah ini adalah daftar perangkat yang tidak terhubung dan di luar jarak radial 15,5 km dari titik pusat dengan koordinat (47.6204, -122.3491).

```
aws iot search-index --query-string \
"connectivity.connected:false AND (NOT shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km)"
```

# Tutorial memulai
<a name="location-indexing-tutorial"></a>

Tutorial ini menunjukkan cara menggunakan pengindeksan [armada untuk mengindeks](iot-indexing.md) [data lokasi Anda](location-indexing-geoquery.md). Untuk mempermudah, Anda membuat sesuatu untuk mewakili perangkat Anda dan menyimpan data lokasi dalam bayangan bernama, memperbarui konfigurasi pengindeksan hal untuk pengindeksan lokasi, dan menjalankan contoh geoquery untuk mencari perangkat dalam batas radial.

Tutorial ini membutuhkan waktu sekitar 15 menit untuk menyelesaikannya.

**Topics**
+ [Prasyarat](#location-indexing-tutorial-prerequisites)
+ [Ciptakan benda dan bayangan](#location-indexing-create-resources)
+ [Perbarui konfigurasi pengindeksan hal](#location-indexing-update-configuration)
+ [Jalankan geoquery](#location-indexing-run-geoquery)

## Prasyarat
<a name="location-indexing-tutorial-prerequisites"></a>
+ Instal versi terbaru dari [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html).
+ [Biasakan diri Anda dengan [pengindeksan Lokasi dan geoquery](https://docs.aws.amazon.com/iot/latest/developerguide/location-indexing-geoquery.html), [Kelola pengindeksan hal](https://docs.aws.amazon.com/iot/latest/developerguide/managing-index.html), dan sintaks Kueri.](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)

## Ciptakan benda dan bayangan
<a name="location-indexing-create-resources"></a>

Anda membuat sesuatu untuk mewakili perangkat Anda, dan bayangan bernama untuk menyimpan data lokasinya (koordinat 47.61564, -122.33584).

1. 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](https://docs.aws.amazon.com//cli/latest/reference/iot/create-thing.html) dari Referensi. *AWS CLI**

   ```
   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"
   }
   ```

1. Jalankan perintah berikut untuk membuat bayangan bernama untuk menyimpan data lokasi Sepeda-1 (koordinat 47.61564, -122.33584). Untuk informasi selengkapnya tentang cara membuat bayangan bernama menggunakan AWS CLI, lihat [update-thing-shadow](https://docs.aws.amazon.com//cli/latest/reference/iot-data/update-thing-shadow.html)dari *AWS CLI**Referensi*.

   ```
   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](https://docs.aws.amazon.com//cli/latest/reference/iot-data/list-named-shadows-for-thing.html) CLI.

   ```
   aws iot-data list-named-shadows-for-thing --thing-name Bike-1
   ```

   Output dari perintah ini dapat terlihat seperti berikut:

   ```
   {
       "results": [
           "Bike1-shadow"
       ],
       "timestamp": 1699574309
   }
   ```

## Perbarui konfigurasi pengindeksan hal
<a name="location-indexing-update-configuration"></a>

Untuk mengindeks data lokasi Anda, Anda harus memperbarui konfigurasi pengindeksan hal Anda untuk menyertakan data lokasi. Karena data lokasi Anda disimpan dalam bayangan bernama dalam tutorial ini, atur `thingIndexingMode` menjadi `REGISTRY` (pada persyaratan minimum), atur `namedShadowIndexingMode` menjadi`ON`, dan tambahkan data lokasi Anda ke konfigurasi. Dalam contoh ini, Anda harus menambahkan nama bayangan bernama Anda dan jalur data lokasi bayangan ke`filter`.

1. 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 beberapa saat hingga pembaruan selesai. Untuk memeriksa status, jalankan perintah [CLI deskripsi-indeks](https://docs.aws.amazon.com//cli/latest/reference/iot/describe-index.html). Jika Anda melihat `indexStatus` show:`ACTIVE`, pembaruan pengindeksan hal Anda selesai.

1. Jalankan perintah untuk memverifikasi konfigurasi pengindeksan Anda. Langkah ini bersifat opsional.

   ```
   aws iot get-indexing-configuration
   ```

   Outputnya bisa 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
<a name="location-indexing-run-geoquery"></a>

Sekarang Anda telah memperbarui konfigurasi pengindeksan hal Anda untuk memasukkan data lokasi. Cobalah untuk membuat beberapa geoquery dan menjalankannya untuk melihat apakah Anda bisa mendapatkan hasil pencarian yang Anda inginkan. Geoquery harus mengikuti [sintaks Query](query-syntax.md). Anda dapat menemukan beberapa contoh geoquery yang berguna di. [Contoh geoqueries](location-indexing-geoquery.md#location-indexing-geoqueries)

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 (Sepeda-1) dalam output. Outputnya bisa 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](location-indexing-geoquery.md).

# Metrik armada
<a name="iot-fleet-metrics"></a>

Metrik armada adalah fitur [pengindeksan armada](iot-indexing.md), layanan terkelola yang memungkinkan Anda mengindeks, mencari, dan mengumpulkan data perangkat Anda. AWS IoT Anda dapat menggunakan metrik armada, untuk memantau status agregat perangkat armada Anda [CloudWatch](https://console.aws.amazon.com/cloudwatch/)dari waktu ke waktu, termasuk meninjau tingkat pemutusan perangkat armada Anda atau perubahan level baterai rata-rata pada periode tertentu.

Dengan menggunakan metrik armada, Anda dapat membuat [kueri agregasi](index-aggregate.md) yang hasilnya terus dipancarkan [CloudWatch](https://console.aws.amazon.com/cloudwatch/)sebagai metrik untuk menganalisis tren dan membuat alarm. **Untuk tugas pemantauan, Anda dapat menentukan kueri agregasi dari berbagai jenis agregasi (**Statistik**, **Kardinalitas**, dan Persentil).** Anda dapat menyimpan semua kueri agregasi untuk membuat metrik armada untuk digunakan kembali di masa mendatang. 

# Tutorial memulai
<a name="fleet-metrics-get-started"></a>

Dalam tutorial ini, Anda membuat [metrik armada](iot-fleet-metrics.md) untuk memantau suhu sensor Anda untuk mendeteksi anomali potensial. Saat membuat metrik armada, Anda menentukan [kueri agregasi](index-aggregate.md) yang mendeteksi jumlah sensor dengan suhu melebihi 80 derajat Fahrenheit. Anda menentukan kueri yang akan dijalankan setiap 60 detik dan hasil kueri dipancarkan CloudWatch, di mana Anda dapat melihat jumlah sensor yang memiliki potensi risiko suhu tinggi, dan menyetel alarm. Untuk menyelesaikan tutorial ini, Anda akan menggunakan [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html). 

Dalam tutorial ini, Anda akan belajar cara:
+ [Mengatur](#fleet-metrics-tutorial-setup)
+ [Buat metrik armada](#fleet-metrics-tutorial-create)
+ [Lihat metrik di CloudWatch](#fleet-metrics-tutorial-view-data)
+ [Bersihkan sumber daya](#fleet-metrics-tutorial-delete-fleet-metrics)

Tutorial ini membutuhkan waktu sekitar 15 menit untuk menyelesaikannya.

## Prasyarat
<a name="fleet-metrics-tutorial-prerequisites"></a>
+ Instal versi terbaru [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)
+ Biasakan diri Anda dengan [Query untuk data agregat](https://docs.aws.amazon.com/iot/latest/developerguide/index-aggregate.html)
+ Biasakan diri Anda dengan [Menggunakan CloudWatch metrik Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) 

## Penyiapan
<a name="fleet-metrics-tutorial-setup"></a>

Untuk menggunakan metrik armada, aktifkan pengindeksan armada. Untuk mengaktifkan pengindeksan armada untuk grup benda atau benda Anda dengan sumber data tertentu dan konfigurasi terkait, ikuti instruksi dalam Mengelola pengindeksan [hal dan Mengelola pengindeksan](managing-index.md#enable-index) grup [hal](thinggroup-index.md#enable-group-index).

**Untuk mengatur**

1. Jalankan perintah berikut untuk mengaktifkan pengindeksan armada dan tentukan sumber data yang akan dicari. 

   ```
   aws iot update-indexing-configuration \
   --thing-indexing-configuration "thingIndexingMode=REGISTRY_AND_SHADOW,customFields=[{name=attributes.temperature,type=Number},{name=attributes.rackId,type=String},{name=attributes.stateNormal,type=Boolean}],thingConnectivityIndexingMode=STATUS" \
   ```

   Contoh perintah CLI sebelumnya memungkinkan pengindeksan armada untuk mendukung pencarian data registri, data bayangan, dan status konektivitas benda menggunakan indeks. `AWS_Things` 

   Perubahan konfigurasi dapat memakan waktu beberapa menit untuk diselesaikan. Verifikasi bahwa pengindeksan armada Anda diaktifkan sebelum Anda membuat metrik armada. 

   Untuk memeriksa apakah pengindeksan armada Anda telah diaktifkan, jalankan perintah CLI berikut: 

   ```
   aws --region us-east-1 iot describe-index --index-name "AWS_Things"
   ```

   Untuk informasi selengkapnya, lihat [Mengaktifkan pengindeksan hal](managing-index.md#enable-index).

1. Jalankan skrip bash berikut untuk membuat sepuluh hal dan menggambarkannya. 

   ```
   # Bash script. Type `bash` before running in other shells.
   
   Temperatures=(70 71 72 73 74 75 47 97 98 99)
   Racks=(Rack1 Rack1 Rack2 Rack2 Rack3 Rack4 Rack5 Rack6 Rack6 Rack6)
   IsNormal=(true true true true true true false false false false)
   
   for ((i=0; i < 10; i++))
   do
     thing=$(aws iot create-thing --thing-name "TempSensor$i" --attribute-payload attributes="{temperature=${Temperatures[@]:$i:1},rackId=${Racks[@]:$i:1},stateNormal=${IsNormal[@]:$i:1}}")
     aws iot describe-thing --thing-name "TempSensor$i"
   done
   ```

   Skrip ini menciptakan sepuluh hal untuk mewakili sepuluh sensor. Setiap hal memiliki atribut`temperature`,`rackId`, dan `stateNormal` seperti yang dijelaskan dalam tabel berikut:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/fleet-metrics-get-started.html)

   Output dari skrip ini berisi sepuluh file JSON. Salah satu file JSON terlihat seperti berikut:

   ```
   {
       "version": 1, 
       "thingName": "TempSensor0", 
       "defaultClientId": "TempSensor0", 
       "attributes": {
           "rackId": "Rack1", 
           "stateNormal": "true", 
           "temperature": "70"
       }, 
       "thingArn": "arn:aws:iot:region:account:thing/TempSensor0", 
       "thingId": "example-thing-id"
   }
   ```

   Untuk informasi selengkapnya, lihat [Membuat sesuatu](https://docs.aws.amazon.com/iot/latest/developerguide/thing-registry.html#create-thing).

## Buat metrik armada
<a name="fleet-metrics-tutorial-create"></a>

**Untuk membuat metrik armada**

1. Jalankan perintah berikut untuk membuat metrik armada bernama*high\$1temp\$1FM*. Anda membuat metrik armada untuk memantau jumlah sensor dengan suhu melebihi 80 derajat Fahrenheit. CloudWatch 

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

   --metrik-nama 

   Tipe data: string. `--metric-name`Parameter menentukan nama metrik armada. Dalam contoh ini, Anda membuat metrik armada bernama *High\$1Temp\$1FM*.

   --kueri-string

   Tipe data: string. `--query-string`Parameter menentukan string query. Dalam contoh ini, string kueri berarti menanyakan semua hal dengan nama yang dimulai dengan *TempSensor*dan dengan suhu lebih tinggi dari 80 derajat Fahrenheit. Untuk informasi selengkapnya, lihat [Sintaks kueri](query-syntax.md).

   --periode 

   Tipe data: bilangan bulat. `--period`Parameter menentukan waktu untuk mengambil data agregat dalam hitungan detik. Dalam contoh ini, Anda menentukan bahwa metrik armada yang Anda buat mengambil data agregat setiap 60 detik.

   --agregasi-bidang

   Tipe data: string. `--aggregation-field`Parameter menentukan atribut untuk mengevaluasi. Dalam contoh ini, atribut suhu harus dievaluasi.

   --agregasi-tipe

   `--aggregation-type`Parameter menentukan ringkasan statistik untuk ditampilkan dalam metrik armada. **Untuk tugas pemantauan, Anda dapat menyesuaikan properti kueri agregasi untuk jenis agregasi yang berbeda (**Statistik**, **Kardinalitas**, dan Persentil).** Dalam contoh ini, Anda menentukan **hitungan** untuk jenis agregasi dan **Statistik** untuk mengembalikan jumlah perangkat yang memiliki atribut yang cocok dengan kueri, dengan kata lain, untuk mengembalikan jumlah perangkat dengan nama yang dimulai dengan *TempSensor*dan dengan suhu lebih tinggi dari 80 derajat Fahrenheit. Untuk informasi selengkapnya, lihat [Menanyakan data agregat](index-aggregate.md).

   Output dari perintah ini terlihat seperti berikut:

   ```
   {
       "metricArn": "arn:aws:iot:region:111122223333:fleetmetric/high_temp_FM", 
       "metricName": "high_temp_FM"
   }
   ```
**catatan**  
Diperlukan waktu beberapa saat agar titik data ditampilkan CloudWatch.

   Untuk mempelajari lebih lanjut tentang cara membuat metrik armada, baca [Mengelola metrik armada](managing-fleet-metrics.md).

   Jika Anda tidak dapat membuat metrik armada, baca Metrik [armada pemecahan masalah](fleet-indexing-troubleshooting.md#fleet-metrics-troubleshooting). 

1. (Opsional) Jalankan perintah berikut untuk menjelaskan metrik armada Anda bernama *High\$1Temp\$1FM*:

   ```
   aws iot describe-fleet-metric --metric-name "high_temp_FM"
   ```

   Output dari perintah ini terlihat seperti berikut:

   ```
   {
       "queryVersion": "2017-09-30", 
       "lastModifiedDate": 1625249775.834, 
       "queryString": "*", 
       "period": 60, 
       "metricArn": "arn:aws:iot:region:111122223333:fleetmetric/high_temp_FM", 
       "aggregationField": "registry.version", 
       "version": 1, 
       "aggregationType": {
           "values": [
               "count"
           ], 
           "name": "Statistics"
       }, 
       "indexName": "AWS_Things", 
       "creationDate": 1625249775.834, 
       "metricName": "high_temp_FM"
   }
   ```

## Lihat metrik armada di CloudWatch
<a name="fleet-metrics-tutorial-view-data"></a>

Setelah membuat metrik armada, Anda dapat melihat data metrik di CloudWatch. Dalam tutorial ini, Anda akan melihat metrik yang menunjukkan jumlah sensor dengan nama yang dimulai dengan *TempSensor*dan dengan suhu lebih tinggi dari 80 derajat Fahrenheit.

**Untuk melihat titik data di CloudWatch**

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/). 

1. Pada CloudWatch menu di panel kiri, pilih **Metrik** untuk memperluas submenu dan kemudian pilih **Semua** metrik. Ini membuka halaman dengan bagian atas untuk menampilkan grafik dan bagian bawah berisi empat bagian tab.

1. **Bagian tab pertama **Semua metrik mencantumkan semua metrik** yang dapat Anda lihat dalam grup, pilih Metrik Io. TFleet** Ini berisi semua metrik armada Anda.

1. Pada bagian **Jenis agregasi** pada tab **Semua metrik**, pilih **Jenis agregasi** untuk melihat semua metrik armada yang Anda buat. 

1. Pilih metrik armada untuk menampilkan grafik di sebelah kiri bagian **Jenis agregasi**. Anda akan melihat nilai di *count* sebelah kiri **nama Metrik** Anda, dan ini adalah nilai dari jenis agregasi yang Anda tentukan di bagian [Buat metrik armada](#fleet-metrics-tutorial-create) dari tutorial ini.

1. Pilih tab kedua bernama **Metrik grafik** di sebelah kanan tab **Semua metrik untuk melihat metrik** armada yang Anda pilih dari langkah sebelumnya.

   Anda harus dapat melihat grafik yang menampilkan jumlah sensor dengan suhu lebih tinggi dari 80 derajat Fahrenheit seperti berikut ini:  
![\[AWS IoT metrik armada\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/fm-metric-in-cloudwatch.png)
**catatan**  
Atribut **Periode** secara CloudWatch default hingga 5 menit. Ini adalah interval waktu antara titik data yang ditampilkan. CloudWatch Anda dapat mengubah pengaturan **Periode** berdasarkan kebutuhan Anda.

1. (Opsional) Anda dapat mengatur alarm metrik. 

   1. Pada CloudWatch menu di panel kiri, pilih **Alarm** untuk memperluas submenu dan kemudian pilih **Semua** alarm.

   1. Pada halaman **Alarm**, pilih **Buat alarm** di sudut kanan atas. Ikuti instruksi **Buat alarm** di konsol untuk membuat alarm sesuai kebutuhan. Untuk informasi selengkapnya, lihat [Menggunakan CloudWatch alarm Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html).

Untuk mempelajari lebih lanjut, baca [Menggunakan CloudWatch metrik Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html). 

Jika Anda tidak dapat melihat titik data CloudWatch, baca Metrik [armada pemecahan masalah](fleet-indexing-troubleshooting.md#fleet-metrics-troubleshooting).

## Bersihkan
<a name="fleet-metrics-tutorial-delete-fleet-metrics"></a>

**Untuk menghapus metrik armada**

Anda menggunakan perintah **delete-fleet-metric** CLI untuk menghapus metrik armada.

Untuk menghapus metrik armada bernama *High\$1Temp\$1FM*, jalankan perintah berikut.

```
aws iot delete-fleet-metric --metric-name "high_temp_FM"
```

**Untuk membersihkan hal-hal**

Anda menggunakan perintah **delete-thing** CLI untuk menghapus sesuatu.

Untuk menghapus sepuluh hal yang Anda buat, jalankan skrip berikut:

```
# Bash script. Type `bash` before running in other shells.

for ((i=0; i < 10; i++))
do
  thing=$(aws iot delete-thing --thing-name "TempSensor$i")
done
```

**Untuk membersihkan metrik di CloudWatch**

CloudWatch tidak mendukung penghapusan metrik. Metrik kedaluwarsa berdasarkan jadwal retensi mereka. Untuk mempelajari lebih lanjut, [Menggunakan CloudWatch metrik Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html).

# Mengelola metrik armada
<a name="managing-fleet-metrics"></a>

Topik ini menunjukkan cara menggunakan AWS IoT konsol dan AWS CLI mengelola metrik armada Anda.

**Topics**
+ [Mengelola metrik armada (Konsol)](#managing-fleet-metrics-console)
+ [Mengelola metrik armada (CLI)](#managing-fleet-metrics-cli)
+ [Otorisasi penandaan sumber daya IoT](#managing-fleet-metrics-policy)

## Mengelola metrik armada (Konsol)
<a name="managing-fleet-metrics-console"></a>

Bagian berikut menunjukkan cara menggunakan AWS IoT konsol untuk mengelola metrik armada Anda. Pastikan Anda telah mengaktifkan pengindeksan armada dengan sumber dan konfigurasi data terkait sebelum membuat metrik armada.

### Aktifkan pengindeksan armada
<a name="setup-steps-console"></a>

Jika Anda telah mengaktifkan pengindeksan armada, lewati bagian ini.

Jika Anda belum mengaktifkan pengindeksan armada, ikuti petunjuk ini.

1. Buka AWS IoT konsol Anda di [https://console.aws.amazon.com/iot/](https://console.aws.amazon.com/iot/).

1. Pada AWS IoT menu, pilih **Pengaturan**. 

1. Untuk melihat pengaturan terperinci, pada halaman **Pengaturan**, gulir ke bawah ke bagian **pengindeksan Armada**.

1. Untuk memperbarui pengaturan pengindeksan armada, di sebelah kanan bagian **pengindeksan Armada, pilih **Kelola** pengindeksan**. 

1. Pada halaman **Kelola pengindeksan armada**, perbarui pengaturan pengindeksan armada berdasarkan kebutuhan Anda. 
   + **Konfigurasi**

     Untuk mengaktifkan pengindeksan hal, aktifkan **pengindeksan Thing**, lalu pilih sumber data yang ingin Anda indeks. 

     Untuk mengaktifkan pengindeksan grup hal, aktifkan pengindeksan **grup Thing**.
   + ***Bidang kustom untuk agregasi - opsional***

     Bidang kustom adalah daftar nama bidang dan pasangan jenis bidang. 

     Untuk menambahkan pasangan bidang kustom, pilih **Tambahkan bidang baru**. Masukkan nama bidang khusus seperti`attributes.temperature`, lalu pilih jenis bidang dari menu **Jenis bidang**. Perhatikan bahwa nama bidang kustom dimulai dengan `attributes.` dan akan disimpan sebagai atribut untuk menjalankan kueri [agregasi hal](https://docs.aws.amazon.com/iot/latest/developerguide/index-aggregate.html).

     Untuk memperbarui dan menyimpan pengaturan, pilih **Perbarui**.

### Buat metrik armada
<a name="create-fleet-metrics-console"></a>

1. Buka AWS IoT konsol Anda di [https://console.aws.amazon.com/iot/](https://console.aws.amazon.com/iot/). 

1. Pada AWS IoT menu, pilih **Kelola**, lalu pilih **Metrik Armada**.

1. Pada halaman **Metrik Armada**, pilih **Buat metrik armada** dan selesaikan langkah pembuatannya.

1. Pada langkah 1 **Konfigurasikan metrik armada**
   + Di bagian **Kueri**, masukkan string kueri untuk menentukan hal-hal atau kelompok hal yang ingin Anda lakukan pencarian agregat. String query terdiri dari atribut dan nilai. Untuk **Properti**, pilih atribut yang Anda inginkan, atau, jika tidak muncul dalam daftar, masukkan atribut di bidang. Masukkan nilai setelahnya`:`. Sebuah string query contoh bisa`thingName:TempSensor*`. Untuk setiap string kueri yang Anda masukkan, tekan **enter** di keyboard Anda. Jika Anda memasukkan beberapa string kueri, tentukan hubungannya dengan memilih **dan**, **atau**, **dan tidak**, atau **atau tidak** di antara mereka. 
   + Di **properti Laporan**, pilih **Nama indeks**, **Jenis agregasi**, dan **bidang Agregasi** dari daftar masing-masing. Selanjutnya, pilih data yang ingin Anda agregat **Pilih data**, di mana Anda dapat memilih beberapa nilai data.
   + Pilih **Berikutnya**.

1. Pada langkah 2 **Tentukan properti metrik armada**
   + Di bidang **nama metrik Armada**, masukkan nama untuk metrik armada yang Anda buat.
   + Di **Deskripsi - bidang *opsional***, masukkan deskripsi untuk metrik armada yang Anda buat. Bidang ini bersifat opsional. 
   + Di bidang **Jam** dan **Menit**, masukkan waktu (seberapa sering) metrik armada yang Anda inginkan untuk memancarkan data. CloudWatch
   + Pilih **Berikutnya**.

1. Pada langkah 3 **Tinjau dan buat**
   + Tinjau pengaturan langkah 1 dan langkah 2. Untuk mengedit pengaturan, pilih **Edit**.
   + Pilih **Buat metrik armada**.

Setelah pembuatan berhasil, metrik armada terdaftar di halaman **metrik Armada**.

### Memperbarui metrik armada
<a name="update-fleet-metrics-console"></a>

1. Pada halaman **metrik Armada**, pilih metrik armada yang ingin Anda perbarui.

1. Pada halaman **Detail** metrik armada, pilih **Edit**. Ini membuka langkah-langkah pembuatan di mana Anda dapat memperbarui metrik armada Anda di salah satu dari tiga langkah. 

1. Setelah Anda selesai memperbarui metrik armada, pilih **Perbarui metrik armada**.

### Hapus metrik armada
<a name="delete-fleet-metrics-console"></a>

1. Pada halaman **metrik Armada**, pilih metrik armada yang ingin Anda hapus.

1. Pada halaman berikutnya yang menampilkan detail metrik armada Anda, pilih **Hapus**.

1. Di kotak dialog, masukkan nama metrik armada Anda untuk mengonfirmasi penghapusan.

1. Pilih **Hapus**. Langkah ini menghapus metrik armada Anda secara permanen.

## Mengelola metrik armada (CLI)
<a name="managing-fleet-metrics-cli"></a>

Bagian berikut menunjukkan cara menggunakan metrik AWS CLI untuk mengelola armada Anda. Pastikan Anda telah mengaktifkan pengindeksan armada dengan sumber dan konfigurasi data terkait sebelum membuat metrik armada. Untuk mengaktifkan pengindeksan armada untuk hal-hal atau grup benda Anda, ikuti instruksi dalam [Mengelola pengindeksan hal atau Mengelola pengindeksan](managing-index.md#enable-index) [grup hal](thinggroup-index.md#enable-group-index).

### Buat metrik armada
<a name="create-fleet-metrics"></a>

Anda dapat menggunakan perintah create-fleet-metric CLI untuk membuat metrik armada. 

```
aws iot create-fleet-metric --metric-name "YourFleetMetricName" --query-string "*" --period 60 --aggregation-field "registry.version" --aggregation-type name=Statistics,values=sum
```

Output dari perintah ini berisi nama dan Amazon Resource Name (ARN) dari metrik armada Anda. Outputnya terlihat seperti berikut:

```
{
    "metricArn": "arn:aws:iot:us-east-1:111122223333:fleetmetric/YourFleetMetricName", 
    "metricName": "YourFleetMetricName"
}
```

### Daftar metrik armada
<a name="list-fleet-metrics"></a>

Anda dapat menggunakan perintah list-fleet-metric CLI untuk mencantumkan semua metrik armada di akun Anda. 

```
aws iot list-fleet-metrics
```

Output dari perintah ini berisi semua metrik armada Anda. Outputnya terlihat seperti berikut:

```
{
    "fleetMetrics": [
        {
            "metricArn": "arn:aws:iot:us-east-1:111122223333:fleetmetric/YourFleetMetric1", 
            "metricName": "YourFleetMetric1"
        }, 
        {
            "metricArn": "arn:aws:iot:us-east-1:111122223333:fleetmetric/YourFleetMetric2", 
            "metricName": "YourFleetMetric2"
        }
    ]
}
```

### Jelaskan metrik armada
<a name="describe-fleet-metrics"></a>

Anda dapat menggunakan perintah describe-fleet-metric CLI untuk menampilkan informasi lebih rinci tentang metrik armada. 

```
aws iot describe-fleet-metric --metric-name "YourFleetMetricName"
```

Output dari perintah berisi informasi rinci tentang metrik armada yang ditentukan. Outputnya terlihat seperti berikut:

```
{
    "queryVersion": "2017-09-30", 
    "lastModifiedDate": 1625790642.355, 
    "queryString": "*", 
    "period": 60, 
    "metricArn": "arn:aws:iot:us-east-1:111122223333:fleetmetric/YourFleetMetricName", 
    "aggregationField": "registry.version", 
    "version": 1, 
    "aggregationType": {
        "values": [
            "sum"
        ], 
        "name": "Statistics"
    }, 
    "indexName": "AWS_Things", 
    "creationDate": 1625790642.355, 
    "metricName": "YourFleetMetricName"
}
```

### Memperbarui metrik armada
<a name="update-fleet-metrics"></a>

Anda dapat menggunakan perintah update-fleet-metric CLI untuk memperbarui metrik armada. 

```
aws iot update-fleet-metric --metric-name "YourFleetMetricName" --query-string "*" --period 120 --aggregation-field "registry.version" --aggregation-type name=Statistics,values=sum,count --index-name AWS_Things
```

 update-fleet-metricPerintah tidak menghasilkan output apa pun. Anda dapat menggunakan perintah describe-fleet-metric CLI untuk melihat hasilnya.

```
{
    "queryVersion": "2017-09-30", 
    "lastModifiedDate": 1625792300.881, 
    "queryString": "*", 
    "period": 120, 
    "metricArn": "arn:aws:iot:us-east-1:111122223333:fleetmetric/YourFleetMetricName", 
    "aggregationField": "registry.version", 
    "version": 2, 
    "aggregationType": {
        "values": [
            "sum", 
            "count"
        ], 
        "name": "Statistics"
    }, 
    "indexName": "AWS_Things", 
    "creationDate": 1625792300.881, 
    "metricName": "YourFleetMetricName"
}
```

### Hapus metrik armada
<a name="delete-fleet-metrics"></a>

Gunakan perintah delete-fleet-metric CLI untuk menghapus metrik armada. 

```
aws iot delete-fleet-metric --metric-name "YourFleetMetricName"
```

Perintah ini tidak menghasilkan output apa pun jika penghapusan berhasil atau jika Anda menentukan metrik armada yang tidak ada.

Untuk informasi selengkapnya, lihat [Memecahkan masalah metrik armada](fleet-indexing-troubleshooting.md#fleet-metrics-troubleshooting).

## Otorisasi penandaan sumber daya IoT
<a name="managing-fleet-metrics-policy"></a>

Untuk kontrol yang lebih baik atas metrik armada yang dapat Anda buat, modifikasi, atau gunakan, Anda dapat melampirkan tag ke metrik armada.

Untuk menandai metrik armada yang Anda buat dengan menggunakan Konsol Manajemen AWS atau AWS CLI, Anda harus menyertakan `iot:TagResource` tindakan dalam kebijakan IAM untuk memberikan izin kepada pengguna. Jika kebijakan IAM Anda tidak disertakan`iot:TagResource`, tindakan apa pun untuk membuat metrik armada dengan tag akan menampilkan `AccessDeniedException` kesalahan.

Untuk informasi umum tentang menandai sumber daya Anda, lihat [Menandai sumber daya Anda AWS IoT](https://docs.aws.amazon.com//iot/latest/developerguide/tagging-iot.html).

### Contoh kebijakan IAM
<a name="managing-fleet-metrics-policy-example"></a>

Lihat contoh kebijakan IAM berikut yang memberikan izin penandaan saat Anda membuat metrik armada:

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Action": [
				"iot:TagResource"
			],
			"Effect": "Allow",
			"Resource": [
				"arn:aws:iot:*:*:fleetmetric/*"
			]
		},
		{
			"Action": [
				"iot:CreateFleetMetric"
			],
			"Effect": "Allow",
			"Resource": [
				"arn:aws:iot:*:*:index/*",
				"arn:aws:iot:*:*:fleetmetric/*"
			]
		}
	]
}
```

Untuk informasi lebih lanjut, lihat [Tindakan, sumber daya, kunci syarat untuk AWS IoT](https://docs.aws.amazon.com//service-authorization/latest/reference/list_awsiot.html).