入門チュートリアル - AWS IoT Core

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

入門チュートリアル

このチュートリアルでは、フリートインデックス作成を使用して位置データ のインデックスを作成する方法を示します。わかりやすくするために、デバイスを表すモノを作成し、名前付きシャドウに位置情報データを保存し、位置インデックス作成のためにモノのインデックス作成設定を更新し、サンプルジオクエリを実行して放射境界内のデバイスを検索します。

このチュートリアルの完了には 15 分ほどかかります。

前提条件

モノとシャドウを作成する

デバイスを表すモノと、その位置データを保存する名前付きシャドウを作成します (座標 47.61564、-122.33584)。

  1. 次のコマンドを実行して、Bike-1 という名前のバイクを表すモノを作成します。を使用してモノを作成する方法の詳細については AWS CLI、「 AWS CLIリファレンス」の「モノの作成」を参照してください。

    aws iot create-thing --thing-name "Bike-1" \ --attribute-payload '{"attributes": {"model":"OEM-2302-12", "battery":"35", "acqDate":"06/09/23"}}'

    このコマンドの出力は以下のようになります。

    { "thingName": "Bike-1", "thingArn": "arn:aws:iot:us-east-1:123456789012:thing/Bike-1", "thingId": "df9cf01d-b0c8-48fe-a2e2-e16cff6b23df" }
  2. 次のコマンドを実行して、Bike-1 の場所データを保存する名前付きシャドウを作成します (座標 47.61564、-122.33584)。を使用して名前付きシャドウを作成する方法の詳細については AWS CLI、「 AWS CLIリファレンス」の「update-thing-shadow」を参照してください。

    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" \

    このコマンドでは、出力が生成されません。作成した名前付きシャドウを表示するには、list-named-shadows-for-thing CLI コマンドを実行します。

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

    このコマンドの出力は以下のようになります。

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

モノのインデックス作成設定を更新する

位置データのインデックスを作成するには、モノのインデックス作成設定を更新して、位置データを含める必要があります。このチュートリアルでは、位置データは名前付きシャドウに保存されるため、 thingIndexingModeREGISTRY (最小要件で) に設定し、 namedShadowIndexingModeを に設定しON、位置データを 設定に追加します。この例では、名前付きシャドウの名前とシャドウの位置データパスを に追加する必要がありますfilter

  1. コマンドを実行して、ロケーションインデックス作成のインデックス作成設定を更新します。

    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"}] } }'

    コマンドでは、出力が生成されません。更新が完了するまでしばらく待つ必要がある場合があります。ステータスを確認するには、describe-index CLI コマンドを実行します。indexStatus と表示されている場合はACTIVE、モノのインデックス作成の更新が完了しました。

  2. コマンドを実行して、インデックス作成設定を確認します。この手順は省略可能です。

    aws iot get-indexing-configuration

    出力は次のようになります。

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

Geoquery を実行する

これで、モノのインデックス作成設定を更新して、位置データを含めました。一部の地理クエリを作成して実行し、目的の検索結果を取得できるかどうかを確認してください。地理クエリは、クエリ構文 に従う必要があります。便利な地理的クエリの例は、「」で確認できます地理的クエリの例

次のコマンド例では、地理クエリを使用して、座標 (47.6204,-122.3491) を使用して中心点から 15.5 km の放射距離内にあるデバイスshadow.name.Bike1-shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5kmを検索します。

aws iot search-index --query-string "shadow.name.Bike1-shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km"

座標「lat」: 47.6153、「lon」: -122.3333 に、中心点から 15.5 km 以内にあるデバイスがあるため、このデバイス (Bike-1) を出力で確認できます。出力は次のようになります。

{ "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}" } ] }

詳細については、「ロケーションデータのインデックス作成」を参照してください。