使用复杂参数的 Edge 上的 Azure 流分析 c# UDF
Azure Stream Analytics c# UDF on Edge using complex parameter
我有一个设备以这种格式发送数据的场景
[
{
"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.Type
.
更改每个 Payload.Data
但是当我尝试将 Payload
对象作为参数传递给 c# UDF
时,抛出了异常
Error : ** System Exception ** ASA passed a non-supported type System.Object to be marshaled to CSharp UDF Func at variable payload
唯一可行的方法是当我尝试类型(长、字符串等)的参数时。
虽然这个 doc 明确说明了支持的类型,但有没有办法在 c# udf
中接收整个对象,或者这个服务不是这个场景的最佳选择,我需要使用其他东西?
Payload 对象是一个数组,它是流分析 C# UDF 中支持的类型。您的函数签名应如下所示:
public static string SampleUDF(Object[] input)
你不应该看到这个错误。如果您仍然 运行 遇到问题,请告诉我。
我有一个设备以这种格式发送数据的场景
[
{
"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.Type
.
Payload.Data
但是当我尝试将 Payload
对象作为参数传递给 c# UDF
时,抛出了异常
Error : ** System Exception ** ASA passed a non-supported type System.Object to be marshaled to CSharp UDF Func at variable payload
唯一可行的方法是当我尝试类型(长、字符串等)的参数时。
虽然这个 doc 明确说明了支持的类型,但有没有办法在 c# udf
中接收整个对象,或者这个服务不是这个场景的最佳选择,我需要使用其他东西?
Payload 对象是一个数组,它是流分析 C# UDF 中支持的类型。您的函数签名应如下所示:
public static string SampleUDF(Object[] input)
你不应该看到这个错误。如果您仍然 运行 遇到问题,请告诉我。