AWS CLI를 사용한 IoTcore의 thing 관리 및 업데이트

7109 단어 awsIoT
본문 개요
AWSIoTcore에서 thing의 제작과 정보 업데이트는 GUI가 아닌 명령으로 구현되는 절차다.
몇 대라면 GUI 작업만 완성되지만 업무상 사용하면 안 된다.
앞으로 몇 십 대의 설비를 관리할 때 명령을 사용하여 관리할 수 있도록 하기 위한 글이다.
AWS 공식 문서
이 기사를 작성할 때 아래 AWS 공식 문서에서 정보를 얻었습니다.(영어만)
에서는 IoTcore에 사용되는 API의 일람표를 설명합니다.
각 API 페이지 아래에 있는 SeeAloso를 통해 AWS Command Line Interface를 선택하여 각 명령의 사용 방법을 확인했습니다.
본 보도에서 실시하다
클라우드 9에서 제작한 터미널부터 다음과 같은 내용을 실시한다.
・thing의 제작
• 그룹 만들기
/조합에 추가
유형 제작
• 섀도우 업데이트
인증 환경 만들기
Could9을 통해 Linux 환경을 만듭니다.
1. 클라우드 9의 서비스에서 "CreateEnviroment"를 클릭하세요.

2. 환경 이름을 입력하고 Nexttep을 클릭합니다.

3. 기본 상태로 Nexttep을 클릭합니다.

4. "CreateEnvironment"를 클릭합니다.

4~5분 환경 제작 완료.
다음 절차는 창설된 환경을 이용하여 실시한다.
thing 만들기
다음 명령을 실행합니다.
aws iot create-thing  --thing-name test_thing1
다음 결과를 표시하면 됩니다.
(구역과thingID는 매복상태로 기재되어 있다. 이후에도 구역 등 환경에 따라 *로 다른 정보를 교체할 것이다.)
{
    "thingArn": "arn:aws:iot:*******:******:thing/test_thing1", 
    "thingName": "test_thing1", 
    "thingId": "******-******-******-******"
}
그룹 생성
다음 명령을 실행합니다.
aws iot create-thing-group --thing-group-name test_group1
위 명령을 실행해도 아무 내용이 표시되지 않습니다.
다음 명령으로 만든 그룹을 표시하면 됩니다.
aws iot list-thing-groups
{
    "thingGroups": [
        {
            "groupName": "test_group1", 
            "groupArn": "arn:aws:iot:******:**********:thinggroup/test_group1"
        }
    ]
}
위 명령을 실행해도 아무 내용이 표시되지 않습니다.
다음 명령에 추가된 그룹을 표시하면 됩니다.
aws iot list-thing-groups-for-thing  --thing-name test_thing1
{
    "thingGroups": [
        {
            "groupName": "test_group1", 
            "groupArn": "arn:aws:iot:*******:**********:thinggroup/test_group1"
        }
    ]
}
그룹에 추가
명령으로 생성된thing을 그룹에 추가합니다.
다음 명령을 실행합니다.
aws iot add-thing-to-thing-group --thing-name test_thing1 --thing-group-name test_group1
유형 만들기
다음 명령을 실행합니다.
aws iot create-thing-type --thing-type-name test_type_1
다음 결과를 표시하면 됩니다.
{
    "thingTypeName": "test_type_1", 
    "thingTypeId": "*********-****-****-***********", 
    "thingTypeArn": "arn:aws:iot:*****:*******:thingtype/test_type_1"
}
유형에 추가
생성된 유형을 아이템에 추가합니다.
aws iot update-thing --thing-name "test_thing1" --thing-type-name "test_type_1" 
섀도우 변경
그림자를 업데이트할 때 다음 json 파일을 준비하십시오.
update.json
{"state":{"reported":{"power":"off"}},"metadata":{"reported":{"power":{"timestamp":1638316777}}},"version":1,"timestamp":1638316777}
위의 파일을 작업 중인 현재 디렉터리에 설정하고 다음 명령을 실행합니다.
aws iot-data update-thing-shadow --thing-name test_thing1   --payload '{"state": {"reported" : {"power" : "off"}}}'   update.json   
다음 명령을 사용하여 업데이트된 섀도우를 확인합니다.
aws iot-data get-thing-shadow --thing-name test_thing1 output.json
현재 디렉터리의 output입니다.제이슨 출력하면 OK.
검색 대상
이번에는 예를 들어 type을 검색 키로 검색합니다.
aws iot search-index --query-string "thingTypeName:test_type_1"
검색-idex 명령에 사용되는 쿼리문 "thingType Name:test type 1"은 GUI에서도 "고급 검색"에서 사용할 수 있습니다.
{
    "things": [
        {
            "thingTypeName": "test_type_1", 
            "thingGroupNames": [
                "test_group1"
            ], 
            "connectivity": {
                "connected": false
            }, 
            "thingName": "test_thing1", 
            "attributes": {
                "test": "0"
            }, 
            "shadow": "{\"reported\":{\"power\":\"off\"},\"metadata\":{\"reported\":{\"power\":{\"timestamp\":1638316777}}},\"version\":1}", 
            "thingId": "******-*****-****-*****-********"
        }
    ]
}
(보충) 검색과 자유 인덱스의 차이
이 보도는 고도의 검색(자유 인덱스)을 이용하여thing의 검색을 실시하였다.
다음은 일반적인 검색과 다른 점을 총결하였다.
일반적인 검색도 다음과 같은 내용을 검색할 수 있다.
モノの名前 
モノのタイプ
モノのグループ
請求グループ
検索可能な属性名
위의 내용 외에 고급 검색(자유 색인)에서도 다음 항목이 검색 객체가 됩니다.
シャドウの検索
AND検索(A且つB)
特殊文字のエスケープ (\と同様)
検索可能な属性名以外の属性
(보충) IoTcore의 각 설정값에 사용할 수 있는 문자 종류
다음은 IoTcore에서 사용되는 각 설정에서 사용할 수 있는 문자의 종류를 요약한 것입니다.
AWSCLI에서 구현하면 사용할 수 없는 문자열이 많이 나오기 때문에 당시 사용할 수 없었던 문자를 사용했는지 확인해야 한다.
 
영숫자(반각)
영숫자(전각)
-
:
_
,
.
@
/
#
스페이스 바
일본어 (가명)
참고(AWS의 오류 메시지 전재)
thingname

×



×
×
×
×
×
×
×
영숫자, 하이픈, 콜론, 밑줄만 물건의 이름에 사용할 수 있다.
유형 이름

×



×
×
×
×
×
×
×
영숫자, 하이픈, 콜론, 밑줄만 물품 유형의 명칭에 사용할 수 있습니다
속성 이름

×








×
×
등록 정보 키에는 문자와 숫자가 포함됩니다., @/: #-사용만 가능합니다.
속성 값

×








×
×
속성 값에는 영숫자 및., @/: #-사용만 가능합니다.
그룹 이름

×



×
×
×
×
×
×
×
단일 그룹 이름에는 영숫자, 하이픈, 콜론 및 밑줄만 사용할 수 있습니다.
섀도우 이름

×



×
×
×
×
×
×
×
문자, 하이픈, 콜론 또는 밑줄을 포함한 고유한 이름을 입력합니다.섀도우 이름에는 공백을 사용할 수 없습니다.
섀도우 값(json 형식)










○(전각/반각)

 
총결산
이번 기사에서는 GUI를 사용하지 않고 명령어로만 AWSIotcore 조작이 이뤄졌다.
최종적으로python 등으로 실시하더라도 API 단위로 조작할 수 있다면 테스트에서 쉽게 역할을 발휘할 수 있다.

좋은 웹페이지 즐겨찾기