기본 제공 엔드포인트에서 디바이스-클라우드 메시지 읽기

기본적으로 메시지는 Event Hubs와 호환되는 기본 제공 서비스 연결 엔드포인트(messages/events)로 라우팅됩니다. IoT Hub는 허브에서 수신한 디바이스-클라우드 메시지를 읽도록 백 엔드 서비스의 기본 제공 엔드포인트인 messages/events를 공개합니다. 이 엔드포인트는 Event Hubs와 호환되므로 Event Hubs 서비스에서 메시지 읽기를 지원하는 모든 메커니즘을 사용할 수 있습니다.

메시지 라우팅을 사용하고 대체 경로를 사용하는 경우 경로의 쿼리와 일치하지 않는 메시지는 기본 제공 엔드포인트로 이동합니다. 이 대체 경로를 사용하지 않도록 설정하면 쿼리와 일치하지 않는 메시지가 삭제됩니다.

이 엔드포인트는 현재 포트 5671의 AMQP 프로토콜과 포트 443의 WebSockets를 통한 AMQP만 사용하여 노출됩니다. IoT Hub는 다음 속성을 노출하여 기본 제공 Event Hub와 호환되는 메시징 엔드포인트 messages/events를 제어할 수 있게 합니다.

속성 설명
분할 개수 이 속성은 생성 시 설정하여 디바이스-클라우드 이벤트 수집에 대한 파티션 수를 정의합니다.
보존 시간 이 속성은 IoT Hub에서 메시지를 보존할 일 수를 지정합니다. 기본값은 1일이지만 7일로 늘릴 수 있습니다.

IoT Hub를 사용하면 기본 제공 엔드포인트에 최대 7일 동안 데이터를 보존할 수 있습니다. IoT 허브를 만드는 중에 보존 시간을 설정할 수 있습니다. IoT Hub의 데이터 보존 시간은 IoT 허브 계층 및 단위 유형에 따라 달라집니다. 크기 측면에서 기본 제공 엔드포인트는 최소 24시간 할당량까지 최대 메시지 크기의 메시지를 보존할 수 있습니다. 예를 들어 하나의 S1 단위 IoT 허브는 메시지당 4KB에서 400,000개 이상의 메시지를 보존할 수 있는 충분한 스토리지를 제공합니다. 디바이스에서 더 적은 수의 메시지를 보내는 경우 이러한 메시지는 사용되는 스토리지 양에 따라 최대 7일 동안 보존할 수 있습니다. 데이터를 지정된 보존 시간 동안 최소한으로 보존하도록 보장됩니다. 보존 시간이 지나면 메시지가 만료되어 액세스할 수 없게 됩니다. IoT Hub 리소스 공급자 REST API를 사용하여 또는 Azure Portal을 사용하여 프로그래밍 방식으로 보존 시간을 수정할 수 있습니다.

IoT Hub를 사용하면 기본 제공 엔드포인트에서 소비자 그룹을 관리할 수도 있습니다. 각 IoT 허브당 최대 20개의 소비자 그룹이 있을 수 있습니다.

기본 제공 엔드포인트에 연결

일부 제품 통합 및 Event Hubs SDK에서는 IoT Hub를 인식하며, IoT 허브 서비스 연결 문자열을 사용하여 기본 제공 엔드포인트에 연결할 수 있습니다.

IoT Hub를 인식하지 않는 Event Hubs SDK 또는 제품 통합을 사용하는 경우 Event Hub 호환 엔드포인트 및 Event Hub 호환 이름이 필요합니다. 이러한 값은 다음과 같이 포털에서 검색할 수 있습니다.

  1. Azure Portal에 로그인하고 IoT Hub로 이동합니다.

  2. 허브 설정 아래의 리소스 메뉴에서 기본 제공 엔드포인트를 선택합니다.

  3. 기본 제공 엔드포인트 작업 창에는 다음 세 개의 섹션이 포함되어 있습니다.

    • 이벤트 허브 세부 정보 섹션에는 파티션, 이벤트 허브 호환 이름, 보유 기간소비자 그룹 값이 포함되어 있습니다.
    • 이벤트 허브 호환 엔드포인트 섹션에는 공유 액세스 정책이벤트 허브 호환 엔드포인트 값이 포함되어 있습니다.
    • 클라우드-디바이스 메시징 섹션에는 기본 TTL, 피드백 보존 시간최대 배달 횟수 값이 포함되어 있습니다.

    Screen capture showing device-to-cloud settings.

작업 창에서 이벤트 허브 호환 엔드포인트 필드에는 다음 예제와 같은 전체 Event Hubs 연결 문자열이 포함되어 있습니다.

Endpoint=sb://abcd1234namespace.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=keykeykeykeykeykey=;EntityPath=iothub-ehub-abcd-1234-123456

사용하는 SDK에 다른 값이 필요한 경우 다음과 같습니다.

속성
엔드포인트 sb://abcd1234namespace.servicebus.windows.net/
Hostname abcd1234namespace.servicebus.windows.net
네임스페이스 abcd1234namespace

그런 다음, 이전 스크린샷에 표시된 대로 공유 액세스 정책 드롭다운 목록에서 공유 액세스 정책을 선택할 수 있습니다. 지정된 이벤트 허브에 연결할 수 있는 ServiceConnect 권한이 있는 정책만 표시됩니다.

SDK 샘플

IoT Hub에서 공개하는 기본 제공 Event Hub 호환 엔드포인트에 연결하는 데 사용할 수 있는 SDK는 다음과 같습니다.

언어 SDK 예시
.NET https://www.nuget.org/packages/Azure.Messaging.EventHubs ReadD2cMessages .NET
Java https://mvnrepository.com/artifact/com.azure/azure-messaging-eventhubs
Node.JS https://www.npmjs.com/package/@azure/event-hubs read-d2c-messages Node.js
Python https://pypi.org/project/azure-eventhub/ read-dec-messages Python

IoT Hub에서 공개하는 기본 제공 Event Hub 호환 엔드포인트에 사용할 수 있는 제품 통합은 다음과 같습니다.

다음 단계