I have an IoTHub with a route that points to an EventHub that runs the functions.
I had a problem getting the DeviceId properties and other IoT Hub objects from the event object without explicitly adding them to the payload.
If I set the input type to string
(or a custom type):
public static void Run(string iotMessage, TraceWriter log) {
log.Info($"C# Event Hub trigger function processed a message: {iotMessage}");
}
I get the payload without any other IoT Hub properties like DeviceId, CorrelationId or MessageId.
I tried to set the type EventData
instead:
public static void Run(EventData iotMessage, TraceWriter log) {
log.Info($"C# Event Hub trigger function processed a message: {JsonConvert.SerializeObject(iotMessage)}");
}
Now I can access IoT Hub properties through two getters: Properties and SystemProperties. For example, I can access DeviceId, like this one iotMessage.SystemProperties["iothub-connection-device-id"]
. But it does not reveal the payload.
, IoT Hub ?