自定义终结点不接收 IoT 中心元数据

Custom endpoint receives no IoT Hub meta data

当我的 IoT 中心将设备消息路由到内置 "Events" 端点时,消息的元数据(消息 ID、设备 ID、排队时间等)包含在事件中。当同一消息路由到我的自定义终结点(事件中心)时,消息的元数据不包含在事件中。是否有将 IoT 中心消息元数据转发到自定义终结点的选项?

示例:

IoT 中心 -> "Events" 端点 -> 流分析中的采样输入

{
    "type": "Flow",
    "payload": {
        "timestamp": "2018-08-02 08:05:11.991",
        "flow": 1
    },
    "EventProcessedUtcTime": "2018-08-02T08:06:04.3909310Z",
    "PartitionId": 1,
    "EventEnqueuedUtcTime": "2018-08-02T08:05:13.2180000Z",
    "IoTHub": {
        "MessageId": null,
        "CorrelationId": null,
        "ConnectionDeviceId": "...",
        "ConnectionDeviceGenerationId": "636657651873407150",
        "EnqueuedTime": "2018-08-02T08:05:13.0320000Z",
        "StreamId": null
    }
}

IoT 中心 -> 自定义终结点 -> 事件中心 -> 流分析中的采样输入

{
    "type": "Flow",
    "payload": {
        "timestamp": "2018-08-02 05:41:37.714",
        "flow": 0
    },
    "EventProcessedUtcTime": "2018-08-02T05:53:58.3994321Z",
    "PartitionId": 1,
    "EventEnqueuedUtcTime": "2018-08-02T05:41:38.8890000Z"
}

当您的数据来自事件中心流输入时,您可以访问以下元数据字段:

  • EventProcessedUtcTime
  • EventEnqueuedUtcTime
  • PartitionId

如您所见。请参阅此文档:“Stream data from Event Hubs”。

When using Event Hub as an endpoint for IoT Hub Routes, you can access to the IoT Hub medadata using the GetMetadataPropertyValue function.

这是一个例子:

要在启用 IoT 路由的情况下从事件中心进行查询,

SELECT 
GetMetadataPropertyValue(ehInput, '[EventHub].[IoTConnectionDeviceId]') AS myIoTDeviceId 
FROM ehInput