숫자만으로 Topic 사용이 가능할까?
=> Yes, 가능하다!
- Cloud9(이젠 볼 수 없는)에서 메시지를 잘 주고 받는 것을 확인할 수 있다
- AWS IoT MQTT Client 콘솔에서도 메시지가 정상적으로 도착하는 것을 확인할 수 있다.
-(dash)가 들어간 Topic 사용 가능할까?
=> Yes
_(underbar)가 들어간 Topic 사용 가능할까?
=> Yes
.이 들어간 Topic 사용 가능할까?
=> Yes
한글이 들어간 Topic 사용 가능할까?
=> 놀랍게도 된다.. Yes
AWS Best Practice IoT MQTT Topic
그럼에도 AWS에서 권장하는 Best Practice MQTT Topic은 다음을 참고 하면 된다.
- 계층적 구조로 /(슬래시)를 사용하여 구분한다
- 뒤로 갈수록 특정 지어질 수 있도록 짓는다
원격 측정 시에는 보통 다음과 같이 사용한다.
dt/<application>/<context>/<thing-name>/<dt-type>
예를 들어 자동차 회사의 제네시스라는 차량의 G-001 모델이름의 상태 값이라고 하면..
dt/hdcar/genesis/G-001/st 라고 한다.
명령에 대해서 지을 때에는 다음과 같이 사용한다.
- 요청할 때
cmd/<application>/<context>/<destination-id>/<req-type>
- 응답할 때
cmd/<application>/<context>/<destination-id>/<res-type>
예를 들어 자동차 회사의 제네시스라는 차량의 G-001 모델이름의 요청 값이라고 하면..
dt/hdcar/genesis/G-001/req 라고 사용할 수 있는 것이다.
테스트한 것처럼 점(.), 언더바(_), 대시(-), 한글, 슬래시 없이 사용 모두 가능하지만,
AWS IoT Core Policy에서 사용하려면 머리가 복잡할 수 있다.
AWS IoT Core Topic 제한
- Publish 요청을 보낼 때 AWS IoT Core에 전달되는 토픽은 UTF-8 인코딩 문자 256바이트를 넘을 수 없다. (Basic Ingest 토픽($AWS/rules/rule-name/)에 대한 처음 3개의 필수 세그먼트 제외)
- Publish 또는 Subscribe 요청의 토픽은 최대 7개의 슬래시(/)를 가질 수 있다. (Basic Ingest 토픽의 필수 세그먼트($AWS/rules/rule-name/)의 처음 3개 슬래시는 제외)
다음처럼 AWS의 Best Practice를 따르는 게 가장 좋다.
MQTT design best practices - Designing MQTT Topics for AWS IoT Core
MQTT design best practices General best practices Although there are numerous combinations of IoT communication patterns that share common approaches, there are several best practices that apply to any message pattern irrespective of how a device is publis
docs.aws.amazon.com
끗!
'AWS' 카테고리의 다른 글
[API GW] Private API Gateway 만들기와 접근하는 방법(VPC Endpoint, Lambda) (0) | 2024.07.18 |
---|---|
[EC2] Windows 서버에 Apache 설치하는 방법 (0) | 2024.07.17 |
[AWS 비용] GetMetricData API 삭제 방법 (0) | 2024.04.30 |
인터넷 없이 EC2에 접속하는 방법(AWS Session Manager 이용) (2) | 2024.04.08 |
AWS IoT FleetWise 캠페인을 여러 차량에 배포하기 (0) | 2024.01.24 |