메시지 보강 은 메시지가 지정된 엔드포인트로 전송되기 전에 IoT Hub가 추가 정보를 사용하여 메시지를 스탬프 할 수 있는 기능입니다. 메시지 보강을 사용하는 한 가지 이유는 다운스트림 처리를 간소화하는 데 사용할 수 있는 데이터를 포함하는 것입니다. 예를 들어 디바이스 트윈 태그로 디바이스 원격 분석 메시지를 보강하여 고객이 디바이스 트윈 API를 호출할 필요성을 줄일 수 있습니다.
메시지 보강에는 세 가지 주요 요소가 있습니다.
보강 이름 또는 키
값
보강을 적용해야 하는 하나 이상의 엔드포인트 입니다.
키는 문자열입니다. 키는 영숫자 문자 또는 하이픈(), 밑줄(-
) 및 마침표(_
.
)와 같은 특수 문자만 포함할 수 있습니다.
값은 다음 예제 중 어느 것이든 될 수 있습니다.
어떤 정적 문자열. 조건, 논리, 작업 및 함수와 같은 동적 값은 허용되지 않습니다. 예를 들어 여러 고객이 사용하는 SaaS 애플리케이션을 개발하는 경우 각 고객에게 식별자를 할당하고 애플리케이션에서 해당 식별자를 사용할 수 있도록 할 수 있습니다. 애플리케이션이 실행되면 IoT Hub는 고객의 식별자를 사용하여 디바이스 원격 분석 메시지를 스탬프하여 각 고객에 대해 메시지를 다르게 처리할 수 있도록 합니다.
메시지를 보내는 IoT Hub의 이름입니다. 이 값은 $iothubname.
디바이스 쌍 정보(예: 경로). 예제는 $twin.tags.field 및 $twin.tags.latitude입니다.
비고
현재 $iothubname, $twin.tags, $twin.properties.desired 및 $twin.properties.reported만 메시지 보강에 지원되는 변수입니다. 또한 원시 타입만 강화 기능에 대해 지원됩니다. 개체 형식으로 메시지를 보강할 수 없습니다.
메시지 보강은 선택한 엔드포인트로 전송된 메시지에 애플리케이션 속성으로 추가됩니다.
보강 적용
메시지는 다음 예제를 포함하여 IoT Hub 메시지 라우팅에서 지원하는 모든 데이터 원본에서 올 수 있습니다.
- 온도 또는 압력과 같은 디바이스 원격 분석
- 디바이스 쌍 변경 알림 -- 디바이스 쌍의 변경 내용
- 디바이스를 만들거나 삭제하는 경우와 같은 디바이스 수명 주기 이벤트
IoT Hub의 기본 제공 엔드포인트로 가는 메시지 또는 Azure Blob Storage, Service Bus 큐 또는 Service Bus 토픽과 같은 사용자 지정 엔드포인트로 라우팅되는 메시지에 보강을 추가할 수 있습니다.
디바이스 원격 분석 메시지 유형을 사용하여 Event Grid 구독을 먼저 만들어 Event Grid에 게시되는 메시지에 보강을 추가할 수도 있습니다. 이 구독에 따라 Azure IoT Hub에서 원격 분석에 대한 기본 경로를 만듭니다. 이 단일 경로는 모든 Event Grid 구독을 처리할 수 있습니다. 그런 다음 IoT Hub 메시지 라우팅 섹션의 보강 메시지 탭을 사용하여 엔드포인트에 대한 보강을 구성할 수 있습니다 . Event Grid를 사용하여 이벤트에 대응하는 방법에 대한 자세한 내용은 IoT Hub 및 Event Grid를 참조하세요.
보강은 엔드포인트당 적용됩니다. 특정 엔드포인트에 대해 스탬프를 찍을 5개의 보강을 지정하는 경우 해당 엔드포인트로 가는 모든 메시지는 동일한 5개의 보강으로 스탬프됩니다.
보강은 다음 방법을 사용하여 구성할 수 있습니다.
메서드 | 명령 |
---|---|
입구 | Azure Portal메시지 보강 자습서 참조 |
Azure 커맨드 라인 인터페이스 (CLI) | Az IoT Hub Message-Enrichment |
Azure PowerShell | Add-AzIotHubMessageEnrichment |
메시지 보강을 추가해도 메시지 라우팅에 대기 시간이 추가되지는 않습니다.
메시지 보강을 시도하려면 메시지 보강 자습서를 참조하세요.
제한점
표준 또는 기본 계층에서 해당 허브에 대해 IoT Hub당 최대 10개의 보강을 추가할 수 있습니다. 무료 계층의 IoT Hub의 경우 최대 2개의 보강을 추가할 수 있습니다.
경우에 따라 디바이스 쌍의 태그나 속성으로 설정된 값을 사용하여 메시지를 보강하면, 해당 값이 지정된 디바이스 쌍 경로로 스탬프됩니다. 예를 들어 보강 값이 $twin.tags.field로 설정된 경우, 메시지는 트윈의 해당 필드 값이 아니라 문자열 "$twin.tags.field"로 스탬프됩니다. 이 동작은 다음과 같은 경우에 발생합니다.
IoT Hub는 기본 계층에 있습니다. 기본 계층 IoT Hub는 디바이스 쌍을 지원하지 않습니다.
귀하의 IoT 허브는 표준 계층에 속해 있지만, 데이터 강화에 필요한 디바이스 트윈 경로가 존재하지 않습니다. 예를 들어 보강 값이 $twin.tags.___location으로 설정되고 디바이스 쌍이 태그 아래에 ___location 속성이 없으면 메시지에 "$twin.tags.___location" 문자열이 스탬프됩니다.
IoT Hub가 표준 계층에 있지만, 보강 값에 사용되는 디바이스 쌍 경로가 단순 속성이 아닌 개체로 확인되는 경우. 예를 들어 보강 값이 $twin.tags.___location으로 설정되고 태그 아래의 위치 속성이 같은
{"building": 43, "room": 503}
자식 속성을 포함하는 개체인 경우 메시지는 "$twin.tags.___location" 문자열로 스탬프됩니다.
디바이스 쌍에 대한 업데이트는 해당 보강 값에 반영되는 데 최대 5분이 걸릴 수 있습니다.
보강을 포함한 총 메시지 크기는 256KB를 초과할 수 없습니다. 메시지 크기가 256KB를 초과하면 IoT Hub가 메시지를 삭제합니다. IoT Hub 메트릭을 사용하여 메시지를 삭제할 때 오류를 식별하고 디버그할 수 있습니다. 예를 들어, 라우팅 메트릭에서 호환되지 않는 원격 분석 메시지 (d2c.telemetry.egress.invalid) 메트릭을 모니터링할 수 있습니다. 자세히 알아보려면 IoT Hub 모니터링을 참조하세요.
메시지 보강은 디지털 트윈 변경 이벤트에 적용되지 않습니다.
모듈은 해당 디바이스에서 쌍 태그를 상속하지 않습니다. 디바이스 모듈(예: IoT Edge 모듈)에서 시작된 메시지의 추가 기능은 모듈 트윈에 설정된 트윈 태그를 사용해야 합니다.
가격 책정
메시지 보강은 추가 비용 없이 사용할 수 있습니다. 현재 IoT Hub에 메시지를 보낼 때 요금이 청구됩니다. 메시지가 여러 엔드포인트로 전송되더라도 해당 메시지에 대해 한 번만 요금이 청구됩니다.
다음 단계
IoT Hub로 메시지를 라우팅하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.