AWS IoT Events에 대한 입력 데이터를 AWS CLI(v2)에서 생성 및 전송하는 방법

3869 단어 awsIoTEventsIoTAWS
AWS IoT Events를 사용하여 개발할 때 테스트 데이터 전송이 필요합니다.
콘솔에서 데이터 보내기 > 샘플 데이터 보내기에서도 데이터를 전송할 수 있습니다.


이것을 AWS CLI(v2)로 구현하는 방법은 이 항목입니다.

이론에서 코드 (TL; DR)



Input(입력) IoTData1에 대해 {"id":"id1","v1":25.0,"v2":"foobar","v3":false} 라는 데이터를 보내고 싶은 경우:

bash
$ aws iotevents-data batch-put-message \
--messages messageId=${RANDOM},inputName=IoTData1,payload=$(echo '{"id":"id1","v1":25.0,"v2":"foobar","v3":false}' | base64 -w0)

※ AWS CLI v2 사용
※ 요 base64 커멘드 (Ubuntu 라면 coreutils 에 들어 있습니다)

해설



내가 좋아하는 AWS IoT Events 은 장치의 상태 머신 (상태 전이)을 간결하게 구현할 수 있습니다.
기본 이야기는 AWS IoT Events는 IoT 디바이스의 "상태 머신"을 참조하십시오.

AWS IoT Events 구현은 "Input(입력)"과 "Detector Model(탐지기 모델)"의 두 가지로 구성됩니다.
Input: 스키마와 같습니다. 어떤 입력이 되는지를 Input 내에서 미리 정의해 둡니다. Detector Model: 상태 전이 자체입니다. Input 의 입력은 $input.INPUT_NAME.json_path 에서 참조할 수 있습니다. Detector Model을 움직이려면 Input에 데이터를 보냅니다. 그리고 그 Input 를 참조하고 있는 Detector Model 가 실행되기 때문에, Input 가 엔트리 포인트라고 말해도 좋을 것입니다. AWS CLI(v2)에서 AWS IoT Events로 데이터 보내기 AWS IoT 이벤트를 AWS CLI에서 Input으로 데이터를 전송하려면 iotevents-data 부속 명령을 사용합니다. --messages 에는 3개의 파라미터를 설정합니다. messageId : 송신 데이터의 ID. 어쨌든 유일하게 되면 무엇이든 좋다. CloudWatch Logs에서 검색할 때 사용하는 정도입니다. 예제에서는 Bash의 ${RANDOM}에서 생성합니다. uuidgen -r이라도 좋을 것입니다. InputName : 대상의 Input 이름. payload : Detector Model에 보낼 실제 데이터입니다. bash $aws iotevents-data batch-put-message\ --messages messageId=${RANDOM},inputName=IoTData1,payload=$(echo '{"id":"id1","v1":25.0,"v2":"foobar","v3":false}' | base64 -w0) 또는 JSON으로 입력하는 경우 다음과 같이 bash $aws iotevents-data batch-put-message\ --messages '{"messageId":"1","inputName":"IoTData1","payload":"'$(echo '{"tid":"id1","tmpr":25.0}' | base64 - w0) '"}' payload base64 payload 은 blob 이며 base64 encoded text로 보내기 때문에 base64 로 인코딩하고 있습니다.

AWS CLI v2에서 blob은 Base64 encoded text가 기본값입니다. 되었습니다.
※ payload 는 This can be a JSON string or a Base-64-encoded string representing binary data (in which case you must decode it). 입니다만 payload="{\"id\":\"id1\",\"v1\":25.0,\"v2\":\"foobar\",\"v3\":false}" 뭔가 좋은 방법이 없을까요 🤔

후기



곧 추석입니다!

EoT

좋은 웹페이지 즐겨찾기