기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS IoT Device Client로 메시지 게시 시연
이 섹션의 절차에서는 AWS IoT Device Client가 기본 및 사용자 정의 MQTT 메시지를 전송할 수 있는 방법을 보여줍니다.
이러한 연습을 위해 이전 단계에서 생성한 정책의 이러한 정책 설명은 Raspberry Pi에 다음 작업을 수행할 수 있는 권한을 부여합니다.
-
iot:Connect
AWS IoT Device Client를 실행하는 Raspberry Pi인
PubSubTestThing
이라는 클라이언트에 연결할 수 있는 권한을 부여합니다.{ "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833:client/PubSubTestThing" ] }
-
iot:Publish
Raspberry Pi에
test/dc/pubtopic
의 MQTT 주제가 있는 메시지를 게시할 수 있는 권한을 부여합니다.{ "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833:topic/test/dc/pubtopic" ] }
iot:Publish
작업은 리소스 배열에 나열된 MQTT 주제에 게시할 수 있는 권한을 부여합니다. 이러한 메시지의 내용은 정책 설명에 의해 제어되지 않습니다.
AWS IoT Device Client를 사용하여 기본 메시지 게시
이 절차는 AWS IoT Device Client를 실행하여 MQTT 테스트 클라이언트(MQTT test client)가 수신하고 표시하는 단일 기본 MQTT 메시지를 게시합니다.
AWS IoT Device Client에서 기본 MQTT 메시지를 전송하려면
-
이 절차를 수행하는 동안 Raspberry Pi에 연결된 로컬 호스트 컴퓨터의 터미널 창과 MQTT 테스트 클라이언트(MQTT test client)가 있는 창이 모두 표시되는지 확인합니다.
-
터미널 창에서 이 명령을 입력하여 구성 파일 생성에서 생성한 config 파일을 사용하여 AWS IoT Device Client를 실행합니다.
cd ~/aws-iot-device-client/build ./aws-iot-device-client --config-file ~/dc-configs/dc-pubsub-config.json
터미널 창에서 AWS IoT Device Client는 실행 시 발생하는 오류와 정보 메시지를 표시합니다.
터미널 창에 오류가 표시되지 않으면 MQTT 테스트 클라이언트(MQTT test client)를 검토합니다.
-
MQTT 테스트 클라이언트(MQTT test client)의 구독(Subscriptions) 창에서
test/dc/pubtopic
메시지 주제로 Hello World! 메시지가 전송되었음을 확인할 수 있습니다. -
AWS IoT Device Client에 오류가 표시되지 않고 MQTT 테스트 클라이언트(MQTT test client)의
test/dc/pubtopic
메시지로 Hello World!가 전송되었음이 확인되면 연결을 성공적으로 시연한 것입니다. -
터미널 창에서
^C
(Ctrl-C)를 입력하여 AWS IoT Device Client를 중지합니다.
AWS IoT Device Client가 기본 MQTT 메시지를 게시했음을 보여주었으면 AWS IoT Device Client를 사용하여 사용자 정의 메시지 게시로 진행할 준비가 된 것입니다.
AWS IoT Device Client를 사용하여 사용자 정의 메시지 게시
이 섹션의 절차에서는 사용자 정의 MQTT 메시지를 생성한 다음 AWS IoT Device Client를 실행하여 MQTT 테스트 클라이언트(MQTT test client)가 수신하고 표시할 수 있도록 사용자 정의 MQTT 메시지를 한 번 게시합니다.
AWS IoT Device Client에 대한 사용자 정의 MQTT 메시지 생성
Raspberry Pi에 연결된 로컬 호스트 컴퓨터의 터미널 창에서 다음 단계를 수행합니다.
AWS IoT Device Client가 게시할 사용자 정의 메시지를 생성하려면
-
터미널 창에서
nano
등의 텍스트 편집기를 엽니다. -
텍스트 편집기에 다음 JSON 문서를 복사하여 붙여 넣습니다. 이것은 AWS IoT Device Client가 게시하는 MQTT 메시지 페이로드가 됩니다.
{ "temperature": 28, "humidity": 80, "barometer": 1013, "wind": { "velocity": 22, "bearing": 255 } }
-
텍스트 편집기의 내용을
~/messages/sample-ws-message.json
으로 저장합니다. -
다음 명령을 입력하여 방금 생성한 메시지 파일의 권한을 설정합니다.
chmod 600 ~/messages/*
AWS IoT Device Client가 사용자 정의 메시지를 전송하는 데 사용할 구성 파일을 생성하려면
-
터미널 창의
nano
와 같은 텍스트 편집기에서 기존 AWS IoT Device Client 구성 파일을 엽니다.~/dc-configs/dc-pubsub-config.json
. -
다음과 같이
samples
객체를 편집합니다. 이 파일의 다른 부분은 변경할 필요가 없습니다."samples": { "pub-sub": { "enabled": true, "publish-topic": "test/dc/pubtopic", "publish-file": "
~/messages/sample-ws-message.json
", "subscribe-topic": "test/dc/subtopic", "subscribe-file": "~/.aws-iot-device-client/log/pubsub_rx_msgs.log" -
텍스트 편집기의 내용을
~/dc-configs/dc-pubsub-custom-config.json
으로 저장합니다. -
이 명령을 실행하여 새로운 구성 파일에 대한 권한을 설정합니다.
chmod 644 ~/dc-configs/dc-pubsub-custom-config.json
AWS IoT Device Client를 사용하여 사용자 정의 MQTT 메시지 게시
이 변경 사항은 MQTT 메시지 페이로드의 내용에만 영향을 주므로 현재 정책이 계속 작동합니다. 그러나 MQTT 주제(~/dc-configs/dc-pubsub-custom-config.json
의 publish-topic
값으로 정의됨)가 변경된 경우 Raspberry Pi가 새 MQTT 주제에 게시할 수 있도록 iot::Publish
정책 설명도 수정해야 합니다.
AWS IoT Device Client에서 MQTT 메시지를 전송하려면
-
이 절차를 수행하는 동안 터미널 창과 MQTT 테스트 클라이언트(MQTT test client)가 있는 창이 모두 표시되는지 확인합니다. 또한 MQTT 테스트 클라이언트(MQTT test client)가 여전히 # 주제 필터를 구독하고 있는지 확인합니다. 그렇지 않은 경우 # 주제 필터를 다시 구독합니다.
-
터미널 창에서 이 명령을 입력하여 구성 파일 생성에서 생성한 config 파일을 사용하여 AWS IoT Device Client를 실행합니다.
cd ~/aws-iot-device-client/build ./aws-iot-device-client --config-file ~/dc-configs/dc-pubsub-custom-config.json
터미널 창에서 AWS IoT Device Client는 실행 시 발생하는 오류와 정보 메시지를 표시합니다.
터미널 창에 오류가 표시되지 않으면 MQTT 테스트 클라이언트(MQTT test client)를 검토합니다.
-
MQTT 테스트 클라이언트(MQTT test client)의 구독(Subscriptions) 창에서
test/dc/pubtopic
메시지 주제로 사용자 정의 메시지 페이로드가 전송되었음을 확인할 수 있습니다. -
AWS IoT Device Client에 오류가 표시되지 않고 MQTT 테스트 클라이언트(MQTT test client)에서
test/dc/pubtopic
메시지에 게시한 사용자 정의 메시지 페이로드가 표시되면 사용자 정의 메시지를 성공적으로 게시한 것입니다. -
터미널 창에서
^C
(Ctrl-C)를 입력하여 AWS IoT Device Client를 중지합니다.
AWS IoT Device Client가 사용자 정의 메시지 페이로드를 게시했음을 보여주었으면 AWS IoT Device Client로 메시지 구독 시연 단계를 진행할 준비가 된 것입니다.