使用复杂参数的Edge上的Azure Stream Analytics c#UDF使用

时间:2018-11-01 15:07:11

标签: azure user-defined-functions azure-stream-analytics azure-iot-edge

我有一个设备以这种格式发送数据的情况

[   
{
 "Metadata":{"DeviceID":"MWS55V","GatewayID":"abc1"},
 "Payload": [{"Type":"401","Data":"17.51"}],
 "Timestamp":"2018-11-01T09:33:05Z"},
{
 "Metadata":{"DeviceID":"MWS55V","GatewayID":"abc1"},
 "Payload": [{"Type":"401","Data":"18.28"}],
 "Timestamp":"2018-11-01T09:34:05Z"
}
]

我添加了Azure Stream Analytics C# UDF 想到将整个对象用作参数,并根据Payload.Data更改每个Payload.Type

但是当我尝试将Payload对象作为参数传递给c# UDF时,会引发

  

错误:**系统异常** ASA传递了一个不受支持的类型System.Object,将其以可变有效载荷封送给CSharp UDF Func

它的唯一工作方式是当我尝试类型(长,字符串等)的参数时。

尽管doc明确说明了受支持的类型,但是是否有办法在c# udf内接收整个对象,或者该服务不是这种情况下的最佳选择,我需要使用其他方法吗? / p>

1 个答案:

答案 0 :(得分:1)

有效负载对象是一个数组,这是Stream Analytics C#UDF中支持的类型。您的功能签名应如下所示:

public static string SampleUDF(Object[] input)

您应该不会对此看到错误。让我知道您是否仍然遇到问题。