AWS IoT Device Client로 메시지 게시 시연 - AWS IoT Core

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

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 메시지를 전송하려면
  1. 이 절차를 수행하는 동안 Raspberry Pi에 연결된 로컬 호스트 컴퓨터의 터미널 창과 MQTT 테스트 클라이언트(MQTT test client)가 있는 창이 모두 표시되는지 확인합니다.

  2. 터미널 창에서 이 명령을 입력하여 구성 파일 생성에서 생성한 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)를 검토합니다.

  3. MQTT 테스트 클라이언트(MQTT test client)구독(Subscriptions) 창에서 test/dc/pubtopic 메시지 주제로 Hello World! 메시지가 전송되었음을 확인할 수 있습니다.

  4. AWS IoT Device Client에 오류가 표시되지 않고 MQTT 테스트 클라이언트(MQTT test client)test/dc/pubtopic 메시지로 Hello World!가 전송되었음이 확인되면 연결을 성공적으로 시연한 것입니다.

  5. 터미널 창에서 ^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가 게시할 사용자 정의 메시지를 생성하려면
  1. 터미널 창에서 nano 등의 텍스트 편집기를 엽니다.

  2. 텍스트 편집기에 다음 JSON 문서를 복사하여 붙여 넣습니다. 이것은 AWS IoT Device Client가 게시하는 MQTT 메시지 페이로드가 됩니다.

    { "temperature": 28, "humidity": 80, "barometer": 1013, "wind": { "velocity": 22, "bearing": 255 } }
  3. 텍스트 편집기의 내용을 ~/messages/sample-ws-message.json으로 저장합니다.

  4. 다음 명령을 입력하여 방금 생성한 메시지 파일의 권한을 설정합니다.

    chmod 600 ~/messages/*
AWS IoT Device Client가 사용자 정의 메시지를 전송하는 데 사용할 구성 파일을 생성하려면
  1. 터미널 창의 nano와 같은 텍스트 편집기에서 기존 AWS IoT Device Client 구성 파일을 엽니다. ~/dc-configs/dc-pubsub-config.json.

  2. 다음과 같이 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"
  3. 텍스트 편집기의 내용을 ~/dc-configs/dc-pubsub-custom-config.json으로 저장합니다.

  4. 이 명령을 실행하여 새로운 구성 파일에 대한 권한을 설정합니다.

    chmod 644 ~/dc-configs/dc-pubsub-custom-config.json

AWS IoT Device Client를 사용하여 사용자 정의 MQTT 메시지 게시

이 변경 사항은 MQTT 메시지 페이로드의 내용에만 영향을 주므로 현재 정책이 계속 작동합니다. 그러나 MQTT 주제(~/dc-configs/dc-pubsub-custom-config.jsonpublish-topic 값으로 정의됨)가 변경된 경우 Raspberry Pi가 새 MQTT 주제에 게시할 수 있도록 iot::Publish 정책 설명도 수정해야 합니다.

AWS IoT Device Client에서 MQTT 메시지를 전송하려면
  1. 이 절차를 수행하는 동안 터미널 창과 MQTT 테스트 클라이언트(MQTT test client)가 있는 창이 모두 표시되는지 확인합니다. 또한 MQTT 테스트 클라이언트(MQTT test client)가 여전히 # 주제 필터를 구독하고 있는지 확인합니다. 그렇지 않은 경우 # 주제 필터를 다시 구독합니다.

  2. 터미널 창에서 이 명령을 입력하여 구성 파일 생성에서 생성한 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)를 검토합니다.

  3. MQTT 테스트 클라이언트(MQTT test client)구독(Subscriptions) 창에서 test/dc/pubtopic 메시지 주제로 사용자 정의 메시지 페이로드가 전송되었음을 확인할 수 있습니다.

  4. AWS IoT Device Client에 오류가 표시되지 않고 MQTT 테스트 클라이언트(MQTT test client)에서 test/dc/pubtopic 메시지에 게시한 사용자 정의 메시지 페이로드가 표시되면 사용자 정의 메시지를 성공적으로 게시한 것입니다.

  5. 터미널 창에서 ^C(Ctrl-C)를 입력하여 AWS IoT Device Client를 중지합니다.

AWS IoT Device Client가 사용자 정의 메시지 페이로드를 게시했음을 보여주었으면 AWS IoT Device Client로 메시지 구독 시연 단계를 진행할 준비가 된 것입니다.