この記事について
IoTcoreの機能の一つであるフリートインデックスを中心に、少し細かい内容をドキュメントベースや実際に触った内容についてまとめています。
フリートインデックスで検索できる項目の例
- モノの名前
- 属性
- シャドウ(名前付き/クラシック)
- 接続状態
- タイプ
- グループ
以下の画像のように、インデックスが作成される対象を選択することで検索できるようになります。
AWS IoT > 設定 > フリートのインデックス作成の管理
フリートインデックスで可能な検索方式
検索方式 | 可否 | 検索例 |
---|---|---|
前方一致 | 可能 | thingName: A* (Aから始まるモノの名前) |
部分一致 | 不可 | - |
後方一致 | 不可 | - |
完全一致 | 可能 | thingName: test (名前がtestであるモノ) |
正規表現 | 不可 | - |
クエリ文で利用可能な機能については以下を参考にしています。
https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/query-syntax.html
前方一致の例として、*だけでなく?を使うことでも検索が可能です。
"thingName:ab?”というクエリ文では「ab」、「abb」、「abc」など、名前に「ab」と 1 つの追加文字を加えたモノを検索します。
https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/example-queries.html
IoTcoreで日本語が使える箇所
IoTcoreでは、各項目について使える文字種が以下のようになっています。
原則、日本語を使うことはできませんが、シャドウでは日本が使えるようになっています。
このため、フリートインデックス(高度な検索)でもシャドウの検索を行う場合のみ日本語が使えます。
英数字(半角) | 英数字(全角) | - | : | _ | , | . | @ | / | # | スペース | 日本語(カナ文字) | 備考(AWSのエラーメッセージを転記) | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
thing名 | ○ | × | ○ | ○ | ○ | × | × | × | × | × | × | × | モノの名前に使用できるのは、英数字、ハイフン、コロン、アンダースコアのみです。 |
タイプ名 | ○ | × | ○ | ○ | ○ | × | × | × | × | × | × | × | モノのタイプの名前に使用できるのは、英数字、ハイフン、コロン、アンダースコアのみです |
属性名 | ○ | × | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | × | 属性キーには、英数字および _.,@/:#- のみを使用できます。 |
属性値 | ○ | × | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | × | × | 属性値には、英数字および _.,@/:#- のみを使用できます。 |
グループ名 | ○ | × | ○ | ○ | ○ | × | × | × | × | × | × | × | モノのグループの名前に使用できるのは、英数字、ハイフン、コロン、アンダースコアのみです。 |
シャドウ名 | ○ | × | ○ | ○ | ○ | × | × | × | × | × | × | × | 文字、ハイフン、コロン、またはアンダースコアのみを含む一意の名前を入力してください。シャドウ名にスペースを含めることはできません。 |
シャドウ値(json形式) | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○(全角/半角) | ○ |
ここからは解釈になります。
何かしらの事情でIoTcoreに日本語を使わざるを得なくなった場合はシャドウで対応することになりそうです。
シャドウ状態データは動的であり、シャドウへのアクセス許可を持つデバイス、アプリ、その他のクラウドサービスによって変更できます。
ドキュメントを見る限り、シャドウに書き込まれる情報は動的なので属性やグループの代わりとしてシャドウを使うのは想定された使い方からは少し外れてしまうように見えます。
シャドウデータオブジェクトに含まれるデータは、他のシャドウや Thing オブジェクトのプロパティ (Thing の属性や MQTT メッセージのコンテンツなど) から独立しています。ただし、デバイスは、必要に応じて、異なる MQTT トピックとシャドウで同じデータを報告できます。
(引用元)
https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/iot-device-shadows.html