モノのクエリの例 - AWS IoT Core

モノのクエリの例

クエリ構文を使用して、クエリ文字列にクエリを指定します。クエリは、SearchIndex API に渡されます。次の表に、クエリ文字列の例を示します。

クエリ文字列 結果

abc

レジストリ、シャドウ(従来の名前のないシャドウと名前付きシャドウ)、またはデバイスディフェンダー違反フィールドで「abc」をクエリします。

thingName:myThingName

「myThingName」という名前のモノをクエリします。

thingName:my*

「my」で始まる名前のモノをクエリします。

thingName:ab?

「aba」、「abb」、「abc」など、名前に「ab」と追加で 1 つの文字を加えたモノをクエリします。

thingTypeName:aa

「aa」タイプに関連付けられているモノをクエリします。

attributes.myAttribute:75

値が 75 の「myAttribute」という属性を持つモノをクエリします。

attributes.myAttribute:[75 TO 80]

値が数値範囲 (75—80) 内にある「myAttribute」という属性を持つモノをクエリします。

attributes.myAttribute:{75 TO 80]

値が数値範囲 (>75 および <=80) 内にある「myAttribute」という属性を持つモノをクエリします。

attributes.serialNumber:["abcd" TO "abcf"]

値が英数字の文字列範囲内にある「serialNumber」という属性を持つモノをクエリします。このクエリは、値が「abcd」、「abce」、または「abcf」の「serialNumber」属性を持つモノを返します。

attributes.myAttribute:i*t

値が「i」で、その後に任意の文字数、そして「t」が続く「myAttribute」という属性を持つモノをクエリします。

attributes.attr1:abc AND attributes.attr2<5 NOT attributes.attr3>10

ブール式を使用して、用語の組み合わせとなるモノをクエリします。このクエリは、値が「abc」の属性「attr1」、値が 5 未満の属性「attr2」、および値が 10 以下の属性「attr3」のモノを返します。

shadow.hasDelta:true

デルタ要素を持つ名前のないシャドウを持つモノをクエリします。

NOT attributes.model:legacy

「model」という属性が「legacy」でないモノをクエリします。

shadow.reported.stats.battery:{70 TO 100} (v2 OR v3) NOT attributes.model:legacy

以下を持つモノをクエリします。

  • 70 ~ 100 の値を持つ Thing Shadow の stats.battery 属性。

  • モノの名前、タイプ名、または属性値で発生するテキスト「v 2」または「v 3」。

  • モノの model 属性は「legacy」に設定されません。

shadow.reported.myvalues:2

Shadow の reported セクションの myvalues 配列の値に 2 が含まれているモノをクエリします。

shadow.reported.location:* NOT shadow.desired.stats.battery:*

以下を持つモノをクエリします。

  • Shadow の location セクションに reported 属性が存在します。

  • Shadow の desired セクションに stats.battery 属性が存在しません。

shadow.name.<shadowName>.hasDelta:true

指定された名前とデルタ要素のシャドウを持つモノをクエリします。

shadow.name.<shadowName>.desired.filament:*

指定された名前および目的のフィラメントプロパティのシャドウを持つモノをクエリします。

shadow.name.<shadowName>.reported.location:*

名前付きシャドウの報告されたセクションに location 属性が存在し、指定された名前のシャドウを持つモノをクエリします。

connectivity.connected:true

接続されているすべてのデバイスに対するクエリです。

connectivity.connected:false

切断されたすべてのデバイスに対するクエリです。

connectivity.connected:true AND connectivity.timestamp : [1557651600000 TO 1557867600000]

特定の範囲 (1557651600000~1557867600000) 内の接続タイムスタンプを持つ、接続されているすべてのデバイスに対するクエリです。タイムスタンプはエポックからのミリ秒単位で指定されます。

connectivity.connected:false AND connectivity.timestamp : [1557651600000 TO 1557867600000]

特定の範囲 (1557651600000 ~ 1557867600000) 内の切断タイムスタンプを持つ、切断されているすべてのデバイスに対するクエリです。タイムスタンプはエポックからのミリ秒単位で指定されます。

connectivity.connected:true AND connectivity.timestamp > 1557651600000

特定の範囲 (1557651600000 より大) 内の接続タイムスタンプを持つ、接続されているすべてのデバイスに対するクエリです。タイムスタンプはエポックからのミリ秒単位で指定されます。

connectivity.connected:*

接続情報があるすべてのデバイスに対するクエリです。

connectivity.disconnectreason: *

connectivity.disconnectReason のあるすべてのデバイスに対するクエリです。

connectivity.disconnectReason:CLIENT_INITIATED_DISCONNECT

CLIENT_INITIATED_DISCONNECTが原因で切断されたすべてのデバイスのクエリです。

deviceDefender.violationCount:[0 TO 100]

数値範囲 (0—100) 内の Device Defender 違反のカウント値を持つモノをクエリします。

deviceDefender.<device-SecurityProfile>.disconnectBehavior.inViolation:true

セキュリティプロファイル device-SecurityProfile で定義されているように、動作 disconnectBehavior に違反しているモノをクエリします。inViolation:false は有効なクエリではないことに注意してください。

deviceDefender.<device-SecurityProfile>.disconnectBehavior.lastViolationValue.number>2

最新の違反のイベント値が 2 より大きく、セキュリティプロファイル device-SecurityProfile で定義されているように動作 disconnectBehavior に違反しているモノをクエリします。

deviceDefender.<device-SecurityProfile>.disconnectBehavior.lastViolationTime>1634227200000

指定したエポックタイムの後に最新の違反イベントがあり、セキュリティプロファイル device-SecurityProfile で定義されているように動作 disconnectBehavior に違反しているモノをクエリします。