다음을 통해 공유


디바이스-클라우드 IoT Hub 메시지에 대한 메시지 보강

메시지 보강 은 메시지가 지정된 엔드포인트로 전송되기 전에 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로 메시지를 라우팅하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.