Azure Iot Hub Receiver¶
The iothub data receiver reads data from the Azure Iot Hub with a built-in event hub endpoint.
Metadata including application properties and the time that the data has been saved to the iot hub will be
included.
- Example:
- { "data_receiver": [ { "connections": [ { "connection_string": "Endpoint=...;SharedAccessKeyName=...;SharedAccessKey=...;EntityPath=...", "event_hub_name": "event-hub-x", "start_datetime": "2022-11-01T00:00:00" } ], "data_receiver_name": "my_iothub_receiver", "poll_interval": 10, "protocol": "iothub", "streams": [ { "asset": "asset1", "stream_type": "stream_type", "device_id": "device-1" }, { "asset": "asset2", "stream_type": "stream_type", "device_id": "device-2" } ] } ] } 
- Configuration:
- Required and optional properties that can be configured for an Iot Hub receiver: - connections: How to connect to an Iot Hub server and retrieve tags. A connection has the following configurable settings: - connection_string: Represents all the needed connection info. The iot hub has a built-in “Event Hub compatible endpoint” which you can copy from. 
- event_hub_name: Name of the event hub 
- start_datetime: Initial datetime for data we want to fetch. Default is earliest datetime possible. 
- max_buffer_size: Max size of buffer for data to be pushed. 
- transport_type Transport type that will be used to communicate with EventHub. Allowed options are - amqp(port 5671),- amqp_websockets(port 443). Defaults is amqp.
- consumer_group The consumer group used for iot hub to retrieve data from partitions. Default is ‘$Default’. 
- ignore_payload_errors: If True, the receiver will ignore any errors that occur while parsing the payload. 
 
- streams: Each input stream has the following configurable settings: - asset: Asset identifier 
- stream_type: Type of data stream 
- device_id: Name of the edge device id on the iot hub. For EventHub EventData, there is no set device id. If not specified, all messages will be fetched. 
- payload_field The name of the field to fetch data from. Default field name is “payload.” Useful only for fetching one-layer nested fields. 
- unpack_array If the iothub message or specified ‘payload_field’ in the message is an array, use this option to unpack the array. Defaults to True 
 
- poll_interval: The number of seconds to wait between attempts to push buffered data to the next stage.