시작하기 자습서 - AWS IoT Core

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

시작하기 자습서

이 가이드에서는 플릿 인덱싱을 사용하여 위치 데이터를 인덱싱하는 방법을 보여줍니다. 단순화를 위해 디바이스를 나타내는 사물을 생성하고 위치 데이터를 명명된 섀도우에 저장하고, 위치 인덱싱을 위한 사물 인덱싱 구성을 업데이트하고, 예제 지오쿼리를 실행하여 방사형 경계 내에서 디바이스를 검색합니다.

이 자습서는 완료하는 데 약 15분이 소요됩니다.

사전 조건 

사물과 그림자 만들기

디바이스를 나타내는 사물을 만들고 디바이스의 위치 데이터 (좌표 47.61564, -122.33584) 를 저장할 이름이 지정된 섀도우를 만듭니다.

  1. 다음 명령어를 실행하여 Bike-1이라는 이름의 자전거를 나타내는 물건을 만드세요. 를 사용하여 AWS CLI사물을 만드는 방법에 대한 자세한 내용은 참조에서 생성-thing을 참조하십시오. 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) 를 저장할 명명된 섀도우를 생성합니다. 를 사용하여 명명된 섀도우를 만드는 방법에 대한 자세한 내용은 from Reference를 참조하십시오. AWS CLIupdate-thing-shadowAWS CLI

    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 }

사물 인덱싱 구성 업데이트

위치 데이터를 색인화하려면 위치 데이터를 포함하도록 사물 색인 구성을 업데이트해야 합니다. 이 자습서에서는 위치 데이터가 명명된 섀도우에 저장되므로 REGISTRY (최소 요구 사항 기준) namedShadowIndexingMode 로 설정하고, 로 설정한 다음ON, 구성에 위치 데이터를 추가합니다. thingIndexingMode 이 예시에서는 명명된 섀도우의 이름과 섀도우의 위치 데이터 경로를 추가해야 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 명령을 실행합니다. ACTIVE:가 indexStatus 표시되면 사물 인덱싱 업데이트가 완료된 것입니다.

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

지오쿼리 실행

이제 위치 데이터를 포함하도록 사물 색인 구성을 업데이트했습니다. 지오쿼리를 생성하고 실행하여 원하는 검색 결과를 얻을 수 있는지 확인해 보십시오. 지오쿼리는 쿼리 구문을 따라야 합니다. 에서 몇 가지 유용한 지오쿼리 예제를 찾을 수 있습니다. 지오쿼리 예시

다음 예제 명령에서는 지오쿼리를 shadow.name.Bike1-shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km 사용하여 중심점으로부터 반경 방향 거리 15.5km 내에 있는 장치를 좌표 (47.6204, -122.3491) 와 함께 검색합니다.

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

중심점으로부터 15.5km 거리에 있는 “lat”: 47.6153, “lon”: -122.3333 좌표에 장치가 있으므로 출력에서 이 장치 (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}" } ] }

자세한 내용은 위치 데이터 인덱싱을(를) 참조하세요.